チュートリアル: GitLabを使用してKanbanを促進する
このチュートリアルでは、カンバンワークフローでGitLabイシューボードを使用してタスクを管理する手順を説明します。グループ、プロジェクト、ボードをセットアップし、イシューを整理することで、透明性、コラボレーション、およびデリバリーを強化できます。
カンバンワークフローでGitLabイシューボードを使用してタスクを管理するには:
その他の情報については、このページの下部にある高度なヒントとコツを参照してください。
グループとプロジェクトを設定する
対応する手順に従って、グループを作成し、プロジェクトを作成します
チームが複数のリポジトリで作業している場合は、グループ内のリポジトリごとにプロジェクトを作成します。
イシューはそれぞれのプロジェクトに標準的に存在しますが、すべてのプロジェクトで表示レベルを維持できるように、カンバンボードはグループに存在します。単一のリポジトリで作業している場合は、この手順を省略できます。
ラベルを作成する
次に、カンバンライフサイクルの各ステップを表すラベルを作成しましょう:
- 単一のプロジェクトで作業している場合は、そのプロジェクトにラベルを作成します。
- 複数のプロジェクトで作業している場合は、グループにラベルを作成します。これにより、すべてのプロジェクトで単一のラベルセットを使用できます。
どちらのシナリオでも、ラベルを作成するプロセスは同じです。作成 スコープ付きラベルをstatus::to do(status::to do)、status::doing(status::doing)、status::done(status::done)に設定します。
カンバンボードをセットアップする
ラベルを作成したら、次の手順としてカンバンボードを作成します:
- 左側のサイドバーで、検索または移動先を選択して、グループまたはプロジェクトを見つけます。
- Plan > イシューボードを選択します。
- イシューボードの左上隅にあるドロップダウンリストから、現在のボード名を選択します。
- 新しいボードを作成するを選択します。
- 新しいボードの名前を入力し、ボードを作成するを選択します。
- + New list(+ 新しいリスト)を選択して、新しいラベルリストを作成します。
- リストのスコープをラベルに設定し、値をstatus::to do(status::to do)に設定します。
- 同じラベルリストの作成フローを繰り返して、さらに2つのラベルリスト(status::doing(status::doing)とstatus::done(status::done))を作成します。
おめでとうございます。これでカンバンボードができました。各リストに新しいイシューを作成したり、あるワークフローのステップから別のステップにイシューをドラッグアンドドロップしたり、チームメンバーにイシューを割り当てたりできるようになりました。
オプションで、ボードの各ラベルリストに対して作業中の上限(WIP)を有効にできます。これを行うには、次の手順に従います:
- ラベルリストの右上にあるリスト設定を編集ギアアイコンを選択します。
- 作業中の上限 > 編集を選択します。
- 対応するリストで許可されるイシューの最大数を入力し、Enterキーを押します。
これで、制限に達すると、リストの背景が自動的に赤色に変わります。「作業中の上限」カットラインもリストに表示され、制限を超えているすべてのイシューが線の下に視覚的に表示されます。
フローと分布を視覚化する
カンバンでは従来、累積フロー図を使用して負荷を視覚化し、ボトルネックの特定に役立てています。GitLabでは、バリューストリーム分析(VSA)でこれを実現できます。次に、カンバンワークフローに一致するカスタムVSAレポートを作成します。
フローを視覚化する
フローを視覚化するには:
- 左側のサイドバーで、検索または移動先を選択して、グループまたはプロジェクトを見つけます。
- サイドナビゲーションで、分析 > バリューストリーム分析を選択します。
- ページ左上にあるバリューストリームドロップダウンを選択し、New Value Stream(新しいバリューストリーム)を選択します。
- VSAレポートに必要な名前を入力し、Create from a template(テンプレートから作成)オプションを選択します。
- ステージ名にTo do(To Do)を入力します。
- 開始イベントで、イシューラベルが追加されましたを選択し、status::to do(status::to do) ラベルを選択します。
- 終了イベントで、イシューラベルが削除されましたを選択し、status::to do(status::to do) ラベルを選択します。
- 次に、ステージを追加するを選択します。
- この同じプロセスを繰り返して、status::in progress(status::in progress)とstatus::done(status::done)のステージングを作成します。
- 3つのステージングをすべて追加したら、新しいバリューストリームを選択します。
カンバンボードと同じワークフローに一致するカスタムVSAレポートを使用すると、GitLabは各イシューが各ステージングで費やす時間を自動的に計算し、すべてのステージングでデータを集計します。その結果、リードタイムとサイクルタイムが得られます。各ステージングを詳しく調べて、個々のイシューの具体的なタイミングを確認できます。
分布を視覚化する
分布を視覚化するには:
- 作成したVSAレポートで、タイプ別のタスクチャートまでスクロールダウンします。
- 右上にある歯車アイコンのドロップダウンを選択し、イシューのタイプを表すラベルを検索して選択します。
- type::…(type::…) スコープ付きラベルまたは同様のスコープ付きラベルを作成していない場合は、作業アイテムのタイプをワークフローに組み込むことを開始する良い機会です(たとえば、feature(feature)、bug(バグ)、maintenance(maintenance))。
- Show issues(イシューを表示)を選択し、ドロップダウンリストの外側の任意の場所を選択して変更を適用します。
- タイプ別のタスクチャートに、選択したラベルに一致するイシューの経時的な分布が表示されるようになりました。
高度なヒントとコツ
- 指定された条件に基づいてイシューを自動的に更新するポリシーを作成するには、
gitlab-triageを設定します。たとえば、status::done(status::done) ラベルが適用されたときにイシューを自動的に閉じたり、イシューが作成されたときにstatus::to do(status::to do) ラベルを自動的に追加したりするポリシーを作成できます。オープンソースgitlab-triagegemは、GitLabパイプラインとシームレスに連携するように設計されています。 - さまざまなタイプのイシューの作成をより効率的かつ標準化するには、説明テンプレートを作成します。
- グループまたはプロジェクト内の各チームメンバーの負荷を視覚化するには、assignee lists(担当者リスト)を使用して追加のイシューボードを作成します。
- Tシャツのサイズ設定イシューのスコープ付きラベルセットを作成します。たとえば、size::small(size::small)、size::medium(size::medium)、size::large(size::large)などです。