AI時代のソフトウェア開発へ思うこと
- #Career
- #Product Development
- #Generative AI
はじめに
「AI時代のソフトウェア開発」とタイトルに掲げてみたものの、昨今の開発現場ではコーディングエージェントを導入していない会社はないのではないかと思うくらい、 私の周りではコーディングエージェントが一般になってきました。
私も2025年の中盤くらいから本格的にコーディングエージェントを開発で利用するようになり、現在はOSSプロジェクトとして開発している omohi においても積極的に利用しています。
今回は実際に私がコーディングエージェントを使って開発するようになって感じていることを書いてみたいと思います。
加えて、AI時代の開発者の本質は「実装ではなく設計と意思決定に移る」と考えている理由について書きます。
コーディングエージェントを導入するまでの流れ(私の場合)
私の最初のコーディングエージェントの使い方はとても限定的なものでした。
例えば、大量のテストコードを機械的に修正するときに、かなり明確な指示を与えてコーディングエージェントに修正させたり、テストデータとしてcsvを作成するときに利用したりという具合です。
これは、私がまだコーディングエージェントを疑ってかかっている段階で、完全に自分のコントロール配下でのみコーディングエージェントは使った方が良いのではないかと感じていたためです。
やがて、この使い方からステップアップして、私が熟知しているシステムの機能改修などでコーディングエージェントを利用するようになりました。
熟知しているということは、コーディングエージェントが修正したコードを見れば、内容が全部わかるというレベルです。
そのため、コーディングはAIにやらせて、レビューに徹するという使い方になっていきました。
このときも、編集するファイル名や関連するファイルの一覧などもコーディングエージェントに指示として渡して作業させていました。
この方法は、概ねうまく行き、作業効率が格段に上がったと実感できました。
この成功体験が持てると、コーディングエージェントへの信頼も生まれ、次に機能設計フェーズからAIとともに作業するようになりました。
具体的には、Planモードを利用し、AIに考えていることを30%くらいの粒度で投げてAIと一緒に考えるというやり方です。
実装が詳細に決まっていなくても、AIと対話しながら設計を決めていくことができます。
実際に出来上がったソースを見ても、違和感がないどころか、きっと自分で思い至らなかったところまでケアされていることも珍しくありません。
そして最近では、より効率よく、品質を高くAIと仕事をするために、AIが読むためのドキュメントやSkillsなどの整備を進めています。
ソフトウェア開発者としての存在意義
コーディングエージェントがここまで優秀に作業をしてくれると、以前と同じ開発体験というわけにはいきません。
コーディングエージェントをよりよく使って、開発サイクルを高めていくことは企業にとっては欠かせないことになります。
また、スタートアップなどの少数精鋭の開発チームではこの流れがより顕著だと思います。
むしろ、非開発者の方がWebサービスを開発できてしまう時代になっています。 プロトタイプレベルであれば、技術者は不要となりました。
こんな背景があり、ソフトウェア開発者の中では近い将来、自分たちの仕事がなくなるのではないかという声を聞くようになりました。
確かに私も実際にコーディングエージェントを使ってみて、最初の印象は、「人間のいらないじゃん」でした。
しかし、コーディングエージェントと一緒に開発を進めていくと、印象は少しずつ変わっていきました。
コーディングというのは開発者にとっては、「おもしろい」作業です。 プログラミングが好きでこの仕事をしている人が多いのではないでしょうか。
私も最初はプログラムを書いているだけでとても楽しかったのを覚えています。
しかし、いつのころからかプログラミングって作業だなと思うことが増えてきました。
たくさんプログラムを書いていると、似たような処理を大量に書いていることに気づきます。
でも、このようなプログラムは必要なんですね。だから書く必要があります。
そして、プログラムを書いているときって、私の感覚では思考は止まっていると思います。
正確には、使いたい方に頭のリソースを使えていない状態。プログラムを書くことだけに頭のリソースが使われてしまっていて、人間が得意とする「発想」「思考」というクリエイティブな方は止まっていると思います。
このように感じてから、コーディングは作業にように捉えるようになっていきました。
頭では良いアイディアがあったとしても、コードを書くということに莫大な時間がかかります。
完成する前に情熱が冷めてしまうことも多々あります。
考える角度を変えて、「ソフトウェアエンジニアリング」という観点でみてみると、コーディングは明らかに作業です。
この「作業」をAIが高速でやってくれて、人間は「ソフトウェアエンジニアリング」に集中できるようになるという未来が正しいのではないかと思うようになりました。
つまり、正しい設計と保守を実現するということです。 企業であれば、拡張したいときに拡張でき、リリースしたいものをリリースできるということです。
当たり前に聞こえるこれが、「技術的な要因」でできないケースがあることを現場の開発者は知っていると思います。
当然ながら会社は人間が営む組織ですから、組織におけるソフトウェアエンジニアリングは人間しか担えないというのが私の考えです。
最後に
コーディングエージェントの台頭はソフトウェア開発者にとって、とてもインパクトの大きい出来事だと感じます。
これはこれまでの開発体験が一変するようなものであることは、間違いないでしょう。
一方で、悲観的になる必要はないと感じます。
ソフトウェアエンジニアリングに割く時間ができる、アイディアを高速で形にできるというメリットを享受できるかがポイントになると思っています。
逆に、コーディングエージェントの流れに乗り遅れると、これから先はかなり厳しいのではないかとも思いました。
今は、このすばらしいコーディングエージェントが月額数十ドルで使えてしまいます。
この流れはずっと続くかはわからないので、私としては今のうちに使い倒せるだけ使い倒す。そして新しいエンジニアリングの価値をいち早く手に入れるということが重要だろうと思っています。
AI時代の開発者の本質は、実装ではなく“設計と意思決定”になると感じました。
そして、このスピード感に耐えるため、意思決定のプロセスを残しておくことが大事だと感じています。
※このような背景もあり、「思考の過程を失わせない」ことを目的としたCLIである omohi を開発しています。
AIとともに高速に意思決定を行う時代だからこそ、そのプロセス自体を記録し、再利用できる形で残すことが重要だと考えています。