判断するための情報を得る - 見える化
スプリントの過程を見える化する
スプリントは1ヶ月を単位とした一連の開発工程です。1ヶ月毎に前ページで示したパラメータの値を明らかにしてスプリント計画を行います。スプリントを繰り返す度に各パラメータの実測値を得ることができます。これにより傾向を把握することが可能となり、未来の予測精度が向上します。
各パラメータはA地点からB地点まで移動した結果です。次に見える化することは、A地点からB地点へと「どのように移動したのか?」「チーム内で何が起こっているのか?」という点です。これらにより、速度や燃費を改善するためにできることを見付けます。
まず、車を動かす動力源が燃料であるように、チームという目には見えない乗り物を動かすには人が必要です。それゆえに稼働可能な工数(人月)を燃料と対応させました。燃料を効率的に移動距離へと変換するために、燃料が距離を生む仕組みを明らかにしたいと思います。
移動、つまりシステムの実装をするために行うことを見える化します。例えば、図3のように行っていることをアクティビティ図で示します。図3において、システム実装に必要なことは究極的にはプログラミングのみです。要求する人が直接プログラミングをすれば、要求理解は必要なくなります。天才プログラマは設計とプログラミングを同時に行うため、設計とプログラミングを区別する必要がないかもしれません。これらのことは現実にはまれであるため、行うことを区別しています。しかし、行うことが増えれば、その分だけ時間を使うことになります。
図3:システム実装のためのアクティビティ |
速度と燃費を改善するとは、システム実装のために行うことを最小化し、満たせる要求の量を最大化することです。品質向上のための施策は満たせる要求の量を増やすことを考えます。この時、行うことが過剰に増えてしまうと、速度と燃費の観点から言えば改善効果はほとんどないことになります。
事実から見える化する
燃料が距離を生む仕組みを明らかにする1つの方法として、実際に行ったことを記録する方法があります。具体的には、「何を」「いつ」「どれだけの時間をかけて」行ったのか日々記録します。上司からの指示として、何に何時間使ったのか報告するように言われたことがある方もいるかもしれません。
事実を記録する方法は、行ったことを客観的に把握できるため、思い込みによる影響を減らすことができます。人の時間感覚は集中度合いなどによって変化します。このため、時間が多く使われていると感じていることが、実は思った程には時間を使っていない場合があります。事実を記録することでこういった影響を排除することができ、思ってもいなかった発見をする場合があります。
この方法を用いる場合には記録する内容を決める必要があります。事実を全て記録することはできません。例えば、ビデオ撮影のような手段により事実を漏らさずに記録することを考えたとします。この場合は、記録した情報を参照する時間が多く必要になります。そのため、記録する内容を絞り込むことになります。しかし、記録内容を絞ることで要点を見落とすことになるかもしれません。ここに1つのジレンマがあります。
記録した内容を参照する場合にも注意が必要です。例えば、行ったことと費やした時間を表形式で一覧するとします。しかし、情報量が増えるに従って傾向を掴むことが難しくなります。そこで、情報を加工して、視覚的に傾向を掴めるようにします。加工の仕方によって情報の見え方が変わってきます。ここに罠があり、加工の仕方によっては事実を記録したメリットが得られなくなってしまいます(図4)。
図4:加工により見え方が変わる(クリックで拡大) |
記録という行為自体が本来すべき仕事の集中力を削ぎ、仕事の妨げとなることがある点にも注意が必要です。記録をさり気なくできるような仕掛けが大事になります。