🤔

生成AIを活用してアプリケーション開発を行うための5つの基本

に公開

はじめに

こんにちは。yasutkです。
生成AIを活用したアプリケーション開発を進めながら、エンタープライズ開発現場への導入方法を日々模索しています。現段階での私見の一部をまとめておきたいと思います。

生成AIを活用したアプリケーション開発の所見

私にとって生成AIによる開発は、無数の可能性を選び取っていくシミュレーションゲームのようなものです。うまくいかなければ「セーブポイント」に戻り、別の選択肢を試す――そうした試行錯誤を重ねながら、実装を進めていきます。曖昧なプロンプトによって選択を行うため、成功するか失敗するかは、生成AIの応答次第です。
生成AIによるアプリケーション開発は、開発生産性の爆発的な向上を可能にします。しかし、現状では、開発エンジニアが不要になるというよりも、むしろ開発できるエンジニアが活用してこそ、最大の効果を発揮する技術だと考えています。

生成AIを活用したアプリケーション開発時のポイント

1. 最新の生成AIを選択せよ

生成AIの選択は、ガチャで例えると、SRまでしか排出されないガチャか、SSRまで排出されるガチャなのかぐらいの違いがあり、生成AIの選択次第で、出来上がるものが大きく変わります。(誇張して言っているわけではなく、驚くほど違うものができあがります)
頭の悪い生成AIといくら対話しても、結果が良くなることはありませんし、時間を無駄に消費しますので、可能な限り生成AIモデルは良いものを選択すべきと考えています。(具体的な選択方法はここでは示しません)

2. gitと連携して成功したところまでを必ずコミットする

与えたプロンプトが破壊的な選択となるタイミングが何度も訪れます。
実装が失敗した結果からリカバリを試みても大半は上手くいきませんでした。生成AIを責めても何も解決せず、動いていた機能さえ気付けば動かなくなり、最後には機能が丸ごと消されてしまっているという事態も引き起こされました。「〇〇機能の実装変更を元に戻してください」というプロンプトで適切に元に戻せたこともありません。
ですので、実装が失敗したなと感じた場合は、セーブポイントまで戻ってプロンプトを見直してやり直した方が結果としては早く解決します。

3. 実装したいアプリケーションを幹と枝葉に分けて実装する

実装したいアプリケーションから細かい機能を削ぎ落し、後からバックログとして細かく実装していくとスムーズに実装が進みます。
通常のアプリケーション開発も同様で、生成AIだからという訳ではありません。
一発のプロンプトでアプリケーションに複数の機能を実装させるのではなく、生成AIと一緒にアジャイル開発するイメージで地固めしながら進めていくと良いと考えます。

4. 与えたプロンプトの自動記録と生成結果を考察せよ

与えたプロンプトを自動的にファイルに記録させるようにします。
私の場合はMCPでファイルに書かせていますが、与えたプロンプトが引き起こした変更結果とプロンプトを確認し、どこで間違ったのかを考え、プロンプトを再考してリクエストし直します。将来的には別の生成AIにレビューしてもらえば楽になるなと考えています。
変更を巻き戻した際も、プロンプトを再度流せるように記録させておいた方が便利です。

5. レビュー可能な言語で実装させよ

生成AIから提案されたコード差分を確認せずに、yesとしている方も多いのではないでしょうか?私は全部受け入れるようにしています。しかし、なるべく手戻りなく進めたい場合は、きちんと変更差分を確認し、想定が異なるのであれば、変更反映する前に考え直してもらうほうが間違いは発生し辛くなります。そのためには、理解できる言語であることが前提となります。
生成AIを利用すれば、全く知見の無い言語でも実装可能です。将来的にはアプリケーション自体がブラックボックスとなりえる日も来ると思いますが、まだその段階ではないと考えています。
生成AIが解決できないのならやはり人間が見てデバッグし、手動で修正できる、もしくは具体的な修正ポイントの指示ができる言語が望ましいです。

まとめ

本記事では、生成AIを活用してアプリケーション開発を行うための5つの基本を紹介しました。
日々、生成AIと対話してアプリケーション開発をしており、蓄積してきた具体的なナレッジはたくさんあるので、今後、記事として紹介していきたいと思います。
エンタープライズ開発現場への導入を加速するため、生成AIでの開発を日々模索中です。

Discussion