Claudeにプロトタイプから本格実装までを一貫して任せる開発プロセス
はじめに
AIアシスタントの進化により、プロトタイプの作成から本格的な実装まで、一貫してAIに任せることができるようになりました。
今回は、Claudeにプロトタイプから本格実装まで一貫して任せる開発プロセスを通じて得た知見についてまとめます。
モチベーション
実践したモチベーションは、AIアシスタントをコントローラブルな状態にしたいという思いからでした。
実践した開発プロセス
私が実践したプロセスは以下の通りです。
1. ユーザーストーリーの提示とプロトタイプ作成
まず、Claudeに大まかなユーザーストーリーを伝え、プロトタイプを作成してもらいました。
「〇〇を解析するCLIツールを作りたい」
「マークダウンファイルから〇〇を抽出したい」
この段階では、完璧な実装は求めず、「なんとなく動くもの」 を目指しました。
2. 機能の優先順位付け
プロトタイプができた後、Claudeに機能の優先順位を付けてもらいました。
優先度の高い機能:
1. 基本的な解析機能
2. CLIインターフェース
3. エラーハンドリング
優先度の低い機能:
1. 詳細な設定オプション
2. 複数フォーマット対応
3. プラグインシステム
3. ユーザーストーリーの詳細化
優先順位をもとに、より具体的なユーザーストーリーを作成させ価値の認識を促してみました。
「開発者は、CLIでマークダウンファイルを指定し、〇〇を取得できる」
完了の定義:
- 指定したファイルから〇〇を正常に抽出できる
- 存在しないファイルに対して適切なエラーメッセージを表示する
- 基本的なCLIオプションが動作する
4. Issueの作成と実装
詳細化したユーザーストーリーをもとに、GitHubのIssueを作成し、実装を進めさせます。
- Story Title(ユーザーストーリーのタイトル)
- Acceptance Criteria(受け入れ条件)
- Definition of Done(完了の定義)
5. プルリクエストのレビュー
実装完了後のコードレビューを行い、以下の点を重点的に確認していきます。
- 実装が要求仕様を満たしているか
- コードの品質が本格運用に耐えうるか
- テストが適切に実装されているか
実践して得られた知見
AIアシスタントにMVPを意識させ、機能に優先順位を付けることで、段階的な実装を進められることを実感しました。
また、ユーザーストーリーとして書き出すよう指示することで、人と同様に最小限の機能を実装してくれるため、レビューコストやフィードバックサイクルも短くなり、開発効率が向上しました。
基本的にテストも実装してくれるため、プロジェクト初期にテストを実行するパイプラインを構築することも重要だと感じました。
伸び代
自立して実装してくれる反面、ストーリーを一度に満たすよう実装を進めさせるコードの理解や反復する機会損失をするので
完全に自立させて進めるのはプロダクションコードにおいてはトレードオフがあると感じました(辛さを先送りしている感覚)。
そのため、タスクを小さく分割して、段階的に実装を進めることが重要になるため、タスクを一つ一つ実装させる方がよりコントローラブルであることを実感しました。
最初からコンテキストを得たいのか、それとも動くモノを先に届けたいかによってアプローチをうまく使い分けることが重要だと思います。
また、AIアシスタントはコードの実装を行いますが、完全にテストが通る状態で実装してくれるわけではないため、一定の手動修正も必要だと感じました。
プロジェクト毎にシステムプロンプトやコンテキストを調整することが重要だと思います。
Discussion