AIを取り入れたシステム開発の実践記録
生成AIは以前から使用していましたが、約3ヶ月前から本格的にAIをシステム開発の中心に据えて開発を進めています。
以前のブログタイトルには「AI駆動開発」と書きましたが、正確な定義をしっかり学んだわけではないので、厳密には少しズレているかもしれません。
AIをプログラム開発に取り入れて良かったこと
AI開発のメリット
一番のメリットは、爆速かつ正確に開発できることです。
本当に優秀なエンジニアを2〜3人雇ったような感覚で開発を進められます。
また、エンジニアリング作業をAIに任せることで、自分にはブログを書く時間的余裕も生まれました。
現在は以下のような流れで開発を行っています。
- AIに開発を任せている間に、自分はToDoリストに次のプロンプトをまとめる
- 開発が終わったら、すぐ次のプロンプトを投入して作業を継続する
このように、タスクを並列的に進められるのが大きな強みです。
AI開発のデメリット
一方でデメリットも存在します。
- ロジックが複雑になると、AIが途中参加した場合に一気にカオスになる
- 修正を重ねるうちに、全体の整合性が崩れやすい
そのため、できるだけ細かく機能を分割し、モジュールごとに管理することが大切だと感じています。
AI開発のコツ
約3ヶ月間AIでのシステム開発を続けてきて、現在は以下のことを特に意識しています。
- いきなり実装させない
- 認識・意図があっているか日本語で事前確認する
- 影響範囲を把握する・AIに確認させる
- 入力(インプット)と出力(アウトプット)を明確に定義する
- サンプルデータを準備しておくと効果的
- 仕様書をAIに作成させる
- 実装内容をチェックするため
- 次回の改訂作業の前提条件をまとめる効率化にもなる
AIとシステム開発の関係
生成AIの発展は、既存の価値観を覆す「革命」と言っても過言ではないでしょう。
しかし結局のところ、AIに任せるにせよ人間に頼むにせよ、自分の考えをどれだけ言語化できるかが最も重要です。
- あいまいな入力をすれば、あいまいな出力しか得られない
- 明確に定義すれば、期待通りの成果を得やすい
これはAIとのやり取りに限らず、人間同士のコミュニケーションと同じです。
例を挙げるなら:
「2と3を入れたら6を出したい」
このとき、
2 * 3 = 6とするか2 + 2 + 2 = 6とするか
方法はAIに任せても良いですが、何を入れて何を出したいのかを明確にすることが必要です。
仕様書をAIに作らせる理由
最近は、プログラムを生成した後に仕様書をAIに書かせるようにしています。
- ロジックが意図通りに実装されているか確認できる
- 日本語で整理することでブラックボックス化を防げる
- 次回改訂のときに「現在の仕様」を参照できる
システム開発はプログラミング言語という「翻訳作業」を伴うため、この工程は非常に有効だと感じています。
今後のAIと投資の関係について
今後、投資取引の世界でAIの活用がシェアの半分以上を占めるようになったらどうなるのでしょうか。
- 勝者と敗者が二極化するのか
- テクニカル分析そのものが通用しなくなるのか
- 投資の世界全体が麻痺するのか
現時点ではまったく予測がつきません。
ただし確実に言えるのは、AIを使いながら未来を見据えることが不可欠だということです。
これからもAIを活用しつつ、次の未来を一緒に考えていきたいと思います。