👻

【個人開発】$20でDevinと始めるAI & Issue Driven開発

に公開

Devin 使ってますか?

昨今のAIブームの中でトレンドに挙がっているものとして、Vibe Codingがあるかと思います。
Vibe Codingについて、OpenAIのAndrej Karpathyは以下のように発言しています。
この発言によると、Vibe Codingというのは、AIに全てを委ね人間はそのOutputのみを評価するということを言いたいのではないかと思います。
では、自律的にコーディングやデバッグを行うDevinを使った開発は全てVibe Codingなのでしょうか?

僕が「バイブコーディング」と呼んでいる新しい種類のコーディングがあるんだ。バイブに完全に身を任せ、指数関数を受け入れ、コードの存在すら忘れてしまう。LLM(例えば、Cursor ComposerやSonnet)が良くなりすぎているから可能なんだ。
また、私はComposerとSuperWhisperで会話するだけなので、キーボードに触れることすらほとんどない。サイドバーのパディングを半分に減らしてくれ」なんてアホなことを頼むのは、それを探すのが面倒だからだ。
いつも "Accept All "で、もう差分は読まない。エラーメッセージが出ても、コメントなしでコピーペーストするだけで、たいていはそれで解決する。
https://x.com/karpathy/status/1886192184808149383

Coding with Devin IS NOT Vibe Coding (感想)

今回の開発を通じて、私が抱いた感想は少なくとも個人開発者にとってDevinとコーディングを行うことは、Vibe Codingにはならないということです。
以下が主な理由です。

  • 個人開発者の財布には限界があり、変なエラーに捕まってDevinが無限ループに陥り、ACU (Devinの課金単位)を浪費することはかなりの痛手となります。それを避けるために、開発者は少なくともDevinの仕事が着実に進んでいるかチェックする必要があります。
  • Devinが効率よく計算リソースを使い、無駄に環境構築やデバッグに時間をかけずに開発するためには、Devinに丁寧な指示を送る必要があります。これには、実装箇所の指定やデバッグ方法の指示など、ほとんど仕様設計と同じようなことを行う必要があります。
  • Devinに指示を出した結果どの程度ACUを消費するかはDevin次第です。つまり、ほんの少しの変更のためにDevinを動かすのは経済合理性が低いと言えるでしょう。個人開発者なら、小さな変更は自分でやるのが適切かと思います。

以上をまとめると、個人開発者は

  1. Devinの開発状況を逐次チェックする必要があり、
  2. Devinへの指示出しのために、丁寧な指示書を作り、
  3. 軽微なエラーは自分で修正する

必要があります。これはおそらくVibe Codingとは言えないでしょう。

Devinの良い所

とはいえ、今回Devinを使ってみて私自身はすごく楽しめました。
財布に余裕がある範囲で遊ぶおもちゃとしては最高ですし、これからのエンジニアはAI Agentを使いこなすことが求められるので、勉強の一環としてもよかったです。
具体的にDevinを使ってよかったこと、楽しかったことを挙げてみます。

  1. 実装方法はなんとなくわかるが、具体的に実装したりデバッグしたりするのが面倒というのをAIに押し付けられるのが楽。これがDevinというか AI Agentを使う最大のメリットだと思っています。可能な限り楽をしてアウトプットを出したいですよね。
  2. Devinの作業風景を眺めるのが楽しい。Devinは基本的に自律稼働しますが、いつでもユーザーが介入できます。面倒なところはAIに任せて、AIができない部分は人間がやるというのは、すごく未来って感じで楽しかったです。
  3. AI Agentの便利なところ、まだ使いづらいところを自分自身の体験として理解できる。AI Agentの得意不得意を学ぶのは自身の業務効率化などにも直接役立てられそうだったので、学び自体が楽しかったです。

Speaker Deck

Speaker Deckにスライドを公開しました🎉

https://speakerdeck.com/aobaiwaki123/ge-ren-kai-fa-devintoshi-meru-ai-and-issue-driven-kai-fa

今回Devinに与えた課題

対象とするアプリケーション

  • 坂道グループのペンライトアプリ

課題

現状では、出題されるメンバーは全メンバーの中から完全にランダムに抽選される仕様になっています。
これだと、出やすい / 出にくいメンバーが発生してしまい、満遍なく勉強することが困難でした。

目標

最初にメンバーリストをシャッフルし、最後のメンバーの出題後、再度シャッフルすることで、満遍なく出題されるようにすることを目標に設定しました。

Devinの価格

  • 価格: $20 / 月
  • ACU: $2.25 / 1 ACU
  • 初回登録時点で約9 ACUが付与される
  • 1 ACUは約15分程度の作業量: 参考
  • 今回の作業におけるACU効率: 6.9 ~ 9.4分 / 1 ACU
    • 実働の取り方により変動します。実働とACU消費量の計測方法を厳密定めていなかったため、曖昧になっています。次回計測する時は、厳密な値を出せるようにします。

2025/04/04からDevinの価格が変更され、月額$20から使えるようになりました。
現時点 (2025/05/11)では、$2.25 / 1 ACUとなっており、初回登録時点で約9 ACUが付与されます。
公式ドキュメントには、1 ACUの具体的な作業量は確認できませんでしたが、下記のサイトでは公式ドキュメントに1 ACUは約15分程度の作業量と記載されていたとありました。
もしかするとしれっと消されたのかもしれません。(見つけたら教えてください🙇)
ちなみに、今回の作業 (サンプル数: 1)では、9.4分 / 1 ACU 程度でした。

According to Devin’s official documentation:

Currently, each ACU is approximately equivalent to 15 minutes of active Devin work. As reference, simple frontend fixes usually take between 5-15 minutes.

https://thegroundtruth.substack.com/p/devin-first-impressions

Let's 開発 with Devin

Devinに渡したプロンプト

https://github.com/AobaIwaki123/sakamichi-penlight-quiz/issues/21

プロンプト作成Tips

1. Deep Wikiにリポジトリを読み込ませる (Public Repository限定)

https://deepwiki.com/AobaIwaki123/sakamichi-penlight-quiz

2. Devinに設計を相談をする

Deep WikiのDevinがリポジトリ構造を把握しているため、精度の高い情報が得られます。
特に、Devinには、処理対象のファイルをプロンプトに与えることで効率的にACUを使用することができるため、深いコンテキストをDeep Wikiで手軽に拾えるのが便利でした。
自分のDevinに相談するとACUを消費しますが、Deep Wikiは無料なのでそれが一番ありがたいです。

3. Deep Wikiの出力をGPT等にに整形させる

Deep Wikiの出力は現状Markdown形式でコピーできません。
そのままだと扱いづらいので、Ctrl + Aで全てコピーして、GPT等にMarkdown形式に整形してもらうと便利です。

4. プロンプトをDevinに渡す

作成したプロンプトをDevinに渡します。
右下のImprove Promptボタンを押すと、Devinが解釈しやすいプロンプトになっているか判定してくれます。
もし何か警告が出たら、GPTに投げてそれを解決します。
あとは、Devin公式のプロンプトベストプラクティスを参考にするのが良いと思います。
プロンプトを作り込むと良いプロンプトが見えてくるので、それをGPTにフォーマット化させて次回以降のプロンプト作成を効率化しましょう。
また、共通して与えたいプロンプトは、Devin's Machineセットアップの最後にAdditional Notesとして渡すことができます。

プロンプト作成の注意点

以下に一般的なDevinのプロンプト作成の注意点を挙げます。

  • 修正対象のファイルはなるべく絞り込みましょう。ACUを節約できます。
  • テスト観点やPR通過基準を最初に明確にしましょう。細かな指示を都度出すとその度にACUを消費します。
  • 小規模かつ単純な修正を指示しましょう。大規模な修正でDevinがエラーループに陥ると、成果もないのにACUを浪費します。

Devinのセットアップ

1. GitHubと連携

2. リポジトリを選択してDevinを接続

3. Devin's Machineのセットアップ

自分のプロジェクトの場合、セットアップで0.1 ACU消費しました。

Devinが動くVSCode Workspaceに環境変数や依存モジュールをインストールします。
ガイドは一応ありますが、環境構築用のコマンドはプロジェクト依存なので、基本的には自分でコマンドをDevinに教えていきます。
以下の画面の、「Update setup」の部分が初回だと異なるのでそのボタンを押すと、セットアップガイドが起動します。

  • 環境変数の置き方
.envrc
SOME_ENV_VAR=some_value
  • 依存モジュールのインストール (このプロジェクトの場合)
DevinのVSCodeのターミナル
$ docker compose run --rm pnpm install
  • リントコマンド
DevinのVSCodeのターミナル
$ docker compose run --rm pnpm lint
  • テストコマンド
DevinのVSCodeのターミナル
$ docker compose run --rm pnpm test

Devin君の開発の様子

Devin君は個人にとっては少し高いものの、自分は何もせずにコードが組み上がっていく様は未来を感じられて非常に楽しいです。

エディタ画面

左にDevinのエディタ、右にDevinのVSCodeが表示されています。
必要に応じてDevinを停止し、ソースコードの修正、ターミナルへのコマンド入力が可能です。

ブラウザ画面

ローカルで立ち上げたウェブサイトをDevin搭載のブラウザで確認できます。

Timelapse 画面

Devinがコマンドの実行確認をしたり、Devin用のブラウザで操作確認したりする用の画面です。
ユーザーは触れず、Devinの開発の進捗状況をここで確認できます。

Devinが作成したPR

https://github.com/AobaIwaki123/sakamichi-penlight-quiz/pull/23

基本機能の実装

  • 実働: 17分
  • ACU: 2.59 ACU
  • 金額: ¥844

Devinのアイコンがついているコミットが Devinが作成したものです。
PRコメントもDevinが作成したものです。
細かい修正やこれを機にやっておきたかったGitHub Actionの修正などは自分でやりました。
実装してもらったものの、きちんと動作しているかチェックするためにテストも後から追加しました。

テスト観点

  • 1つのクイズの中でメンバーが重複しない
  • 10回シャッフルした時、少なくともX回以上は順序が異なる
  • フィルターを適用した場合も問題なく動作する

テスト機能の実装

  • 実働: 11分
  • ACU: 1.45 ACU
  • 金額: ¥773

今回のDevinの成果とコスト

成果

  • 1つのクイズの中でメンバーが重複せず、最後のメンバーに達した時にだけ再度シャッフルする機能
  • 3つのテスト観点を満たすテスト機能
  • 単体テストの設定ファイルがなかったので、jestの追加と設定ファイルの作成

コスト

  • 実働: 28分 (タスクを投げてから終わるまでは、38分)
    • ループに陥ったDevinを助けるために少し停止した時間あるので実際にはもう少し短いです。
  • ACU: 4.04 ACU
  • 金額: ¥1,318
  • 持久換算: ¥2,081 ~ ¥2,824

まとめ

思った程Vibe Codingではなかった

Vibe Codingができると思ってDevinを触ってみましたが、思った以上に指示を細かく出す必要があったため、完全なVibe Codingにはなりませんでした。しかし、Devinが挙げてきたコード自体はあまり確認せず、テストと実際に動くかどうかだけを基準にしたので、その観点はVibe Codingをすることができました。

ACUの浪費が怖くて目が離せない

Devinが無限ループに陥らないかヒヤヒヤしたり、初期の$20分のクレジットで1つのタスクが終わるか心配したり、コストプレッシャーがかかるので、おもちゃとしては良いですが、普段のコーディングには使えないと感じました。

Devinを導入するならやはり企業

普通の個人開発だとプロダクトによる収益がないので、Devinによる出費をペイできません。
逆に出費をペイできるなら、Devinの積極導入により、Devin活用の知見が溜まり、軽作業を全てDevinに任せるという最高の業務環境を構築することができると思います。

おわりに

Devinとのコーディングは、個人的に非常に楽しい経験でした。
ぜひ¥3,000のおもちゃだと思って遊んでみて欲しいです。
自分は無限にDevinを使うために、OpenHands x OpenRouter x DeepSeek R1のジェネリックDevinを開発します。
あとは、今回中途半端に終わった時間あたりのACU効率の計測を次回は厳密に行いたいと思います。

Discussion