失敗する見積もり
見積もりというのは厄介だ。見積もってみたものの失敗して納期が遅れて残業だらけ…そんな経験は多くの人が経験していると思われる。あるいは「出来ました!」という報告がありガントチャートなんかに「済」とか書いてあるものの、蓋を開けてみると「全然出来てないじゃないか!」なんて経験も少なからずあるのでは?
なぜ見積もりは失敗するのか、納期は遅れてしまうのか、その原因は「出来ますか?」や「出来ました!」という言葉の完成度の度合いが人によって異なるからだと考えられる。
「〇〇という機能を✕日までに作れますか?」みたいに聞かれて回答に困ったことはないだろうか?それは一体どれだけの完成度が求められているか分からないからだ。リリース可能な品質のものを提出するのか、とりあえず動くだけのものができればいいのか、その質問だけでは分からない。そしてそれぞれの場合で要する工数は天と地ほど変わってくるのである。
そこで完成度を定量化し具体的に可視化する案を提案したい。なお進捗管理でよく完成度を%で記載させるようなものがあるが、これは完成度の可視化という点では不十分である。そもそも「100%がどういう状態か?」の定義もはっきりしていないのに今の進捗率が何%かなど無意味である。
完成度をレベルで評価
その案は完成度をレベルで表記するものである。0~5まであるので各レベルを説明する。
0…未着手の状態
1…作業中、まだ動くものは何もない
2…ひとまず動くものが出来た状態、バグや未実装の部分は残っている
3…現時点で実装可能なものは完了しているものの関連する別の機能が完成しないと作業が進められない状態、またデザインなどで素材の納品は終わったものの実装担当者が未着手の場合もこれに該当
4…必要な機能はすべて実装が終わり、考えられるバグは修正が終わっており、手元での動作確認も出来ている状態
5…製品の一部として完全に組み込まれ製品全体を通して問題なく動作しており、QAなど第三者による確認も完了し、いつでもリリースできる状態
解説
このレベル評価に照らすと単なる「出来ました」という言葉はレベル2~5まで該当することになり、いかに完成度の範囲が広すぎるか分かるだろう。
注目すべきはレベル3で、ここで進捗が止まっている作業は要注意である。例えば格闘ゲームを開発している場合でバトル結果画面の作成などはバトル部分が完成しないと永遠にレベル3のままである。しかも結果に何を表示するのか、勝敗だけでいいのか、決めた必殺技やコンボ数なども表示するのか、そこをバトル開発班と連携して結果画面移行時にデータを渡す仕組みを作って貰わねば終わらないのである。このように何が原因で作業が進められないのか、或いは相互に影響し合って止まってしまっているのかを見極める必要がある。またデザイナーやクリエイティブアート側にありがちな認識として、素材を納品してそこで仕事は終わり、というものがある。これは大きな過ちだ。納品した段階ではまだレベルは3である。実際のところいざ実装を始めると手戻りや素材の不足は頻繁に発生する。レベル5の段階に至るまで全ての担当者は責任を負うべきである。
まとめ
完成度の認識齟齬は業務の遂行に支障をきたすだけでなく人間関係にも亀裂を生じさせる深刻な問題である。曖昧な「出来ます」「出来ますか」「出来ました」はやめにしてレベルで評価しよう。
「〇〇という機能をレベル2でいいので✕日までに作れますか?」
「外部の人に見せるためレベル4の完成度をお願いできますか?その分納期は調整しますので」
「レベル2なら1週間で出来ますけどレベル5なら半年かかりますね」
こういった会話が浸透すれば開発現場の風通しは少しは良くなるのではと思うところです。