AI駆動開発をしてみる
事前に考えていこと
仕様書の管理が手間
-
仕様書の管理がめんどくさい
-
仕様書とコードが乖離していることも少なくない
-
詳細設計書はあった方がいいが、運用コストが上がる
-
案件に入った段階でどこに何の情報があるかわからない
- ドキュメントの構造を固定しているから探しにくいのでは
- プロジェクトに合わせて仕様書を作成するといいかも
- 決め事は一つ。「AIが読みやすい仕様書」でいいのでは
前提条件
- ソースコードを直接変更しないこと
- 操作は以下に限定する
- 仕様書の読み込み
- プロンプトの入力
- 仕様書のアーキテクチャは固定しない
- 仕様書はAIが理解できるように指示してAIに書かせる
素人が考えたAI駆動開発の流れ
1. 仕様を考える
- 作りたいアプリの概要を箇条書きで書く
- 要件を箇条書きで書く
- 何がしたいか
- システムの構成を考える
- フロンエンドとバックエンドを分けるのか、モノリスでいいのか
- 分けるとすると責任は何か
- DBは何を使用するか
- Google CloudなのかAWSなのか、Vercelでいいのか
※あまり決めないことが大事
2. AIで仕様書を書く
- 要件の記載を書く
- 以下のプロンプトを追加する
- 「フロントエンドのシステムの仕様書を作る」※フロントの仕様書の場合
- 「最低限の機能で開発をしたい」
- 「AIが理解しやすいように仕様書を書いてほしい」
- 「仕様ははspec.mdに記載、作成して」
3.プロジェクトの作成
- ベースとなるプロジェクトがある場合は複製して作成
- 複製元がない場合は使う言語やFWに合わせて作成
- インフラ側でもプロジェクトを用意
- 環境変数ファイルなどを記載しておく
4. AIでシステムを初期構築する
- 仕様書(spec.md)をプロジェクト直下に置く
- AIにspec.mdを参照させてシステムを構築
5. 修正 or 拡張
- 修正したい場合やシステムを拡張したい場合はプロンプトを入力して修正する
※ 手動で変更するとAIとの前提条件がズレる可能性があるので避ける
6. 5 ~ 7を繰り返す
7. AIにコードを参照させて仕様書を修正する。
- 仕様書とコードの乖離を防ぐために仕様書をAIを用いて修正
8. pushして一旦終了
感想
開発の速度
爆速で開発できた。
また、これまで運用上、諦めていた大幅の改修も難なくできた。
これまで諦めていた作業により注力できそう。働き方が変わると感じた。
AIとのずれ感
基本的にズレは発生しなかった。あってもすぐに修正できた。
全体を再構築するような変更を加えるとズレが発生した。
(例えば、フロントエンドで行っていた処理をバックエンドに移管するなど)
困ったこと、懸念点
-
試行錯誤をしすぎてシステムが壊れることもあった。
→ 1の仕様書作成からやり直すことも検討?
→ 切り戻せるようにgitで状態管理すればOK(追記) -
可読性を上げるためにコメントの定義も考えたい。
-
複数人でAI駆動開発した時に上手くできるかと心配になった。
→ 開発初期段階から開発メンバー全員で仕様を認識する
→ 初めに手を動かすメンバーは少数にする??
→ やってみないとわからない
まとめ
- AI駆動開発でこれまでできなかった作業に注力できる。
- 上流だとクライアントワークの理解や本質的に稼働するシステム構築など、下流だと保守性、拡張性に富んだコードの作成など
- AIの利用とドメインを分けることが当たり前になって「AI駆動」や「ドメイン駆動」といった言葉が死語になりそう。
面白かった記事
一度AI駆動開発してみて読むと理解しやすかったです。
https://cloud-ace-recruit.com/n/ne2d889f57916