🤖

Kiroを触ってみた!仕様駆動開発ってどんな感じ?

に公開

1ヶ月ほど待ってWaitlistの順番がきたため、待望の Kiro を無料プランで触ってみました。
ここ最近はプライベートや業務で、ChatGPTやCopilot、Claude CodeなどさまざまなAIツールを触っていました。
そこで、それらのツールと比較しつつ、Kiroや仕様駆動開発がどのような開発体験かを確かめてみることにしました。

この記事では、ちょうど時間の取られていた定常タスクを効率化するためのシステム作成をKiroにお願いしました。
その体験を通してわかった、Kiroでの開発体験や仕様駆動開発の印象、さらに実際に作った成果物についてまとめています。

作成したシステムの概要

ここ最近、Developers IOやZennなどで見つけた記事の中から、業務的に役立ちそうなものをチームメンバーに週次で共有していました。
しかし、毎回それらの記事をZennやRSSリーダーにブックマークし、手動でまとめて共有する作業は時間がかかり、だんだん億劫になってきてしまいました。
そこで、ブックマークサービス Raindrop.io に保存した記事を自動で整理し、週次でメール配信するシステムを、Kiroに開発してもらうことにしました。

成果物

ソースコードはGitHubで公開しています。

大まかな構成は以下の通りです。

  • 言語: TypeScript・JavaScript
  • 主要AWSサービス
    • EventBridge Scheduler (Lambdaを週次実行する)
    • Lambda (ブックマーク情報を取得・加工する)
    • SES (加工したブックマーク情報をメール送信する)
  • 使用API: Raindrop.io API

使ってみた感想

  • 回答のレベル感
    基盤モデルはSonnet 4のため、Claudeと大差は感じませんでした。

  • 実装スピード
    他の記事でも見かけましたが、Vibeモードの実装速度はClaude Codeより多少遅い印象。
    まだPreview版なので今後の最適化に期待。

  • Specモードの開発体験
    「Kiroの上司」としてレビューするだけで、実際の開発主体はKiro。
    自分ではほとんど開発していないので、エンジニア的にどうなんだ感はありますが、体験としては素晴らしかったです。

  • 強行突破の傾向
    躓くと正攻法ではなく強行突破しようとする場面も。
    ただし、これはKiroというよりSonnet 4の特性のようです。

https://zenn.dev/readyfor_blog/articles/11d4e6b6129428#▷-opus-と-sonnet-の課題解決の方針の違い(イメージ)

  • コンテキスト管理の課題
    2時間ほど開発を進めると「ポンコツ化現象」が発生。
    ただし要件・仕様・タスクのドキュメントを生成してくれているので、
    コンテキストを初期化して読み込ませれば再開可能でした。

  • コスト面
    指示の与え方の問題もあるかもしれませんが、今回の開発で
    Vibeの無料枠+ウェルカムボーナスの150リクエストをすべて消費。
    コスパはやや悪そうです。

  • 技術的な疑問点

    • Kiroのモデルは仕様駆動開発用にファインチューニングされているのか?
    • それとも「仕様駆動開発しやすいUIを持ったIDE」にClaude Sonnet 4を載せただけなのか?
    • 仕様駆動開発用フレームワーク/MCPサーバーを使ったClaude Code + VS Codeとの違いは?
      このあたりは今後の検証が必要。

まとめ

今回のシステムは、構成や規模的には自分でも十分作れるレベルでした。
それでも、テスト込みで要件定義から動くシステムのデプロイまでわずか4〜5時間で完成したのは非常に早く、自分なら丸々1〜2日かかっていたでしょう。

さらに、そこまで考えなくても要件にマッチした動くものが完成したので、開発自体は非常に楽でした。
ただし、短時間で生成される大量のコードをレビューする必要があるため、実運用のプロダクト開発に使うのは大変そうです。
PoCレベルのシステムを作るには最適でしょう。

コスト面については、一番安いプランはCopilotやClaudeと同じ$20で1,000クレジットです。
今回の開発では150クレジットをあっという間に消費してしまったため、1,000クレジット/月だとやや厳しい印象です。
コンテキストの与え方を工夫すればコスト面も改善できるかもしれませんが、無料プランの範囲内では確認できませんでした。

Discussion