Yuichi Murata's Engineering Blog

グローバル・エンジニアリング・チームをつくる

記事紹介: なぜエンジニアは時間を見積もれないのか

このお仕事をしていて難しいと感じることの一つはスケジュールバッファをどう説明するかである。納期のプレッシャーが強い職場にいると、色々な理由でバッファを削られてしまったり、そもそも見積にバッファが組み込まれていなかったりする。

どの程度バッファを積んでどう説明するかも難しい課題である。自分の場合は、まつもとゆきひろ氏が、経験上初期に出した見積もりの3倍で最終見積もりをすると平均的に予定通りに着地すると言っていたの学生の時の講演で聞いて、それを拠り所にしていた。実際それぐらいでいいと思っているクチなのだが、じゃあその根拠はと言われると説明に困る。

以下の記事は、今まで経験的に理解していたバッファの積み方に数学的裏付けを与えてくれる。

記事の後半にあるグラフを見てみると分かるのだが、要するに見積もりとその精度は完全な正規分布ではなくて正の歪度がついていると言うことだ。そして、グラフをみると分かるように人間の直観的には中央値に着地しそうに見えてしまうのだが、まじめに平均値を計算すると右に (つまり遅延方向に) ズレる。

クラウゼビッツは戦争論で言う。

戦争においては、机上の計画ではとうてい考えられないような無数の小さな事情のために、一切が最初の目算を下り、所定の目標のずっと手前までしか達しないのが通例である。

戦争と同じく不確実の高いソフトウェア開発の見積もり分布が歪むのは同じ理由による。バッファを積むことは感覚的な悲観論ではなくて、最も確実な見積もりをするための、プロフェッショナルとしての責務である。

そしてその見積もりを説明するにあたって数学は強力な武器である。