見積り物語「相対さんと絶対さん」

このエントリは、GMOペパボエンジニア Advent Calendar 2020 - Adventarの2日目の記事です。1日目はVPoEの@hsbtによるGMO ペパボの技術スタック 2020でした。明日はCTOのあんちぽさんです。

はじめに

むかしむかしあるところに、相対見積りが好きな「相対さん」と、絶対見積りが好きな「絶対さん」がいました。二人は、お手伝いにかかる時間を見積もる遊びが大好きです。今日もおじいちゃんの家の庭にある大きな岩を、河原に捨てに行くお手伝いにかかる時間を見積もって遊んでいました。

爺「今日は、庭で邪魔になっている岩を河原に捨ててきてほしいんじゃ。大きさは見ての通り、小、中、大、特大の4つじゃが、運べる大きさまででいいからね。」

相・絶「はーい!」

絶「見積に影響しそうなのは岩の大きさと、河原までの距離かな。ここから河原までの距離は、ここから家までとだいたい一緒だね。」

絶対見積り編

相「じゃあ、早速かかる時間を見積もってみよう。今日は絶対見積りでいいよ。」

絶「よーし。じゃあまずは岩を持たないで歩いたときの時間を考えてみよう。私はだいたい30分くらいかな。」

相「私は頑張っても40分はかかりそう。絶対さんは歩くのが速いから、いつもおいていかれないように大変なんだよ?」

絶「ごめんごめん。じゃあ岩を持って歩いたらそれぞれどれくらいかかるか考えてみよっか」

相「そうだね。私は"中"の石と同じくらいの岩をもったことあるけど、すごく重くて大変だったんだよね。だから、"中"を河原まで持って歩くのは急いでも60分くらいかかるんじゃないかな。大はどうかなぁ、120分くらいかかるんじゃないかな。"特大"は全然想像できないけど、多分240分くらいかな?小は全然重くなさそうだから、持ってないときと一緒でいいよ。」

絶「私は、"大"くらいの岩を持ったことあるけど、あれを持って歩くとなると、倍以上かかりそう。だから"大"で80分くらいかな。"小"と"中"は難しいけど、歩くスピードとほとんどかわらないんじゃないかなぁ。"小"は30分で、"中"は40分くらいにしよっかな。"特大"は私もわかんないなぁ。あのまま持っていくより砕く道具をもってきて砕いたほうがいいかもね。」

二人は絶対見積りの結果をまとめて、ノートに書きました。

|  | 小 | 中 | 大 |特大|
|相| 40 | 60 |120 |240 |
|絶| 30 | 40 | 80 |??? |

相「あとは、どっちがどれを運ぶかだけど……」

絶「その前ににおなかすいちゃったからおやつにしようよ~」

相「そうだね!運び方はおじいちゃんにも相談して決めよう!おやつ~」

相対見積り編

相「じゃあ、早速かかる時間を見積もってみよう。今日は相対見積でいいかな?」

絶「いいよ!じゃあまずは岩を持たないで歩いたときの時間を考えてみよう。私はだいたい30分くらいかな。」

相「私は頑張っても40分はかかりそう。絶対さんは歩くのが速いから、いつもおいていかれないように大変なんだよ?歩く時間はおいておいて、石の重さを比べてみようか。かかる時間は、石の重さとか大きさに比例するんじゃないかな。」

絶「おっけー。重さを測れるものも、大きさを測れるものもなさそうだから、基準を決めて比較してみようか。」

相「そうだね。じゃあ真ん中の"中"を"2"として、それぞれ岩が"中"の何倍くらいありそうか、相対見積りしてみよう。」

絶「"小"はだいたい半分か、それよりは大きいくらいかな」

相「私もそう思う。"大"は"中"2倍くらいありそう。特大は……わからないけど、5倍くらいありそう?」

絶「うんうん。私もそれくらいだと思ってた。じゃあ相対見積はこれで終わりかな」

二人は相対見積りの結果をまとめて、ノートに書きました。

| 小 | 中 | 大 |特大|
|1.5 |  2 |  4 | 10 |

相「じゃあ、これを時間に換算してみよっか。それぞれ30分と40分を基準にして、掛けてみるとわかるかな。」

絶「その前ににおなかすいちゃったからおやつにしようよ~」

相「そうだね!かかる時間や運び方はおじいちゃんにも相談して決めよう!おやつ~」

感想戦編

さて、2つの見積り方法を物語っぽく紹介してみましたがいかがでしたでしょうか。会社のslackで「相対規模見積りをするときもつい時間から逆算してしまう」という話を聞いたので、その考え方を変えるヒントになればと思い、このエントリを書いています。

前提として、どちらかが絶対的に優れているのではなく、プロダクト(およびプロジェクト)の性質や、チームメンバーのスキルのばらつき具合、不確実性の度合い、結果としてしなければいけないコミットメントの強さ、見積りに掛けられる時間、などなどのトレードオフによって方法を決める必要があるということは述べておきます。

たとえば、以下のような状況を想像してみてください。それによって、どちらの見積りがより役立つかは変わってくるでしょうし、プラスアルファでなにかしたほうがいいケースもあるでしょう。

  1. 絶対さんと相対さんの歩くスピードが一緒だったとしたら?
  2. 二人は、お母さんから急に呼び出されて、どちらかが別のお手伝いに駆り出される経験を何度もしていたら?
  3. 実は、以前にも同じ大きさの石を運んだことがあって、お互いどれくらいかかったか覚えていたとしたら?
  4. 最終的に出した見積りの時間を超えてしまったら、晩ごはん抜きだと言われたら?
  5. 河原までの距離が実はとても短く、徒歩5分くらいだとしたら?

1番目の例は、メンバー間の能力差を無視できるほど同じスキルを持った人が集まっていたら?ということと同じでしょう。2番目は、不確実性が非常に高いことがわかっている、あるいは割り込みが予想されるプロジェクトが想像できます。4番目は、強いコミットを求められるプロジェクトですが、この場合はバッファのとり方も重要になりますね。

最初の物語の(暗黙の)前提を崩したり、前提を新たに加えることで、どちらの方法がよいかも、見積りの結果をどう使うかも変わってくるでしょう。

ポジショントーク

さて、「要はバランスです」みたいな話になってしまいそうなので、最後に私のポジショントークをいれておきます。

自分が関わっている(関わってきた)多くのチームにおいては「相対規模見積り」のメリットが大きいと考えています。私が頭の中に描いているチームの特徴は以下のようなものです。

  • メンバーのスキル差が無視できない。つまり、育成込みのチーム編成になっている。
  • 得意な領域はありつつ、チームの仕事は全員が一定のレベルでこなせるようになることを目指している。つまり、仕事の属人化を防ぎたいと考えている。
  • 仕事のやり方を改善し、より早く、プラスアルファの価値を出せる仕事をすることを目指している。つまり、効率化や自動化をすることにやりがいを感じるメンバーによって編成されていて、かつそれを行うことにインセンティブがある。

こういったチームにおいて、相対規模見積りが有効だと思う理由は以下の通りです。

  • 見積りを個人ではなくチームのものにする
  • 規模を見積り期間を導出することで、実績をもとに妥当なコストで計画を更新し続けることができる
  • パーキンソンの第1法則「仕事の量は、完成のために与えられた時間をすべて満たすまで膨張する」にとらわれる可能性を下げる

私が大切だと思う順に並べました。2番目はツールの問題とも言える部分もあります。優れたプランニングツールがあれば解決するでしょう。3番目は絶対時間見積りをしたらそうなるというわけでもないと思います。

一方で、相対規模見積りをすることで、重要だと思うことや向かっている方向を意識するようなフォースをかけることはできると考えています。

このエントリを読んで、相対規模見積りとそれを使ったプランニングをやってみたい社内のチームがあったらお声掛けください。ないとは思いますが、もし社外の方で話を聞いてみたい人がいましたら、私のtwitterアカウントkenichi.taka@じーめーるどっとこむまでご連絡ください。