Jiraを「ただのチケット置き場」にするな:JQLで構築する、高速開発のための「コンテキスト・エンジン」
いいか、チームのベロシティが上がらない最大の原因は「チケットを探す時間」と「現状把握のコスト」にある。Jiraを単なるToDo管理に使っているなら、それは宝の持ち腐れだ。
JQL(Jira Query Language)は、単なる検索言語ではない。チームの「現在の脳内メモリ」を可視化し、ボトルネックを瞬時に浮き彫りにするプロジェクトの神経系だ。今日は、明日から君のチームの生産性を1.5倍にする、JQLの極意と運用のベストプラクティスを叩き込む。
—
1. 現場を救う「神JQL」ベストプラクティス
検索窓でポチポチとフィルタを選択するのは今日で終わりにしろ。以下は、テックリードが毎日叩くべき「現場の真実」を映し出すクエリだ。
A. 「放置された爆弾」を検知する
更新が止まったチケットはプロジェクトの癌だ。
— 最終更新から5日以上経過した「進行中」チケットを特定
statusCategory = “In Progress” AND updated < "-5d" ORDER BY updated ASC
なぜこれが重要か: 誰が何にスタックしているのか。スタンドアップミーティングで「何か困ってる?」と聞く前に、このクエリが答えを教えてくれる。
B. 「依存関係の詰まり」を可視化する
— 自分がアサインされているが、ブロックされている課題
assignee = currentUser() AND statusCategory = “To Do” AND issueLinkType = “is blocked by”
なぜこれが重要か: 自分が着手すべきものが何に阻まれているのか。言い訳の余地をなくし、プロアクティブな交渉へ繋げるための武器になる。
—
2. 開発スピードを加速させる「極秘テクニック」
隠れたキーボードショートカット
Jiraを使いこなす者は、マウスに触れない。
- `g` → `i`: 課題検索画面へ即時ジャンプ。
- `Shift` + `Enter`: リストビューでチケットを編集モードに即座に移行。
- `c`: チケット作成ウィンドウをどこからでもポップアップ。
- `.` (ドット): コマンドパレットを開き、あらゆるアクションを検索。
導入必須の「神」プラグイン(Marketplace)
- Jira Misc Workflow Extensions (JMWE): GUIで複雑な条件分岐を定義できる。手動チケット移動の手間を自動化し、ヒューマンエラーを根絶する。
- ScriptRunner for Jira: JQLで不可能な高度な計算や、スクリプトによる自動課題作成が可能になる。「あぁ、これ自動化できればな」と思うことは、全てこれで解決できる。
—
3. チームのナレッジを資産化する「共有化ルール」
JQLは「個人」で作るな。「チーム」で共有しろ。フィルターの乱立は、情報のサイロ化の始まりだ。
1. フィルター名には「接頭辞」をつけろ:
例:`[TEAM-A] 放置チケット`, `[ALL] 今週のリリース候補`
2. ダッシュボードへの「ガジェット配置」の黄金比:
- 左カラム:`Assigned to Me`(自分のタスク)
- 中央上部:`Filter Results`(チームのブロック中タスク)
- 右カラム:`Created vs Resolved Chart`(ベロシティの健全性)
3. パーミッション設定:
個人のフィルターを「プロジェクト単位」で共有する習慣をつけろ。情報を隠すことに価値はない。
—
4. 設定をコード化せよ:Jira AutomationのYAML的設計
Jiraのオートメーション設定は、XMLやJSONでエクスポートしてGit管理するのがプロの作法だ。設定の「差分」を追えるようにしておけ。
以下は、あるべき自動化設定の論理構造(疑似コード)だ。
チームのベロシティを最大化するための自動化ルール案
rule:
name: “自動催促ボット”
trigger: “scheduled”
cron: “0 9 1-5” # 毎朝9時に実行
actions:
- find_issues:
jql: “status = ‘In Progress’ AND updated < '-3d'"
- notify_assignee:
message: “このチケット、3日更新がありません。スタックしていますか?”
channel: “slack-dev-team”
※実際の設定はGUIで行うが、「どの条件で、誰に、何を通知するか」というロジックをドキュメント化し、コードベースとしてチームで管理することが、属人化を防ぐ唯一の手段だ。
—
最後に:ツールは思想である
JiraのJQLを使いこなすということは、「自分たちの開発プロセスを言語化し、客観視する」ということだ。
「なぜこのタスクは進まないのか?」「なぜこのステータスがボトルネックになるのか?」。JQLを書くとき、君は常にその問いを立てているはずだ。その問いこそが、チームをより高い次元へと押し上げる。
明日から、検索窓にただ単語を入れるのはやめろ。「今、チームに何が必要か」をJQLで問いかけ、システムから答えを引き出すんだ。
さあ、現場に戻れ。君のコードとプロジェクトを、最高速で前進させる時間だ。