かんばんとは
カンバンは、看板または掲示を意味する日本語の用語です。 大野耐一という工業エンジニアは、トヨタ自動車株式会社で製造効率を向上させるためにカンバンを開発しました。
カンバンは製造用に作成されましたが、ソフトウェア開発はフローやスループットの向上など、多くの同じ目標を共有しています。 ソフトウェア開発チームは、カンバンの基本原則と手法を使用することで、効率を向上させ、より迅速にユーザーに価値を提供できます。
カンバンの原則
カンバンを採用するには、チームの以前の方法とは異なる可能性があるいくつかの基本的な慣行に従う必要があります。
仕事の見える化
開発チームのステータスと作業の進捗状況を理解するのは難しい場合があります。 作業の進捗状況や現状は、作業項目の一覧や文書として提示するよりも、視覚的に提示したほうが理解しやすいです。
作業の視覚化は、Kanban が主に Kanban ボード を通じて取り組む重要な原則です。 これらのボードは、進行状況ごとに整理されたカードを使用して、全体的なステータスを伝達します。 ボード上のさまざまな状態のカードとして作業を視覚化すると、プロジェクトの現在の状況の全体像を簡単に把握できるだけでなく、生産性に影響を与える可能性のある潜在的なボトルネックを特定するのにも役立ちます。
プルモデルを使用する
これまで、利害関係者は開発チームに作業を押し付けることによって機能を要求し、多くの場合、厳しい期限が設定されていました。 チームが期限内に機能を提供するために近道をしなければならない場合、品質が低下します。
カンバンでは、完了した作業を検討する前に満たさなければならない、合意された品質レベルを維持することに重点を置いています。 このモデルをサポートするために、関係者は、すでにフル稼働しているチームに仕事を押し付けることはありません。 代わりに、関係者はリクエストをバックログに追加し、容量が利用可能になったときにチームがワークフローに取り込みます。
WIP制限を課す
チームが一度にあまりにも多くのことに取り組もうとすると、コンテキストの切り替えが頻繁に発生し、コストがかかるため、生産性が低下する可能性があります。 チームは忙しいのに仕事が終わらず、その結果、受け入れがたいほど長いリードタイムが発生します。 チームが一度に作業できるバックログ項目の数を制限すると、コンテキストの切り替えを減らしながら集中力を高めることができます。 チームが現在取り組んでいる項目は、進行中の作業 (WIP)と呼ばれます。
チームは、WIP 制限、つまり一度に作業できるアイテムの最大数を決定します。 規律あるチームは、WIP 制限を超えないように注意します。 チームは WIP 制限を超えた場合、その理由を調査し、根本原因に対処するために取り組みます。
継続的な改善を測定する
継続的な改善を実践するには、開発チームは有効性とスループットを測定する方法が必要です。 カンバン ボードは、ワークフロー内の作業状態の動的なビューを提供するため、チームはプロセスを実験し、ワークフローへの影響をより簡単に評価できます。 継続的な改善のためにカンバンを採用しているチームは、リード タイムやサイクル タイムなどの測定を使用します。
かんばんボード
カンバン ボードは、チームがカンバンの実践を実装するために使用するツールの 1 つです。 カンバン ボードは、列に配置されたカードを表示する物理的なボードまたはソフトウェア アプリケーションです。 一般的な列名はTo-do、Doing、Done ですが、チームはワークフローの状態に合わせて名前をカスタマイズできます。 たとえば、チームは新規、開発、テスト、UAT、および 完了を使用することを好む場合があります。
ソフトウェア開発ベースのカンバン ボードには、製品バックログ項目に対応するカードが表示されます。 カードには、タスクやテスト ケースなどの他の項目へのリンクが含まれています。 チームはカードをカスタマイズして、プロセスに関連する情報を含めることができます。
カンバン ボードでは、WIP 制限はすべての進行中の列に適用されます。 最初と最後の列は開始されていない作業または完了した作業を表すため、WIP 制限はこれらの列には適用されません。 カンバン ボードは、制限を超えている列に注意を向けることにより、チームが WIP 制限内に留まるのに役立ちます。 その後、チームはボトルネックを解消するための一連の行動を決定できます。
累積フロー図
ソフトウェア開発ベースのカンバン ボードに一般的に追加されるのは、累積フロー図 (CFD) と呼ばれるチャートです。 CFD は、通常は数週間にわたって、各状態の品目の数を長期にわたって示します。 横軸はタイムラインを示し、縦軸はプロダクト バックログの項目数を示します。 色付きの領域は、カードが現在いる状態または列を示します。
CFD は、ボトルネックや進行速度を妨げるその他の要因など、時間の経過に伴う傾向を特定するのに特に役立ちます。 優れた CFD は、チームがプロジェクトに取り組んでいる間、一貫した上昇傾向を示します。 チームが WIP 制限内で作業している場合、グラフ全体の色付きの領域はほぼ平行になるはずです。
色付きの領域の 1 つまたは複数の膨らみは、通常、チームの流れのボトルネックまたは障害を示します。 次の CFD では、緑色の完了した作業は横ばいですが、青色のテスト状態はおそらくボトルネックが原因で増加しています。
アジャイル開発におけるカンバンとスクラム
アジャイル開発の範疇に広く収まりますが、スクラムとカンバンはまったく異なります。
- スクラムは固定長のスプリントに重点を置いているのに対し、カンバンは継続的なフロー モデルです。
- スクラムには役割が定義されていますが、カンバンにはチームの役割が定義されていません。
- スクラムは重要な指標として速度を使用しますが、カンバンはサイクル時間を使用します。
チームは通常、スクラムとカンバンの両方の側面を採用して、最も効率的に作業できるようにします。 どの特性を選択するかに関係なく、チームは最適な特性が見つかるまで常に検討して適応させることができます。 チームはシンプルなことから始めるべきであり、ユーザーに定期的に価値を提供することの重要性を見失わないようにする必要があります。
GitHub を使用したカンバン
GitHub は、プロジェクト ボード (クラシック)を通じてカンバン エクスペリエンスを提供します。 これらのボードは、特定の機能開発、包括的なロードマップ、またはリリース チェックリストの作業の整理と優先順位付けに役立ちます。 プロジェクト ボード (クラシック)を自動化して、カードのステータスを関連する問題やプル リクエストと同期させることができます。
Azure Board を使用したカンバン
Azure Boards は、DevOps 計画のための包括的なカンバン ソリューションを提供します。 Azure Boards は Azure DevOps 全体で緊密に統合されており、Azure Boards と GitHub の統合の一部とすることもできます。
- 詳細については、「作業の計画と追跡に Azure Boards を使用する理由」を参照してください。
- 学習モジュール ソフトウェア開発へのアジャイル アプローチの選択 では、Azure Boards での実践的なカンバン エクスペリエンスが提供されます。