この記事の所要時間: 4

カンバンの動きをみていこう

カンバンはとてもよくできたメカニズムでチームとプロダクトを効果的に進行していくことができます。慣れていくと、各作業項目(カード)の粒度も安定してきて、作業項目の数でWIP制限や進捗、実績の把握ができるようになっていきます。

ボードにカードを載せていくこと自体も「情報ラジエーター」としてとても効果がありますが、カンバンのメカニズムでよりよくしてくコツをつかむことは大切だと思います。

ここでは、カンバンでの進め方を VSTS の(カンバン)ボードを使ってみていきましょう。

 

カンバンのカラム

ここでの例では、カラムとして、左から右に

  • バックログ
  • 分析
  • 実装
  • 検証
  • デプロイ
  • 完了

とあります。

また、両端以外には、Doing と Done の2つのサブカラムに分割をされています。

 

WIP制限

各カラムにはそれぞれに WIP制限 が設けられています。これは、各カラム(工程)での仕掛かりの数を制限しているということです。例えば、5と書いてあれば、このカラムで5件を超えたらパフォーマンスを出すことができないことを示しています。

WIP制限について詳しく知りたい方や、WIP制限の数値を割り出したい方は、下記の記事をご覧ください:

WIP制限の算出シートを無償公開

この例では、WIP制限を以下にしています:

  • 分析: 5
  • 実装: 3
  • 検証: 4
  • デプロイ: (制限なし)

※ 両端(バックログと完了)にはWIP制限を設けません。

ここでは、実装が一番時間を要するため、制限をきつめに調整しているわけです。また、デプロイについては、検証まで終えた品質を高めたものはいつでもデプロイできるということでWIP制限を設けていません。

 

シミュレーション

ここからは、本題の実際のカンバンの動きを見ていきます。

シミュレーション1: バックログの優先順位づけ

まずは、左端の「バックログ」に着目してください。

ここには、いつでもなんでも放り込むことができます(※現時点でここに制約はなにも設けていない前提にしています)。とはいえ、このバックログから作業項目を「分析」で取っていかなければならないので、目安となる優先順位が必要となります。

どうやって優先順位をつけていくのかというとこの手のボードでは、優先順位の高い方から順にならべていけばよいです。一番上が一番先にやらなければならないということです。また、優先順位であって、優先度ではないことに注意してください。あくまでこの並びがそのまま実施してほしい順位になっているのが大切です。

この手のツールでは、ドラッグ&ドロップでカードの入れ替えを行えますので、直感的に優先順位を設定することができます。

シミュレーション2: カードを取る

さてさて、次に大事なのは、カードを取るということです。ここでのカードをとるとは、カラムからカラムへカードを移動することをさします。

たとえば、今回の例では、「分析」カラムに実はWIP制限(5)を超える6つのカードが存在してしまっています(こうならないように今から説明する方法をとるのですが、今回は便宜上あえてこの状況にしています)。

ここで、「分析」カラムで作業している人が、Doneにあるカードを右隣の「実装」カラム(の Doing)にカードを移動するとしましょうか。実はそれは誤りです!!!!

カラム間でカードを移動できるのは、移動先となるカラムの担当者としましょう。今回の例だと、「実装」カラムの担当者が、「分析」カラム(のDone)からカードを取ってこれます。要するにカードを引き出すことができます(プル)。

仮に「実装」カラムのWIP制限(3)めいっぱいに引き出したとすると、「実装」カラムのDoingサブカラムに3つのカードが並ぶことになります。

さてさて、ここで「分析」カラムは、WIP制限(5)に対して、3つのカードになったわけです。なので、「バックログ」からあと2つカードを引き出すことができるとわかります。そんなことよりまずは、Doing の3件の分析をはじめて、終わらせようではありますが。

シミュレーション3: カードを実行する

各カラムにあるカードでは、当然作業を実行することになります。作業を実行し完了したならば、Doing サブカラムから Done サブカラムにカードを移動します。このときに移動できる人は、そのカラムの担当者です。ここは、次のカラムの担当者ではありません。ただし、Done に移動するということはその次のカラム(工程)にもっていく品質を担保できていることが保証されているものになります。ここで重要になってくるのが、Doneに移動するための「完了の定義」となります。

例えば、「実装」カラムでの完了の定義としては、「テストコードつきのコードが実装できて、ユニットテストが100%グリーンで、コードカバレッジが80%で、CIで問題がないこと」などです。

質の保証されたものが次のカラム(工程)に引き出されることができなければ、先に説明したシミュレーション1が成り立ちません。

シミュレーション3: やることがナッシング!

さて、上図のような状況になったらどうしましょうか?

  • 「分析」は、すべての作業を終えています。
  • 「実装」は、1つ作業を終えていて、2つ作業が終わっていません。
  • 「検証」は、なにも作業がありません。

この状況だとどう思いますか?

「分析」の担当者と、「検証」の担当者がやることがなにもないように感じたかもしれません。もしそうであったら、休憩していればよいのではなく、「実装」の作業を手伝いましょう。専門的なスキルがないっていいはるならば、アンパンとコーヒーを買ってくることはできるはずです。

でもこの例では、実はまだやれることがあります。

今まで解説してきたことを思い出してください。

「検証」の担当者は、「実装」の Done からカードを引き出すことができます。すると「実装」のカードが2つとなりWIP制限の3未満になるわけです。

すると、「実装」の担当者は、「分析」の Done からカードを引き出せます。そして、「分析」のカードもWIP制限未満となるので、「分析」の担当者は、「バックログ」からカードを一つ引き出せます。

はい、こんな感じで進めていけるのがカンバンです。