こんにちは、id:kogainotdan こと小飼です。久しぶりにブログを書きます。
Omni Hubというプロダクトの開発をしています。
Devinの導入と活用
Omni Hubチームでは、2024年12月にAIエージェントによるコーディング支援サービス「Devin」がGAになったことを受け、実験的に開発プロセスへ導入を開始しました。
各社からもDevinに関する発信が増えていますので、参考にしてください。
特にDevinとの「協業」のコツとして、公式のエッセンシャルガイドラインは非常に参考になります。 導入時のオンボーディングでも案内されていたはずですが、必読です。
以下のポイントが推奨されています。
- Give Devin tasks that you know how to do yourself
- Tell Devin how to test or check its own work
- Keep sessions under \~3 hours and break down large tasks
- Share detailed requirements upfront
- Invest in coaching Devin by providing feedback in chat and accepting suggested Knowledge, or adding your own Knowledge manually
本記事では、私たちがどのようにDevinと「協業」しているかを紹介します。
Devinとの協業フロー
1. DevinのWeb UIで指示を作成
チームでは各スプリントの開始時点で実装イメージをIssueにまとめ、プランニングで具体化しています。プランニングで具体化されたIssue(以下「Story」)をピックアップし、Devinへの指示を考えます。
例えば、以下のスクリーンショットでは、APIのアクセストークン発行に関連するStoryについて、テーブル定義の拡張とバックエンド処理の追加を指示しています。
2. 計画を確認し、承認する
指示を作成する際には、Devinがいきなりコードを書くのではなく、まず「指示を分析して計画を作成する」ようにPlaybookを設定しており、この計画を人間が承認した後に実装を開始するようにしています。
対照実験を行ったわけではありませんが、生成物の精度向上に寄与しているように感じます。
実際、2回に1回程度は計画を修正してから実装に移させています。
3. 別のSessionで同じStoryの別の実装を指示
Devinが作業を開始すると、PRができるまで数分から数十分かかります。その間に別のSessionを立て、同じStoryの別の実装を指示することもあります。
私たちのチームでは、1人あたりおよそ3〜5つ程度のSessionが並列で稼働しています。
4. PRを確認し、修正する
Devinが作成したPRは、人間がチェックアウトして修正した後、レビューに回します。Devinに修正を指示することもできますが、修正点が明瞭な場合を除き、やり直したほうが効率的なことが多いです。
公式ドキュメントにも Take Over When Necessary と書かれていますが、Devinに任せすぎないことが重要です。
Devin導入の効果と感想
Devinを導入して約2ヶ月が経過しました。体感的にはPRの作成量が1.2〜1.5倍程度に増えており、導入のメリットを実感しています。
料金は$500/月と個人で利用するには高額ですが、事業経費としては妥当なコストでしょう。ただし、チーム利用で250ACUでは1ヶ月もたず、一人あたり250ACUが適正なラインだと考えています。
Tips(活用のコツ)
私たちがこう使うと良さそうと思っていることも置いておきます。 公式のエッセンシャルガイドラインに書かれていることで大体充足すると思いますので、まずはそちらを読むことをおすすめします。
- SessionはSlackのスレッドに投稿できる、他のチームメイトがどんなプロンプトを投げているか共有できるので投稿しておいた方が良い
- Knowledge(カスタムプロンプト的なもの)とWorkspace(Devin用に割り振られたマシン)はこまめにメンテナンスした方が良い
- 静的型付言語がDevinの精度に寄与するかはまだ分からない、DevinのWorkspaceにLSP実装(Omni HubはRustで書かれているのでrust-analyzer)はインストールさせた、zennでは形式手法を適用した例が紹介されていたので効果はありそうだがまだ体感はない
- SessionごとのACU Usage Limitが指定できる、最初から10にしておいた方が Devinが「ハマった」時のACU浪費を防げる(私たちは1Session/10ACU程度を目安にしている)
- DevinのPRを人間が引き取ってforce pushしたらforce pushしかえされて(おそらく自分の作業に戻しただけだろうが)先祖返りしたことがあった、破壊的な変更のできる権限を渡す時は特に慎重になった方が良いと思う(私たちはBranch protection rulesで人間だけがforce pushできるようにした)
まとめ
Omni HubチームでのDevinとの「協業」の方法を紹介しました。Devinは$500/月というコストに見合う価値があり、チーム開発に大きなメリットをもたらしています。
リファラルリンクを置いておきますので良ければ踏んでください。
Omni Hubチームは転職ドラフトで開発メンバーをスカウト中です。 フルリモートワークなので東京在住以外の方にもお声がけしています。
Devinを使っている開発チームに参加したいと思ってくれた方、ぜひラブコールお願いします!