バフェット・コードのブログ

企業分析やプロダクト開発にまつわる記事を配信中

Devinと始める一日一善開発

こんにちは、バフェットコード開発部の aoking です。

バフェットコードでは、生成 AI 系開発支援ツール、Devin を導入し、日々の開発に役立てています。
本記事では、バフェットコード開発部に Devin を導入して何が変わったかについて記します。


Devin 導入

弊開発部でもより AI を用いた開発を行うべく、社長に予算申請を含めて提案を行ったところ、提案から6分後には「いいね、やろう」との返信が来て承認されました。スタートアップの心地よい瞬間です。

早速導入し、Slack に AI とやり取りをして開発する専用のチャンネル #dev-with-ai を作りました。普段開発者が常駐する #development チャンネルだと人間同士のコミュニケーションが阻害されそうなので、AI とのやり取りは専用チャンネルに押し込んでます。ここに集約することで、他のメンバーがどのように AI にタスクを依頼しているのかがわかり、成功例や失敗例などが見えるので知見が蓄積されます。

 

Devin には様々なタスクを依頼しており、小さめの機能追加タスクや、CIの改善、プルリクエストのレビュー、それからアルバイト募集の文面作成などもこなしています。

 

また、働き方にも多少の変化がありました。スマホでコードを書くことは困難ですが、AIへの指示出しは問題なく行えます。ちょっとした外出時や寝る前なんかでもタスク依頼でき、以前よりさらに物理的な居場所が関係ない働き方になったように思います。

 

Devin には「Knowledge」という機能があり、Devin に各種知識をインプットすることができます。Knowledge 機能を試す一環として「すべて博多弁でやり取りしてください」と記載したところ、我々の Devin は博多弁で話すようになりました。愛着が湧きますが、たまにうざいです。

 

定数名ば全部修正したとよ。プルリクエストはこちらばい

CIチェックはまだ実行中やけど、タイポチェックは既に通過しとるよ。何か変更が必要なら、プルリクエストにコメントしてくれると助かるとよ。

了解したばい!データベースを使った実装に変更して、CIのエラーも修正するけん、ちょっと待っとってね。

 

Devin と一日一善

我々のチームに Devin がやってきて、何ができて何ができないのか、多くのメンバーが試してくれて知見が溜まってきました。今回は、その中から私が行っている Devin 活用法を紹介します。それは、 一日一善 を心がけ、Devin と共にソースコードに小さな改善を取り込むというものです。

一日一善でやる改善は大きなリファクタやアーキテクチャ改善のような大掛かりなものではなく、些細なものです。例えばちょっとした誤字を直したり、Python の型ヒントを直したり、ちょっと遅いクエリ結果をキャッシュしたりなどです。

 

日々改善しているの図


これらは一つ一つは小さな改善ですが、実際普段の開発で日々小さな箇所も改善出来ているかというとそこまで手が回ってないケースも多いと思います。それが Devin のおかげで、時間を大きく割くこと無く改善できるようになりました。

一日一善方式で小さな改善を Devin にお願いすることは下記のメリットがあります。

  • 大掛かりな修正ではないので指示が出しやすく、指示出しにかける時間が少ない
  • 複雑なタスクではないので、大抵は Devin がタスクをこなせる
  • 修正の影響範囲が限定的
  • レビュワー(人間)のレビュー工数も小さく済む


そして何より、日々少しずつソースコードが改善していく心地よさがあります。一ヶ月に20日働くとして、うまく回れば一人当たり20改善です。チーム内で一日一善が浸透し、5人いれば一ヶ月で100改善です。一つ一つは小さな改善でも、それだけ積み重なればそれは大きな改善と言えるのではないでしょうか。

改善を積み重ねたら、人間だけじゃなく AI もソースコードを理解しやすくなるだろうと考えています。ロボット掃除機のルンバが部屋を効率掃除できるよう多少部屋を綺麗にすることと同じように、Devin などの AI が開発しやすくなるようコードベースを綺麗にする。そのような目標を持って小さな改善を積み上げています。


AI と働くということ

Devin を導入したことや、Devin 以外の生成 AI 系開発支援ツールを導入したことで、個人やチーム両方の点において気持ちが変化してきています。

個人としてのプログラマは、以前は「コードを書いてモノを作ること」が価値だったように思います。事実、私もつい最近までバフェットコードの開発において鬼のようにコードを書いてサービスを拡張してきました。それが一番自分のバリューを出せると信じていたからです。しかし現在、コードを書くことの重要度は減ってきています。「コードを書くこと」をAIが代替することで、プログラマの役割は「問題を定義し、解決策を設計すること」に変わっていってるように思います。

 

開発チームとしても、責務が変わりつつあると思います。「要件に対し工数を見積もりコードを書いて実装する」という従来の手順から、コードを書いて実装する部分のコストが下がり、他の箇所に注力することになるでしょう。そうなると「どの問題を解決するのか?」「どの開発が最も価値を生むのか?」という意思決定が開発チームの重要な仕事になってくると考えられます。従来、言うまでもなくコードを書くことはそれなりに時間がかかっていましたが、今後は人間のコードを書く能力をボトルネックにしない組織に進化させていくつもりです。


私個人としては、コードを書くことが大好きです。自分が書いたコードが意図通りに動く楽しさは今も昔も変わっていません。コードを書くことの重要度が下がっていく時勢には一抹の寂しさもありますが、一方で、AI を活用したらどこまでできるのかを探る楽しみもできました。

バフェットコードでは、コードを書くことが好きでありながら、AIも活用したいエンジニアを募集しています。ぜひ、共に働きましょう。

 



career.buffett-code.com