🌊

サーバーレス開発におけるAIツール活用術 〜Backlog・Cursor連携で実現する効率的な開発フロー

に公開

最近のプロジェクトで、AWSサーバーレス環境での機能実装を行うにあたり、AI支援ツールを活用した新しい開発フローを試してみました。従来の開発プロセスと比較して、作業効率が大幅に向上し、開発者としての集中力も維持しやすくなったと感じています。この記事では、特にBacklogでの要件整理からCursorでのコーディングまでの一連の流れにおいて、AIツールをどう活用したかをお伝えします。

Backlogによる要件定義の整理がすべての始まり

サーバーレス開発においては、細かな機能単位での実装が基本となります。そのため、要件の整理と分割が非常に重要です。私のチームでは、Backlogを使って要件を整理しています。

例えば、最近取り組んだタスクは「APIイベント処理の機能実装」でした。この要件を、以下のように具体的に記述しました。

課題キー: PROJ-1234
要件: 特定イベント受信後に既存の処理予約をキャンセルする機能が必要
詳細:
- 外部サービスからのwebhookイベントを受け取り処理する
- Amazon EventBridge経由でLambdaを起動する設計
- 既存予約がある場合のみキャンセル処理を行う

このように要件を明確に記述しておくことで、後述するAIツールの効果が大幅に高まります。曖昧な指示よりも、具体的な課題と制約を明示することで、AIが適切な提案をしてくれるようになるのです。

MCPサーバーを活用した情報収集とコンテキスト構築

Cursorのようなコーディング支援AIツールを使う際に特に重要なのが、適切なコンテキストの構築です。MCPサーバー(Machine Context Provider)を活用することで、開発に必要な情報を効率的に収集できます。

私の場合、以下のMCPを組み合わせて使用しています。

Backlog MCPで課題情報を取得し要件を理解したり、AWS Document MCPでAWS関連の技術情報を検索したり、さらに外部サービスのドキュメント検索MCPで連携先サービスのAPI情報を検索することもあります。

例えば、Backlog MCPを使って課題キーを渡すだけで、AIが要件を理解し、必要な情報を収集し始めます。

> Backlog の issue key: PROJ-1234 を確認してください。この要件を満たす AWS Lambda 関数を実装したい。なお、イベントは Amazon EventBridge 経由でwebhookデータが Lambda に送信されるものとする。

この指示一つで、AIは自動的にBacklogから課題情報を取得し、親チケットの関連情報も確認します。さらに既存コードベースを調査し、AWS EventBridgeと外部サービス連携について必要な情報を収集してくれるのです。わざわざブラウザで複数のタブを開いて調査する必要がなく、CursorのUI上ですべての情報が集約されるため、集中力が途切れる機会が大幅に減少します。

AIによる事前調査で開発の視界を確保

もっとも効果的だと感じたのは、実装前の「AI調査フェーズ」です。実際にコードを書き始める前に、AIに調査させることで、実装時の迷いや修正が大幅に減りました。

具体的には、次のような調査をAIに依頼します。

EventBridge と 外部サービス連携について調査し、API処理のための最適な実装方法を提案してください。現状の実装状況も踏まえた実装計画を立案してください。

すると、AIは現状のコードベース分析をし、既存のWebhookハンドラ構造や関連モジュールを把握してくれます。また技術調査として、EventBridgeと外部サービスの連携方法やAPIの選択肢も調べてくれるでしょう。そして実装計画として、必要なファイル構成や主要な実装ポイント、リスクと対策なども示してくれます。

特に、具体的なAPI選択の部分では、AIの提案が非常に価値があります。たとえば、外部サービスのAPIで「キャンセル」操作を行う場合、複数のメソッドから適切なものを選ぶ必要があることがあるかもしれません。

AIの調査結果では、「APIの選択肢の違い」として、処理全体をキャンセルし関連データにも影響を与えるoptionAと、特定の処理だけをキャンセルし関連データは通常通り継続するoptionBという選択肢が示されることもあります。今回の要件では特定処理だけをキャンセルし関連データは維持したいため、optionBが最適だと判断できるでしょう。

このような事前調査により、実装中の試行錯誤や後戻りが大幅に減少します。実装前に「視界を確保する」ことで、開発の質と速度が向上するのです。

実装計画をドキュメント化して作業を整理

調査結果を元に、AIに実装計画を立てさせ、それをMarkdownファイルとして保存するようにしています。この実装計画が、実際のコーディングフェーズでの指針となります。

実装計画には課題分析として要件の整理と現状のコードベースの状況を含めます。また技術的なアプローチとして使用するAPIや実装方針も記載します。さらにファイル構成、つまり作成・変更するファイルの計画や、重要な実装箇所とその考え方を示す実装ポイント、そして潜在的な問題点とその対処法となるリスクと対策も盛り込みます。

この実装計画をもとに、次のように実装フェーズに移行します。

@implementation_plan.md に基づいて実装を開始してください。

実装計画を別ファイルに保存しておくことで、コンテキストウィンドウの長さ制限の問題も回避できます。また、この計画を元に人間がコーディングすることも可能なので、AIと人間の役割分担も柔軟に決められることが利点です。

実装時の注意点とレビュープロセス

AIによるコード生成は効率的ですが、必ず人間によるレビューが必要だと感じています。特に複雑なAPI利用については注意が必要でしょう。

例えば、先述の外部APIを使った例では、AIが生成したコードに問題がありました。

// AIが生成したコード(問題あり)
public async cancelProcess(processId: string): Promise<ServiceType.ProcessResult> {
  // ...
  const canceledProcess = await this.apiClient.processes.cancel(processId);
  // ...
}

このコードは一見問題なさそうに見えますが、実際にはcancelメソッドを使うと要件と異なる動作(関連データも含めたキャンセル)になります。正しくは別のメソッドを使うべきでした。

// 修正後のコード(正しい)
public async cancelSpecificProcess(processId: string): Promise<ServiceType.ProcessResult> {
  // ...
  const result = await this.apiClient.processes.cancelSpecific(processId);
  // ...
}

このように、特にサードパーティAPIとの連携部分では、AIの提案を鵜呑みにせず、実装された内容が要件と一致しているか確認することが重要だと言えます。

開発フローの最適化で得られた効果

この開発アプローチを採用して、いくつかの効果を実感しました。複数のツールやタブを行き来する必要がなく、開発に集中できるため集中力を維持できます。またドキュメント検索やコードベース分析が大幅に高速化され、情報収集の効率も上がりました。さらに事前調査により、設計の質と実装の正確性が向上し、実装計画がドキュメント化されることで、作業の進捗や内容が明確になりました。

最も重要なことは、「自分が最も価値を出せる作業に集中できる」ということでしょう。機械的な情報収集や定型的なコーディングはAIに任せつつ、設計判断やコードレビューなど人間の専門性が必要な部分に時間を使えるようになったのは大きな変化です。

まとめ

AWS・クラウドサービス連携のようなサーバーレス開発において、AIツールの活用は単なる「便利機能」ではなく、開発プロセス全体を変革する可能性を持っています。特に重要なポイントは、Backlogでの要件整理によりAIが効果的に機能するための前提条件を整えること、MCPを活用した情報収集で開発コンテキストを効率的に構築すること、そして事前調査と実装計画により実際のコーディング前に視界を確保することです。

従来の開発フローと比較して、むしろ「準備」に時間をかけることで、全体としての開発速度と品質が向上するという逆説的な効果が得られました。

今後も、AIツールの特性を理解し、人間の強みと組み合わせることで、より効率的な開発プロセスを追求していきたいと思います。皆さんもぜひ、自分の開発フローにAIツールを取り入れて、最適な形を見つけてみてください。

デジタルキューブ

Discussion