週刊アスキー

  • Facebookアイコン
  • Xアイコン
  • RSSフィード

エンジニアに必要な「インタビュー力」 顧客の真の望みをAIに伝えるためのコミュニケーション術

AIに「丸投げ」は厳禁 AWSのIDE「Kiro」はなぜ仕様駆動型開発に行き着いたのか?

2026年01月15日 09時30分更新

仕様駆動型開発の機能強化のため「KiroでKiroを作ってみる」

 リーゴリ氏はKiroを使って、Kiroを作ることにもチャレンジ。この過程のやりとりで仕様駆動型のさまざまなアイデアを得て、次々と機能強化を行なうことができた。

KiroでKiroを作ることで、仕様駆動型開発にさまざまなアイデアを取り込む

 最初に実装したアイデアはテスト駆動型開発の機能だ。仕様の変更を記述すると、Kiroが望ましいふるまいをテストで検証し、実行コードまで生成してくれる。ただ、こうしたテスト駆動型開発では「開発者がソフトウェアに望む微妙なニュアンスは表現できない」という課題があった。そこでKiroにはそれぞれのコンポーネントを詳細に記述するガイダンスの仕組みを追加。新機能が用意されたら、コーディングタスクを開始し、システム全体において仕様を更新してくれるという。

 また、仕様が膨大になってしまうと、新しい機能をどこに追加するのが難しくなる。ここではこれまでチーム開発で行なったことを振り返り、新機能を記述したら、AIが要件とデザインドキュメントを記述し、スプリットタスクに落とし込む「機能駆動型仕様」にあたる機能も追加した。仕様は「要件」「設計」「タスク」の3つのドキュメントで構成され、開発者がAIに伝えたい内容が適切にまとめられるという。

 リーゴリ氏は、「こうした主要ワークフローがKiroに実装されたことで、私たちは自分たちが望むものをより正確にAIに伝えられるようになりました」と語る。バイブコーディングは時にAIにあいまいなタスクを与えてしまう。「『Webのトリビアゲームを作って』という短いプロンプトだと、その成果物は数百万のバリエーションに上ってしまう。でも、頭の中にあるのは1つですよね」とリーゴリ氏。しかし、Kiroではまず要件と設計を行なった上で、コーディングの反復を行なうため、より正確で開発者の意図に近い成果物を得られるという。リーゴリ氏は、Kiroを例にした仕様駆動型開発の実事例も披露した。

仕様駆動型開発のおかげで、リリースまでの時間はバイブコーディングの約半分に

 Kiro IDEの初期バージョンでは、エージェントがコーディング作業を完了するまでの待ち時間が発生していた。その際は別のアプリで作業を行なうが、時に開発者自体の入力が必要なフェーズもある。この場合は、エージェント側に待ち時間が発生してしまう。そのため、エージェントが注意を必要とする際に、ユーザーに通知する機能をKiroで構築することにした。

Kiroに通知機能を実装することに

 Kiroによる仕様生成は、どのエージェントがどのアクションをユーザー通知するかなどを決めるのに役だった。しかし、設計段階において、開発者は既存のエージェントコードへのシンプルな統合になると思っていたが、Kiroはイチから通知システムを構築するための非常に複雑な設計を提案してきた。「これをバイブコーディングでやろうと思ったら、不必要なコードが大量にできていたことでしょう。でも、仕様策定のプロセスによって、当初よりはるかに大きなプロジェクトであることがすぐわかりました」とリーゴリ氏は語る。 

 結果、チームは仕様を繰り返し検討し、まずエージェントコード外に基盤となる通知システムを構築することにした。Kiroは10年間で開発された200万行のコードを持つOSSを基盤としていたが、Kiroのワークフローを使うことで、膨大なコードのどこに変更を行なえばよいのか、理解しやすくなったという。そして、最後には再び仕様駆動型開発を利用して、エージェントコードへの統合を行なうことができた。

 「仕様駆動型開発のおかげで、このエージェントをバイブコーディングした場合と比べて、約半分の時間でリリースできました」とリーゴリ氏はアピール。「Kiroを構築した経験から、AIによってコミュニケーションの方法や反復のスピードが変わりました。AIはソフトウェア設計を反復処理できます。実際に動作するアプリケーションを迅速にユーザーにフィードバックし、機能の反復処理も行なえます」(リーゴリ氏)。

インタビューのテクニックは顧客が欲しいものを理解するために必要

 対人間においてはプロトタイプで手触りを確認しながら、AIに対しては仕様を通じて、正確なコミュニケーションが行なう。これがAI時代の開発者のコミュニケートだ。リーゴリ氏は、「自然言語は必ずしもあいまいさを意味するわけではありません。個人的にはこれがKiro IDEを特別なものにしていると思います。Kiro IDEは自然言語に精度をもたらします」とまとめた。

Kiroは自然言語のプロンプトから正確な指示を導き出す

 ルネッサンスデベロッパーの3つ目の資質はコミュニケート。相手が人間であれ、AIであれ、「クリアなコミュニケーションで、ミスを減らす」が重要だという。壇上に戻ったボーガス氏は、コンピューターサイエンスの学校に通っていた若い頃に「インタビューテクニック」という授業があったことを思い出したと語る。「『インタビュー=ジャーナリストの取材』をイメージしていたが、実際は顧客が本当に望んでいるものを理解するために、どのように話すかを学ぶ授業だった」(ボーガス氏)。

 今日日、顧客はさまざまなテクノロジーの知識を身につけて、エンジニアの元にやってくる。生成AIでなにをすべきか聞いてくる顧客も多いはず。しかし、顧客を本気で理解し、いっしょに取り組むためにインタビューすべき内容は、顧客が本当に解決したい問題や、目の前のチャンスについてだ。「これが私たちエンジニアが持つべきコミュニケーションだ」とボーガス氏は語る。(続く)

■関連サイト

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この特集の記事