新しい画面の作成にかかる時間を見積もることは、作業の終了時間を予測するために大切なことです。
ウォーターフォール開発でもアジャイル開発でも、作業をする前には見積もりの時間を取ります。
もちろん、知らない技術を使う場合は見積もるのは難しいです。しかし、慣れてくるとお客様と話をしながらだいたいかかる時間を読めるようになります。
後からこの機能も修正が必要だったと分かって時間が多少増減することはありますが、なんとなくのイメージはつきます。
どうすれば、この見積もりをできるようになるのでしょうか?
必要な作業を、細かく洗い出す
例えば、データベースにある情報を検索して表示する画面を作る場合。
最初にやることは、必要な作業を「自分がやったことがあるレベルまで細かく」書き出すことです。検索処理を呼び出して値を取得する部分の作業を書き出すとすると・・・
検索画面を作ったことがある場合
- SQLを作成
- DBにリクエスト
- 戻り値を画面用に加工
検索画面を作ったことがない場合
- SELECT句の書き方を調べる
- DBにリクエストする方法を調べる
- DBにリクエストしてみる
- 戻り値が正しく返っているかを確認
- 戻り値を画面用に加工
経験の有無によってこのような違いが出てきます。
ここで大切なのは、経験がない人のタスクには、「調べる」「してみる」「確認」という言葉が出てきていることです。
調べることや試すことも、タスクとして書き出す
これが大切です。分かっている人からしてみれば一言で終わる部分が、分からない人にとっては
「調べる」「試す」「確認する」
の3つに分かれていきます。ここを分けなければ、時間の予測はできません。
それぞれに必要な時間を見積もる
実際にやったことのある作業であれば、ある程度具体的に時間を見積もることはできると思います。
やったことがない作業については、以下の手順で見積もりをします。
- 一度調べてみる
- 2つ3つサイトを読み、どうすれば良いのかを知る
- 作業内容としてイメージできれば、見積もりをする
この流れで見積もります。大切なのは2番の手順です。一度ザックリと調べるという手順を見積前に挟むことが大切です。
分からないものは分かりません。それに必要時間を答えろと言われても無理があります。
しかし、詳細レベルまで調べていたら、見積もりに時間がかかってしまいます。その間を取って見積もりができるレベルまで調べておくというところにとどめておいてください。
そして、もう1点大切なことがあります。
バッファの時間を積む
初めての作業には、バッファを積んでおくとよいでしょう。最初の方は見積もった時間の倍の時間でも良いぐらいです。それぐらいの余裕を見ておけば、何となくできたというのではなく正しく理解したという状態にまで技術力を上げてから納品することも出来ます。
せっかく新しい技術に触れたのであれば、しっかりと理解できる時間まで取っておけば次につなげることが出来ます。どんどん成長していけるということです。
また、初めての作業には必ずと言っていいほど「想定外」が発生します。動いていたと思ったら次の日には動かなくなったり、特定の場合だけ動かなかったり・・・。ここでも最初に洗い出した作業にある、「試す」が活きてきます。何度か試してOKであれば完成です。
作業の見積もりは何度やってもなかなかピッタリはいかないものです。しかし、ある程度の精度までは上げることは可能です。毎回実績と見積の差を確認しながら、精度を高めていきましょう。