ぺんぎんてっく
📐

Claude Max Planで仕様駆動開発を実践している話

| 開発ツール

やっていること

業務でClaude Max Planを使った仕様駆動開発を行っている。流れとしては、GitHubのIssueに要件をしっかり定義し、それを基に開発を進めていくスタイルだ。

具体的には、まず要件定義の段階でClaudeに要件を詰めさせるためのスキル、主にプランニング計画のスキルを使う。Claude単体だとマジックナンバーを使ったり、プライベートメソッドを外部から呼び出したり、処理内容が見てわかるような無駄なコメントを書いてしまうことがある。そのため、基本的なプラクティスやコーディング規約といった最低限のスキルをClaudeにインプットさせている。

このスキルを使って、きちんと積み上げた要件定義を基に実装してもらう。要件定義の段階でコンテキストをクリーンにしてくれるため、実装時に無関係なコンテキストが入り込むことがなく、精度高く実装を進められる。

なぜ仕様駆動なのか

要件を先にしっかり詰めておいた方が良いと感じている。実装からいきなり入る場合や、Claudeに備わっているプランモードを使ってやり始めるよりも、自分の想定している動きに近いコードを作成してくれる。これは現時点でのベストプラクティスに近いのではないかと思う。

AIを活用した組織が必ず成果を出せるかというと、そうではない。チームの開発メンバーのAIスキル、ドメイン知識、コーディングスキル、設計スキル、そしてコードベースの状態や品質の掛け算によって、AIをどれだけ活用できるかが決まる。

チームでの活用と品質担保

チームの成熟度やスキルに関しては、ドメイン知識やAIのTips、ドキュメントの充実、チーム間の知識共有の方法、オンボーディングの仕組みなどをスキルを使って均一化できる。コードベースの品質は、元々質が悪いとどうしようもない部分もあるが、地道に改善していくしかない。

ある程度AIを使う前提で仕様駆動開発を行うのであれば、レビューにしっかりと時間を割ける。最初の計画段階のレビューにも時間をかけるし、実装で上がってきたコードや自動テストコードのレビューにも十分な時間を取れる。AIが実装してくれる分、品質を担保できる状態になっているはずだ。

コードベースの品質が悪い場合は、まずそこから着手する必要がある。品質がある程度担保されているのであれば、この仕様駆動開発は開発スピードを加速させるだろう。

感想

要件定義と機能設計をGitHub Issueとして作成し、そのレビュー時間をしっかりと取ることが重要だと感じている。AIが作成した計画をそのまま受け入れるのではなく、レビューに時間をかけること。可能であれば2人以上のエンジニアで仕様を検討し、「こういう観点ではどうだろうか」と議論を深めることで、一人でやるよりもさらに良い実装ができるのではないかと思う。

関連記事