メインコンテンツにスキップ

2025年8月時点の記録:Kiro + Claude Codeで変わる開発スタイル

タグ: 🏷 AI ,Kiro ,Claude

背景

「AIが開発者の仕事を奪う」という議論をよく耳にします。実際にKiro + Claude Codeを使った開発を1ヶ月間続けてみて感じたのは、「AIは開発者を置き換えるのではなく、開発者の能力を拡張する」ということでした。

この記事では、従来の開発スタイルがどう変わったか何が効率化され、何が新たに必要になったか、そしてAI駆動開発の現実的な姿を、実際のプロジェクト体験を通じて詳しく解説します。

AI駆動開発とは? AI駆動開発とは、AIツールを積極的に活用して、ソフトウェア開発の様々な工程(コード生成、テスト、設計、ドキュメント作成など)を効率化する開発手法です。AIを「スーパーアシスタント」として活用し、開発者はより創造的で戦略的な仕事に集中できるようになります。

先走りますが、Kiroが提供するSPECはとても強力に感じました。要件定義から設計、実装タスクを作ってくれるのです。同様のことはAI開発でも試行錯誤されていましたが、Kiroが機能として提供したのは画期的だと感じます。Kiroが先行していますが、次第に他のツールでも実装されると予想します。

開発環境とツール構成

以下のツールを組み合わせてAI駆動開発を行いました。

  • Kiro: awsが提供するAI機能が統合された高機能なコードエディターです。コードの自動補完や生成、リファクタリングなどをAIが支援してくれます。
  • Claude Code: Anthropic社が提供するAIアシスタントで、CLI(コマンドライン)から利用できます。プロジェクト全体の理解や設計相談、コードレビュー、ドキュメント生成など、より高度な対話が可能です。

開発スタイルの変化

Before: 従来の開発プロセス

AI導入前は、1つの機能を開発するのに、要件理解からドキュメント作成まで、合計で10〜16時間かかっていました。

After: AI駆動開発プロセス

AIを導入したことで、1機能あたりの開発時間が3〜4時間に短縮されました。これは70〜75%の効率化です。

【スーパーアシスタントとの協業イメージ】

  • 要件整理・設計相談: 開発者が「こんな機能を作りたい」とAIに相談すると、AIがすぐに設計案や実装方針を提案してくれます。まるでベテランの同僚に相談するようです。
  • 実装(コード生成): 開発者が「この関数を作って」と指示すると、AIが80〜90%のコードを自動で生成してくれます。開発者は、生成されたコードを確認し、微調整するだけで済みます。
  • レビュー・改善: AIが生成したコードをAI自身にレビューさせ、セキュリティやパフォーマンスに関する改善提案を受け取ります。
  • テスト生成・実行: AIがテストケースを自動で生成し、テストの実行まで支援します。
  • ドキュメント自動生成: コードからAPI仕様書やREADMEを自動で生成してくれます。

具体的な開発事例

事例1: Lambda関数の実装

Lambda関数は、AWS上で動く小さなプログラムです。従来は、関数の初期設定、エラー処理、ログ設定など、毎回同じようなコード(ボイラープレートコード)を手動で書く必要がありました。

AI駆動開発では、AIがこれらの定型的な部分を自動で生成してくれます。開発者は、関数の「核」となるビジネスロジックの実装に集中できます。

// AI駆動アプローチでのLambda関数実装
func businessHandler(ctx context.Context, request events.APIGatewayProxyRequest, ...) (
    // ClaudeCodeが文脈を理解して以下を自動生成:
    // - JWTトークンの取得・検証(認証情報のチェック)
    // - Cognitoからのユーザー情報取得(外部サービス連携)
    // - エラーハンドリング(エラー発生時の適切な処理)
    // - セキュリティマスキング(機密情報の保護)
    // - レスポンス形式統一(APIの出力形式を整える)
    // - 適切なHTTPステータスコード(成功/失敗のコード)
}

func main() {
    // ClaudeCodeが共通ハンドラーパターンを自動適用
    // これにより、上記のような共通処理を意識せずにビジネスロジックに集中できる
    config := lambdaCommon.DefaultConfig("get-user")
    commonHandler := lambdaCommon.NewCommonHandler(config)
    wrappedHandler := commonHandler.WrapHandler(businessHandler)
    lambda.Start(wrappedHandler)
}

事例2: フロントエンドコンポーネントの実装

Reactのようなフロントエンド開発でも、AIは強力なアシスタントになります。例えば、ユーザープロフィール画面のUIコンポーネントをAIに生成させることができます。

// AI駆動でのコンポーネント生成
export const UserProfile: React.FC<UserProfileProps> = ({ 
  user, 
  loading, 
  error 
}) => {
  // ClaudeCodeが以下を自動生成:
  // - プロップス(コンポーネントへの入力データ)の型安全な処理
  // - ローディング状態の表示(スケルトンUIなど)
  // - エラー状態のハンドリング(エラーメッセージの表示)
  // - アクセシビリティ対応(視覚障害者などへの配慮)
  // - レスポンシブデザイン(スマホやPCでの表示調整)
  // - 適切なCSSクラス名(スタイル適用)
  
  if (loading) {
    return <UserProfileSkeleton />;
  }
  // ... (エラー表示やユーザー情報表示のロジック)
};

事例3: テスト実装の自動化

テストコードの作成は、品質保証に不可欠ですが、時間と手間がかかります。AIは、このテストコードの作成も支援してくれます。

// ClaudeCode によるテストコード自動生成
func TestGetUserHandler(t *testing.T) {
    // ClaudeCodeが包括的なテストケースを自動生成:
    // - 正常なケース
    // - エラーケース(認証失敗、データベースエラーなど)
    // - エッジケース(入力値が空の場合など)
    // テスト実行ロジックも自動生成されるため、開発者はテスト内容の確認に集中できる。
}

開発効率の劇的向上

AI駆動開発を1ヶ月間導入した結果、以下のような定量的な改善が見られました。

もともとコードを書くのがとても苦手な私が、アイデア1つで積極的にコードを書くようになりました。

  • コード生成効率: 1時間あたり100行 → 350行(250%向上)
  • バグ発生率: 40%削減
  • 機能実装時間: 70%短縮
  • ドキュメント作成時間: 80%短縮

また、Kiroが提供するSPEC機能がClaudeCodeとの相性が良かったです。

KiroのSPEC機能を使用して、要件定義、設計書、実装タスクを作成しました。これを人間がレビューし、Claude Codeに実装させるというのが良かったです。

AI駆動開発で変わったスキルセット

AIが多くの定型作業を肩代わりしてくれることで、開発者に求められるスキルも変化しました。

新たに重要になったスキル

  • AI プロンプト設計: AIに的確な指示を出す「質問力」が非常に重要になります。まるでAIを「操る」ようなスキルです。
  • AI 出力の評価・改善: AIが生成したコードが本当に正しいか、セキュリティ上の問題はないか、パフォーマンスはどうか、といった点を人間が最終的に判断し、修正する能力が不可欠です。
  • アーキテクチャ設計: AIは部分的なコード生成は得意ですが、システム全体の設計や、複数の部品をどう組み合わせるかといった「大局的な視点」はまだ人間が担うべき領域です。

従来スキルの変化

  • コーディングスキル: 「コードをゼロから書く」ことよりも、「AIが生成したコードを理解し、レビューし、改善する」ことに重点がシフトします。
  • デバッグスキル: AIに効果的な質問をすることで、問題の原因特定がより迅速になります。