
Jira とは何ですか?
Atlassian の Jira は、もともとバグ トラッカーとして設計されましたが、長年にわたり、企業におけるソフトウェア開発プロジェクトの管理において最大の存在となっています。
その人気の理由は数多くありますが、アトラシアンのDevSecOpsツールチェーンにおけるJiraの重要な役割から、アトラシアンのマーケットプレイスで利用可能なサードパーティ製プラグインの豊富さまで多岐にわたります。その人気の一因は、Jiraがワークフローを柔軟に処理できることです。これにより、チームはワークストリームにおける価値の流れに合わせてツールを適応させることができ、ツールに合わせてチームの作業方法を変更する必要がなくなります。
参照:採用キット: バックエンド開発者(TechRepublic Premium)
ワークフローとは何ですか?
ソフトウェア開発において、ワークフローはチームのプロセスの一環としてタスクが進むステップとステータスを定義します。Jira は、標準で 3 ステップのシンプルなワークフローを提供しています(図 A)。
図A

たとえば、クイックサービスレストラン向けのモバイル注文アプリを開発していて、チームにクレジットカード決済機能を追加する任務が与えられた場合、この作業が左から右にどのように流れるか想像できます。
プロダクトオーナーは要件をまとめ、準備ができたら、その機能を実装するタスクをTo Doリストに追加します。開発者は、この機能の実装作業を開始し、「進行中」とマークします。開発者が作業を完了すると、ビルドはテスターに渡されます。すべてが期待通りに動作すれば、テスターはタスクを「完了」リストに追加します。
Jira はプロセス全体を通じて、コードに関与していないすべての関係者に可視性を提供し、実質的にプロジェクト マネージャーがスケジュールを把握し、間接的に予算を立てることを可能にします。
ソフトウェアの開発方法
現実には、ソフトウェア開発は直線的なプロセスではありません。開始と終了があり、望ましい結果が得られるまで、多くの場合、プロセスのステップを繰り返す必要があります。Jiraのシンプルなワークフローでさえ、実際には左から右へ流れるわけではありません。以下は、最もシンプルなJiraワークフローにおけるタスクの流れをより現実的に表したものです(図B)。
図B

主要なワークフローコンポーネント
理想的なワークフローとは何か、そして Jira を使用してそれをどのように作成するかについて詳しく説明する前に、ツールによって定義されたワークフローの主要コンポーネントのレベルを設定することが重要です。
状態
これは個別の作業項目の現在の状態です。このシンプルなワークフローでは、タスクは「To Do」、「進行中」、「完了」のいずれかになります。
トランジション
これらは、タスクをある状態から次の状態に移行させるためにツール内で実行されるアクションです。この例では、「To Do」状態にあるものを開発者に割り当てると、その項目は「進行中」に遷移する可能性があります。
解決
タスクが最終的に完了すると、それに関連する解決が必要になります。解決とは、作業項目の最終状態の処理です。これは確定済み、つまりオープンではなくなったとみなされます。このシンプルなワークフローでは、これは「完了」ですが、より高度なワークフローでは、「キャンセル」や「公開済み」などの他の解決方法も考えられます。
ボード
今日、Jira をプロジェクト管理に使用しているソフトウェアチームの大多数は、何らかのアジャイル開発手法を用いてプロジェクトを管理しています。これは、グループワークにおいて、チームが何らかのボード(通常はカンバンボードやスクラムボード)を用いて作業することが多いことを意味します。そのため、Jira のワークフローがボード上の列と相関関係にあるのは当然のことです。
推奨されるソフトウェア開発プロジェクト管理ワークフロー
Jira におけるソフトウェア開発プロジェクト管理ワークフローのあり方に、正解や不正解はありません。チーム内であっても、タスクの種類によってワークフローは異なります。
例えば、ソフトウェアのバグ修正のワークフローは、新機能のワークフローとは異なる可能性があります。組織に合わせて若干の名称変更はあるものの、参考になるベストプラクティスがいくつかあります。
カテゴリー
カテゴリーは、Jira でプロジェクト管理ワークフローを作成する上で最も重要でありながら、見落とされがちな機能の一つです。Jira にはカテゴリーが 3 つしかなく、既にご覧になったかと思います (図 A)。
最もシンプルな、すぐに使えるワークフローでは、カテゴリーとステータスは同じです。しかし、ワークフローを構築・カスタマイズしていくと、すべての新しいステータスをこれら3つのカテゴリーのいずれかにマッピングする必要があります。なぜでしょうか?それは、レポート作成と自動化のためです。Jiraには、バーンダウンのような既成のレポートが多数用意されています。これらのレポートは、カスタムワークフローにいくつの状態を追加しても、すべてがこれら3つの事前定義されたカテゴリーのいずれかにマッピングされている場合にのみ機能します(図C)。
図C

やり残し
これは、チームが優先順位に従って分類した既知の作業の概略リストです。ワークフローに入るすべてのタスクは、バックログから開始されます。
やること
十分な要件が収集され、タスクの準備が整ったと判断されると、タスクは To Do 状態に移動され、開発者がコーディングを開始できるようになります。
進行中
開発者がタスクを完了させようとしている間は、タスクは進行中とみなされます。開発者が満足のいく形でタスクを完了したら、タスクをテストに移行します。
テスト
ベストプラクティスとして、開発者は自分の作業をテストしません。そのため、「テスト」とマークされた項目は、他のチームメンバー(通常は品質保証エンジニアまたはプロダクトオーナー)による評価を受け、すべての受け入れ基準が満たされていることを確認します。
終わり
テスト フェーズに正常に合格したタスクは、「完了」ステータスで解決されます。
キャンセル
タスクがバックログに入ってから完了とマークされるまでの間に、何らかの理由でチームが作業を完了できないと判断した場合、そのタスクは「キャンセル」ステータスで解決されます。これにより、タスクが検討され、場合によっては開始されたことを追跡できます。単に削除してしまうと、後々不完全な状況が残ることになります。
ブロックされました
作業開始後、チームメンバーが作業を継続できない場合、その項目は「ブロック」に移動されます。これは、コミットされていたものの現在作業されていない項目に注目を集め、チームが問題に注力して解決にあたれるようにするためのものです。
Jiraの設定方法
Jira ツール自体でワークフローを作成するのは非常に簡単で、Atlassian のサイトにあります。
ワークフローの作成方法は、「会社管理」プロジェクトと「チーム管理」プロジェクトで異なりますのでご注意ください。どちらに該当するかわからない場合は、プロジェクトサイドバーの左下隅を確認してください。「チーム管理プロジェクトです」または「会社管理プロジェクトです」と表示されているはずです。
プロジェクトの種類や内容が決まったら、Atlassian サポートページの適切なリンクをクリックしてください。ソフトウェア開発用の独自のプロジェクト管理ワークフローを構築するかどうか迷っている場合は、Atlassian マーケットプレイスで提供されているプラグインを検討してみてください。
カスタム Jira ワークフローを作成するための 4 つのヒント
ワークフローを設定するときは、次のヒントに留意してください。
- 考えすぎないでください。シンプルであればあるほど良いです。
- グループ カテゴリ:進行中のステップをすべてまとめないのは、サイクル タイムを測定する能力に影響するため、通常はお勧めできません。
- すべての関係者に相談してください。全員のニーズを満たすワークフローを作成することが目的です。
- 遷移に積極的に取り組む:これにより、検証手順、自動化ルール、さらには制御担当者を作成できるようになります。