生成AIが生み出すコードは、その速度や利便性ゆえに技術的負債を蓄積しやすいです。
生成AIが 「指示を満たす」ことを優先 して目指すため、結果的に 継ぎはぎだらけのコード が生まれ、運用や拡張が難しくなります。
人間のコーディングでも短期的な目標に偏ると技術的負債が発生しますが、生成AIのコーディングの速さは技術的負債の蓄積も速くしています。
生成AIを用いた技術的負債の効率的な解消方法を模索していきたいです。
生成AIがもたらすコードの現実
生成AIを使ってコードを生成していると、対話が進むほどに出力されるコードが次第に継ぎはぎだらけになります。
例えば、画面作成を依頼した際には便利に感じますが、バックエンドの実装や画面内のロジックが複雑化すると一気に管理が難しくなります。技術的負債が積み重なります。
生成AIは、与えられた指示に対して最速で実装を行います。人間に対して強いプレーシャーをかけて開発指示すれば同じことになります。生成AIも人間と同じです。コードの品質や長期的なメンテナンス性よりも、目先の要件を満たすことが優先されます。その結果、生成AIが生み出すコードは、構造が乱れたり、非効率的なパターンが繰り返されたりします。
技術的負債と生成AI
技術的負債はソフトウェア開発において避けられない側面のひとつです。生成AIが加速させているのは、この負債が蓄積されるスピードです。生成AIを使えば短時間で複雑なコードを生成できますが、その分だけコードの品質を管理する時間が圧縮され、結果的に運用や拡張が困難になるリスクが増します。
気になる点:
- 継ぎはぎコード: 段階的な指示に基づいて追加された部分が互いに矛盾する
- ロジックの分散: 各所に散らばった不統一なロジックや凝縮性のないコンポーネント
- 長期的視点の欠如: 短期的に動くコードが生み出されるが、将来的な変更に弱い
これらは生成AIだけの問題ではなく、人間のプログラマーでも、短期的な目標や納期を重視した場合には同様の負債が発生します。
生成AIに対して追加指示したら以前の指示を忘れられてしまう、という問題がよく起きるのは、生成AIのトークン数の問題だけではありません。継ぎはぎコードに対して修正をすると以前の要件とつじつまが合わなくなってしまい、人間でも犯すような不具合混入をさせてしまうのです。
プログラミング言語は人間が読み書きしやすいように進化してきました。生成AIは人間の生成物を学習しています。そのため、人間が犯しやすい間違いは生成AIでも同様です。
期待と現実のギャップ
生成AIは、その便利さから多くの期待を背負っています。実際、単純な画面作成やテンプレートコードの生成では非常に効果的です。しかし、開発が進むにつれて、その期待は現実の複雑さに直面します。技術的負債のリスクを高めます。
この問題を軽減するためには、生成AIを用いたリファクタリングや品質管理の手法を取り入れることが必要かもしれません。
生成AIが引き起こす期待からの揺り戻しを冷静に受け止め、長期的な視点を持ってその活用方法を模索していきたいと思います。
仲間募集!
生成AIを使った開発をしたいという仲間がいたら是非こちらをご覧ください!