ITエンジニアをやっていると常にしょうもない例え話が思い浮かんでしまう。
今回は「プロジェクトのスケジュール」と「クラウド上のコンピューティングリソース」の見積もりは似ているのではないかという話だ。
リソース
クラウドで何かしらのアプリケーションを動かす際の利点の一つに、負荷に応じて自動的にリソースを増減させられる点がある。
Webアプリケーションをホスティングしていて、アクセス数が増えたらCPU使用率が高まる。一定のCPU使用率がかかったらリソースを増やす。のような場面はよくあるのではないだろうか。
この際、CPU使用率は100%がそのリソースが処理できる限界だが、スケールアウトするかどうかの設定に100%を指定することはまずないだろう。
~60%程度にしていることが多いのではないだろうか。
使用率が100%になってからリソースを増やしているようでは高まった負荷に対応できないので、それより低い不可であるうちにリソースを増やすように見積もっているわけだ。
スケジュール
負荷100%を前提にして見積もってはいやしないだろうか?
してない? であるならこの話は忘れて欲しい。
想定外の負荷はかかるものなので、スケジュールには一定の冗長性、なんらかのバッファを設けてあってしかるべきだろう。
自分の場合は期間バッファを設定しておくことが多い。
3日作業すれば終わると見積もったタスクが5つあったなら、それらを全部終わらせる予定日は20営業日後位に設定している。15営業日の見積もりに対して数十%程度の期間バッファを置く形。
これはかなり自信を持っている見積もりだけれど、まぁ大体達成できているのでいいかなと思う。チームのメンバーには50%位の期間バッファを設定してくれとお願いしている。その上でプロジェクトを管理している人間はさらに50%程度のバッファは最低限見ておいた方がいいだろう。タスクの消化は見積もりに対して遅れるものなのだ。
何の話だっけか?
似てるのではないか? という発想を切っ掛けに、作業の見積もりの話をしたかったのだろう。