育休中に遊んでみたKiroの所感(Spec Driven DevelopmentによるAIコーディング)

育児休暇の期間を使って、約2か月ほどAIコーディングツール「Kiro」を触って遊んでいました。

Kiroを試す前は、ちょうど出始めたばかりのClaude codeを使っていたんですが、当時はSkillなども登場しておらず、なかなか使いこなせなくて意図とズレたコーディングに苦戦していました。そんな中、「Spec Driven Development(SDD・スペック駆動開発)」という手法でAIコーディングする方法を知って「これは面白そうだ」と興味を持ったのがきっかけ。

(余談ですが、育休期間中にClaude codeを始め、AI関連の技術がすごい勢いで進化していくのを見て、復職がちょっと怖いです。焦る汗。)

Kiroを使ったみて…

Spec-First設計が生む安心感

他のSDD関連ツールも同様だと思いますが、KiroはまずSpec firstで設計をしてから実装に取り掛かってくれます(Specではなく、Vibeモードでサッサとコーディング手法もある)。最初にしっかりと設計を固めれば、ある程度の規模のアプリケーションでも安心感を持って実装を進めていけるのが大きなメリットです。私はこの安心感が好き。

  • Kiro単体で並行にコーディングを指示することはできないみたいです。個人的にはまだ並行コーディングをうまく活用できていないので、この直列的な進め方が気に入っていますし、特に困っていません。
  • 公式ドキュメントのどこかに、タスクを一気に実行する「Run All Tasks」は推奨していないと書いてあった気がする。
  • 仕事においても、並行で動かして競合や手戻りの問題が発生するより、直列で進めたほうが手戻りが少ないんじゃないかという偏見があるので、別にこれでいいだろと思ってる。

その他の機能

  • Kiro CLIもありますが、ほとんど使いませんでした。Kiroのチャット機能で事足りる。
  • モデルはClaudeを使っているので、Claudeのノウハウを活かせるのはありがたいですね。
  • Steeringは、エージェントの振る舞いを制御するKiro独自の機能。これをうまく活用できれば、開発精度が向上するはず。
    • これはSkillやHookとも異なる。エージェントの動きを制御する大前提のルールを設定するのに役立つ。概念的にはSkillに近いという理解です。
    • 例えば、全体の大前提となる背景情報をここに書いておけるのは良さそうです。Kiroがなくても、多分Claudeで同じようなことはできるんじゃないかと思います。
    • ローカルサーバーの起動コマンドを独自スクリプトにしたいなど、ちょっとしたルールをSkillに書くべきかSteeringに書くべきか、まだ線引きが明確にできてないのが
  • Steeringはボタン一つで作成できるのが便利です。

[https://kiro.dev/docs/skills/#how-skills-differ-from-steering-and-powers:embed:cite]

気になる所

プロパティベースのテストを前提に進めてくれるんですが、特に指定をしない限りテストケースの試行回数が100回などになっている。試行回数を増やして予期しないエラーを見つけてくれるのがPBTの利点だという理解だけど、個人開発程度では「そこまでしなくていいよ」という気持ちなので制御しておくと良さそう_φ(・_・

また、テストの内容によっては、これがテストの肥大化に繋がる可能性があるかもと思いました。この部分はSkillsを使ったり、人間が確認したりして取捨選択が必要だと感じました。

後、前述したSkillとSteeringが明確に自分の頭の中で棲み分け出来てないので、この辺はもう少し本格的に使ったらわかってくるかも。

他に更新機能とセッション管理とか…。

  • タスクや技術設計を更新する「Update tasks」や「Update designs」といったボタンがありますが、どういうタイミングで使うのがベストなのか、いまいちピンと来ませんでした。
  • タスクごとにKiroのターミナルセッションが立ち上がるため、セッションの数がすごく増えますが、今のところ実用上は困っていません。
  • 生成されるタスクが、必須なものとそうでないもので分けて表示されるのが地味にありがたいです。人間に判断を仰いでくれるという点は、昨今の自律性AIとは逆行しているかもしれませんが、心配性な自分には嬉しいポイントでした。

Kiroを使ってみての学び

  • Kiroを使うまで、プロパティベーステストというものを知りませんでした。
  • このツールは、超速でAIに全てを作ってほしい人には少し不満かも。慎重に開発を進めたい人にはすごく良いと思います。
  • AIコーディング全般に言えることですが、明確な指示や設計が本当に大事だと痛感。KiroのようなSDDのツールを使っていると、最初の設計がいかに重要で、自分たちの設計がいかに甘いかを思い知らされると同時に、とても勉強になります。

あとがき

これまで個人開発でKiroを使ってきましたが、そろそろ一旦区切りをつけて、今度は「Claude code + cc-sdd」という組み合わせを試してみようと思っています。cc-sddはKiroの影響を受けて作られたツールらしく、READMEを見る限り、SDDに関連する成果物の形式もほぼ同じようですね。