こんにちは!Backlogブログ編集部です。
新しい連載企画として、「ヌーラボのエンジニア・クリエイターが実践する、Backlog活用術」をスタートします。本連載では開発の最前線に立つヌーラボのエンジニアたちが、日々の業務でBacklogをどう使い倒しているのか——リアルなノウハウをお届けします。
第1回は、Appsユニットのエンジニア・Ryo Satoによる「AIコーディングエージェント×Backlog」の実践的ワークフローです。AI時代だからこそ際立つBacklogの実力を、ぜひご覧ください。
目次
はじめに
AIコーディングエージェントの進化が目覚ましいですよね。名前を挙げればキリがないほど、コードを自動生成してくれるツールが充実してきました。
でも、いざ現場で使ってみると、こんな壁にぶつかったことはありませんか?
- 「コンテキストが足りなくて、的外れなコードが出てくる」
- 「仕様はドキュメント管理ツール、タスクはタスク管理ツール、コードはGitホスティング… AIに渡す情報を集めるだけで疲れる」
- 「AIに指示を出すために、自分で仕様書を要約し直している」
AIは「何を作るか」が明確であるほど精度が上がります。つまり、AIコーディングの恩恵を最大化するカギは「良いインプットをいかに簡単に用意できるか」にあるんです。
この記事では、私が日々の開発で実践している「Backlog × AIコーディングエージェント」のワークフローを紹介します。ポイントは、Backlogが課題管理・ドキュメント・Gitリポジトリを1つのプロジェクトに統合しているところです。さらに、BacklogはMCP(Model Context Protocol)サーバーを提供している*ので、MCPに対応した任意のAIエージェントから直接Backlogの情報にアクセスできます。特定のツールに縛られることなく、お好みのAIエージェントで活用できるのも大きな魅力です。この「全部入り」が、AI時代の開発で想像以上に効いてきます。
*このMCPサーバーはMITライセンスで公開されているOSS実装で、Backlog本体の公式サポート対象ではありません。別途ご自身の環境にセットアップし、発行したBacklog APIキーを設定する必要があります。
Backlogの「全部入り」がAI時代にフィットする理由
一般的な開発現場では、情報が複数のツールに散在しています。
- タスク管理ツール
- ドキュメント管理ツール
- Gitホスティングサービス
この構成だと、ひとつの機能を実装するために3つのツールを行き来する必要があります。人間でさえ大変なのに、AIにすべてのコンテキストを渡そうとすると、さらにハードルが上がりますよね。
Backlogでは、これらが1つのプロジェクト内に統合されています。
| 役割 | Backlogの機能 | AIにとっての意味 |
|---|---|---|
| 何を作るか | 課題(Summary + Description + コメント) | 実装の指示書 |
| 前提知識・制約 | ドキュメント(設計書・仕様・ADR) | アーキテクチャの文脈 |
| コードとの紐付け | Git連携(ブランチ・PR・コミット) | 出力の追跡と品質管理 |
| AIとの接続 | MCP(Model Context Protocol)サーバー | 任意のAIエージェントから直接アクセス |
すべてが同じ空間にあるから、AIに渡す情報を「あちこちから集めてくる」手間がほぼゼロになります。しかも、BacklogのMCPサーバーを使えば、AIエージェントがプログラム的に課題やドキュメントの情報を取得できるので、コピペすら不要になります。これが日々の開発速度に直結しているんです。
実践: 私のワークフロー
ここからは、実際に私がどのようにBacklogとAIコーディングエージェントを組み合わせているかを紹介します。なお、このワークフローではBacklogのMCPサーバーを利用しているため、MCPに対応したAIエージェントであればどれでも同じように実践できます。
特定のエディタやツールに依存しないので、皆さんが普段お使いのAIエージェントで試してみてください。
開発の起点は常にBacklogの課題です。課題には以下が書かれています。
- サマリ: 何を実現したいか(1行で)
- 詳細: ストーリー、受け入れ条件、関連情報へのリンク
- コメント: 仕様の確認や議論の経緯
課題キー(例: PROJ-100)をそのままブランチ名に含める形でブランチを作ります。
PROJ-100/add-code-column
Backlog の Git 連携により、このブランチで作った PR は自動的に課題にリンクされます。「このコードは何のために書かれたのか」が常に追跡できる状態になります。
Step 2: 課題 + ドキュメントをAIに読ませる
ここがBacklogの「全部入り」が活きるポイントです。
BacklogのMCPサーバーを接続したAIコーディングエージェントに作業を指示するとき、私は以下のような情報を渡しています。
- 課題の Description(Acceptance Criteria)
- 「何ができれば完了か」が箇条書きで明確になっています
- AIはこれを「テストケースの元ネタ」としても活用できます
- 課題コメントの仕様確認やりとり
- 「この場合の挙動はどうする?」→「〇〇で確定しました」
- 仕様の「決定経緯」がスレッド形式で残っているので、AIが曖昧さなく実装できます
- ただし、コメントが長く続くと仕様の決定事項がスレッドの中に埋もれてしまうこともあります。そんなときは「Backlog AIアシスタント」が便利です。課題画面上でそのままコメントを要約して論点や決定事項を整理してくれるので、わざわざ別のAIエージェントに切り替えることなく、その場で仕様を把握できます。散らばった議論から「結局どう決まったのか」をサッと確認し、そのままコーディング作業に戻れるのは嬉しいポイントです
- プロジェクトのドキュメント(設計書・テーブル定義)
- Backlogのドキュメント機能に置いた設計資料をAIに参照させます
- 既存のアーキテクチャや命名規則に沿ったコードを生成してくれます
重要なのは、これらすべてが「同じBacklogプロジェクトの中」にあることです。MCPを通じてAIエージェントが直接課題やドキュメントを読み取れるので、URLを渡すだけで必要な文脈を辿れます。ツールを横断して情報を集め、プロンプトにコピペする作業が不要になるんです。
Step 3: AIの出力をPRにして課題に紐付ける
AIが生成したコードは、Step 1で作ったブランチにコミットし、PRを作成します。
BacklogのGit連携により:
- PRが課題のタイムラインに自動表示されます
- レビューコメントも課題から辿れます
- マージ時に課題のステータスを自動更新することもできます
結果として、1つの課題を見れば「要件 → 仕様確認 → 設計資料 → コード → レビュー結果」がすべて揃います。これは将来、自分やチームメンバーが「なぜこの実装になったのか」を振り返るときにも非常に役立ちますよ。
具体例: DBカラム追加が「1時間 → 5分」になった話
少し具体的な例を挙げてみます。
最近、外部サービスとの連携で使っているテーブルに「コード」のカラムを追加するタスクがありました。よくある「ALTER TABLE に1カラム足すだけ」の作業です。
しかし手順として書き出してみると実際にやることは意外と多いと感じます。
- 課題キーからブランチを作成する
- マイグレーションファイル(ALTER TABLE文)を作成する
- DDL定義ファイル(CREATE TABLE文)に同じカラムを追記する
- アプリケーション側のエンティティクラスにフィールドを追加する
- DAO(データアクセス層)のSQL文を修正する
- 関連するテストデータのSQLを更新する
- 適切なコミットメッセージを考えてコミットする
- 設計ドキュメント(テーブル定義書やERD)を更新する
手動でやると、ファイルを探して、カラムの位置を合わせて、型やデフォルト値を間違えないように注意して…で、だいたい1時間はかかっていました。
しかも、8番目の「ドキュメント更新」は忘れがちで、気づいたら実際のテーブルと設計書の内容がズレている――という経験、心当たりのある方も多いのではないでしょうか。
AIに渡したコンテキスト
このタスクでは、Backlogの課題に以下が揃っていました。
- 課題の詳細: 「テーブルに項目を追加する。目的は仕様が変わった際にも外部サービスの情報を正しくしておけるようにするため」
- 受け入れ条件: 「テーブルに項目が追加され、仕様通り値が入る」
- コメントでの仕様確認: 「初期値を何にするか」→「一旦XXXにしておく」
- ドキュメントへのリンク: テーブル設計のスプレッドシート、対象カラムの定義
AIエージェントにはこの課題の情報と、プロジェクト内のドキュメント(既存のテーブル定義・コーディング規約)を読ませました。
5分で完了した作業
AIは以下をまとめて生成してくれました。
- 課題キーに基づいたブランチの作成(PROJ-100/add-code-column)
- ALTER TABLEのマイグレーションファイル(カラム名・型・デフォルト値・配置位置すべて正確)
- DDL定義ファイルへの追記(既存テーブル定義に合わせたフォーマットで)
- エンティティクラスへのフィールド追加
- DAOのINSERT/SELECT文への反映
- テストデータSQLの更新
- 変更内容を要約した適切なコミットメッセージの生成とコミット
しかも、関連するドキュメントの更新も自動で行われました。 これが一番大きいです。
従来、マイグレーションを書いた後に「あ、DDL定義も直さなきゃ」「テスト用SQLも更新しなきゃ」と手動で追いかけていた作業が、AIがプロジェクト内のルール(「ALTERを書いたらDDL定義にも反映すること」)をドキュメントから読み取り、自動的にセットで対応してくれたんです。
結果として:
- 作業時間: 1時間 → 約5分
- ドキュメントの乖離: ゼロ(AIがルールに従って自動更新)
- レビューの負担: 差分が明確で「全箇所ちゃんと更新されている」ことが一目でわかる
なぜBacklogだからこれができたのか
このフローが回るのは、Backlogに「情報が集約されている」からです。
- 課題に「何をどう変更するか」の仕様が書かれている
- ドキュメントに「守るべきルール(DDL定義も更新すること)」が書かれている
- Gitリポジトリに「既存のコードとテーブル定義」がある
- これらがすべて同じプロジェクト内にあるので、AIが横断的に参照できる
もし仕様がチャットツールに流れていたら? ドキュメントが別のツールにあったら? AIはそれらを参照できず、マイグレーションファイルだけ作って終わりだったでしょう。残りの5ファイルは結局手動で対応し、ドキュメントの更新は「あとでやる」まま放置される――そんな未来が容易に想像できますよね。
なぜ「情報が一箇所にある」ことが、AI時代にこれほど重要なのか
ここで一歩引いて考えてみたいと思います。
AIコーディングエージェントに限らず、開発チームが直面する課題の多くは「情報の分散」に起因しています。
- 新メンバーのオンボーディングに時間がかかる → 情報があちこちにあるから
- 仕様変更の経緯が追えない → SlackやMTGで決まったことがドキュメントに反映されていないから
- コードレビューで「なぜこの実装?」と聞かれる → 要件と実装が紐づいていないから
Backlogはこれらを「1つの課題」を軸に集約してくれます。課題にドキュメントがリンクされ、Gitのブランチが紐づき、コメントで経緯が残ります。この構造はAI以前から有用でしたが、AI時代になって「機械にもコンテキストを渡す必要がある」というニーズが生まれたことで、価値がさらに高まりました。
他ツールとの比較
率直に言えば、他のタスク管理ツールにもGit連携やドキュメント機能を備えているものはあります。ただ、私が感じるBacklogの強みは以下の点です
非エンジニアも同じ画面を使える
ソフトウェア開発の現場では、ビジネスサイド(PMや外部パートナー)との仕様確認が頻繁に発生します。Backlogはエンジニア以外のメンバーにとっても敷居が低い UIなので、「課題のコメントで仕様を確認 → そのコメントをそのままAIのインプットに使う」というフローが自然に回ります。
多機能なタスク管理ツールだとビジネスサイドのメンバーが「画面が複雑で使いこなせない」と感じるケースがありますし、エンジニア向けのIssue管理だとそもそもリポジトリへのアクセス権の問題が出てきます。
Git・ドキュメントが「追加設定なし」で使える
Backlogではプロジェクトを作った時点でGitリポジトリもドキュメントスペースも使えます。「タスク管理・ドキュメント管理・Gitホスティングを別々に契約して連携設定する」手間がありません。小さく始められるのは、特にスタートアップや少人数チームにとって大きいですよね。
まとめ
AIコーディングエージェントは「良いインプット」を渡せば渡すほど、良いアウトプットを返してくれます。そして「良いインプット」を最も簡単に用意できるのは、課題・ドキュメント・Gitが1つの場所に集約されている環境です。
Backlogはまさにその環境を提供してくれます。
- 課題に書かれたAcceptance Criteria → AIへの「何を作るか」の指示
- ドキュメントの設計書 → AIへの「どう作るか」の制約
- Git連携 → AIの出力と要件の自動紐付け
「AIを導入したいけど、ツールが散らばっていて面倒」と感じているチームにこそ、この「全部入り」の価値を体感してもらいたいです。まずは1つの課題を起点に、AIエージェントに仕事を任せてみてください。きっと「情報が集まっている」ことの力を実感できるはずです。
筆者: Ryo Sato / ヌーラボ Appsユニット エンジニア