より良いチケットが、エージェントによるより良いコード生成を支援する

AIエージェントを活用してエンタープライズ向け製品を構築した経験の振り返りと、私たちの働き方についてデータが物語ること。

 

観察から見えたこと

 

ここ数か月、私たちは従業員の報酬計画・管理・コミュニケーションを支援する、全社規模かつ本番運用レベルのアプリケーションを急ピッチで構築してきました。私は、自分たちが作ったものを従来型の手法で作られたプロダクトと比較して、この新しい働き方から得られる知見を引き出そうと試みました。

私たちは1つの目標を掲げて取り組みを始めました。それは、小さなチームがどれだけ速く本番運用レベルのプロダクトをリリースできるのか、自分たちの限界に挑んでみることです。そのため、通常のスプリントセレモニーや従来型のフレームワークは省き、ひたすら開発に専念しました。

始める前の私たちには、ざっくりとした仮説がありました。エージェントと協働すれば、より速く成果を出せるだろう、そしておそらく、エージェントを軌道に乗せておくために、いつもより少しチケットを多めに書くことになるだろう、というものです。そこまでは想定内でした。

想定外だったのは、その規模でした。従来型の手法で同程度の期間に提供された、規模の近いプロダクトと比較して結果を測定したところ、エンジニア1人あたりの成果は、正味のコード行数、循環的複雑度、データベーススキーマの規模、外部連携のいずれの指標でも、およそ5倍に達していました。2つのビルドは規模の面ではほぼ同等です。さらに、5人のチームが、そのチームと比べて1人あたり5倍近くのJiraチケットを書いていました。

さらに大きな驚きは、品質でした。出典を伏せた状態での評価では、私たちのチケットは記述品質で5点満点中平均4.47点を記録し、従来型の手法で書かれたチケットの2.72点を上回りました。また、「エージェントレディ」と判定されたチケットの割合は83%に達し、従来型のわずか6%と対照的でした。

私たちはなぜ、チケットを減らすのではなく、むしろ増やしたのか

直感に反するようですが、エージェントによって開発スピードが上がったことで、適切にスコープが定められたチケットの価値は、下がるどころかむしろ高まりました。理由は3つあります。

理由

説明

スコープを絞ることで、エージェントが軌道から外れずに済む。

私たちはAIとエージェントハーネスを使っていましたが、これはヴァイブコーディングで作ったアプリではなく、本番運用レベルのものです。作業単位を一つひとつ厳密にスコープ設定しておくことこそが、エージェントが暴走したり、こちらが依頼してもいない要件を勝手に作り出したりするのを防いでくれます。

連携には、やはり計画が必要。

5人ほどのエンジニアがそれぞれ並行してエージェントを動かす状況では、計画があるからこそ、互いの作業を踏み荒らして衝突を生むことを避けられます。実行するのはエージェント、しかし調整するのは依然として人間です。

優れたチケットは、エージェントにとっての実行ループそのもの。

私たちは、明確な完了基準を備えた、きちんと定義された作業単位をエージェントに渡したいと考えています。そうすれば、絶えず指示をやり取りしなくても、エージェントは最後までやり遂げられます。適切に書かれたJiraチケットは、まさにその実行ループなのです。

 

私たちが実際に作業項目を作成し、任せるまでの流れ

「どうやって」の部分こそ、人から最もよく尋ねられるところなので、自分たちのリズムをつかんだあとに実際どんな形になったのかをご紹介します。うまくいったパターンは、人間の労力を工程の上流に前倒しし、まず深く理解することに注力するというものでした。そうしておけば、エージェントが動き出す時点では、チケットはそのまま実行できる仕様書になっているのです。

ステップ

私たちが行ったこと

ウォークスルー

私たちのTPMが、その機能のプロトタイプをチームに一通り説明します。エンジニアたちは内容を掘り下げ、質問し、まだチケットが1つも存在しない段階で、浮かび上がってくるエッジケースを文書化していきます。Loomノートテイカーが会議のトランスクリプトを記録し、それが後にプランナーエージェントへのもう一つのインプットとなります。

一緒に設計する

チームとして大枠の設計を議論し、Confluence上で共同作業を進めます。こうすることで、共有された理解が誰か一人の頭の中ではなく、永続的に残る場所に蓄積されます。

エージェントと計画を立てる

プランナーエージェントに必要なコンテキスト、すなわちPRD、デザインドキュメント、ソースコード、そしてウォークスルーの会議トランスクリプトを渡し、エージェントと対話しながら計画を立てます。具体的には、実現可能性を調査し、アプローチを検証し、実行順序を決め、受け入れ基準を提案していきます。エージェントとやり取りを重ねてスコープと基準を練り上げ、納得できたところで、最終的にエピックを、管理しやすく適切にスコープが定められたチケットへと分解します。それらのチケットは、合意した受け入れ基準とともに、エージェントがAtlassian MCPを通じて直接作成します。人間の労力は、チケットを打ち込む作業ではなく判断(この分解の仕方は正しいか、これらの基準は適切か)に集中します。だからこそ、事前のスコープ設定が非常に重要であり、チケットのスコアがこれほど安定して高かったのです。

エージェントハーネスで実行する

チケット単位では、リポジトリ内で定義されたルールやガイドラインに従うエージェントハーネスを走らせ、コードを書かせ、レビューさせます。コンテキストはチケット上に存在するため、複数のエンジニアがこのループを並行して回せます。

レビューして出荷する

私たちはAtlassian MCPを使ってプルリクエストを作成し、互いの作業をレビューします。PRが取り込まれるペースを考えると、人間のレビューだけで追いつくのは難しく、レビューにおけるエージェントの支援が欠かせません。Atlassian MCPは、計画立案、エピック作成、Jiraチケット作成、PRの作成とレビュー、そしてパイプライン監視をつなぎ合わせます。これこそが、Jiraが私たちのワークフローの中心に位置している大きな理由です。

 

これをデータで裏づけできるか?

できます。私は、出典を伏せたチケットのサンプルを、記述品質の5つの観点(明確さ、スコープ、受け入れ基準、コンテキスト、実行可能性)で採点するLLMジャッジを構築し、私たちのAIネイティブなチケットを、従来型の手法で書かれたチケットと比較しました。

指標

AIネイティブ

従来型

エンジニア1人あたりのチケット数(対象期間内)

約180

約43

チケット品質スコアの平均(1〜5)

4.47

2.72

「エージェント対応可能」なチケット(スコア4以上)

83%

6%

受け入れ基準の明確さ(1〜5)

4.32

2.20

サンプル:300件のチケット(プロダクトごとに150件)を、実際に出荷されたコミットから参照されていたチケット群からシード付きランダムで抽出しました。この差は統計的に圧倒的です(Welchのt値が約17.5、p<0.001)。これは、両側150件ずつのチケットで、この差が標本抽出のたまたまの偏りである確率が1,000分の1未満であることを意味します。

差が最も大きく開いたのは、まさにエージェントにとって最も重要な部分、すなわち受け入れ基準とコンテキストという、エージェントが自律的に実行するために必要な2つの要素でした。私たちのチケットは、実行可能な仕様書のように読めます(明示的な受け入れ基準、スコープに含まれる領域、スコープ外に関する注記、依存関係のリンク)。一方、従来型のチケットは、たいてい1行の要約とリンク1本だけでした。

 

うまくいかなかった点(そして朗報)

一つ、本当に足りていないものがありました。エージェントは、別の作業をしている最中に、実在する問題、すなわち潜在的なバグ、その場しのぎの対応、技術的負債などをたびたび浮かび上がらせます。しかし、それらをその瞬間に手間なく記録する手段がないため、こうした発見はセッションが終わると消え去ってしまいます。

その結果、一種の健忘症のような状態が生まれます。同じ問題が何度も何度も再発見され、私たちは毎回それらを見つけ出すコストを払いながら、そのコストを一向に返済できずにいるのです。

朗報は、私たちがすでにその解決に向けて動き出していることです。エージェントの活動をあらゆるチケット上で一級市民として扱えるようにし、エージェントが技術的負債を見つけたその瞬間に、セッション終了とともに失うことなく記録できるようにするのです。

 

まとめ

私が最も強く感じるのは、これらのどれ一つとして義務づけられたものではなかった、ということです。私たちは、Jiraについて何かを証明しようとして始めたわけではありません。可能な限り速く動こうとするその真っ只中で、ごく自然にJiraへ手を伸ばし、そしてJiraはその居場所に値し続けたのです。エージェントの作業範囲を定める必要があるとき、チーム全体で連携する必要があるとき、あるいは作業をきれいに引き継ぐ必要があるとき、そのたびに、優れたチケットこそが物事を機能させてくれる道具でした。それは静かに、私たちがAIネイティブなワークフローで動くうえでの屋台骨となっていったのです。

信頼という側面もあります。企業はすでに、最も機密性の高い計画データや知識データをアトラシアンに預けて信頼を寄せています。エージェントが生み出す成果物、エージェントが使うコンテキスト、下す判断、加えられる修正、そしてトークンコストを、その同じ信頼できる場所に保持しておくことには意味があります。なぜなら、その記録を外部のAIツールにばらまくのではなく、自分たちの手で保有したいはずだからです。

AIが進化し続け、まるでどんな願いでも叶えてくれるかのように見える世界では、大切なのは願いの立て方です。私たちがあえて明示することを選んだ細部こそが、何が作られるかを形づくります。そして、エージェントに埋めさせるまま残したあらゆる前提は、後になって払うことになるコストなのです。そして、そうした願いをうまく立てる場所、すなわち意図を明確に捉えてエージェントに手渡す場所として私たちが見出したのが、Jiraチケットでした。