ChanduのSE雑記

SEとして業務をする中で、学んだことや気づいたことを書き留めていきます。

SE・プログラマの基本スキル向上 〜 作業時間の見積 〜

f:id:Chandu:20180520120955j:plain

概要

作業をしていく上で、よくいつ終わるのか聞かれると思います。

自分が新人のころは、なんとなく感覚で答えたのちに根拠を上司から聞かれるが、答えられず怒られることが多々ありました。

そんな経験もあり、このようなことが、皆さんに無いように、すごくシンプルだけど、効果のある作業見積方法を紹介していきます

作業は分割できるところまで分割する

 例えば朝の準備にどのくらい時間がかかるか見積とします。初めて朝の準備をする前提としてどのように作業時間を算出したらよいでしょうか。

このような場合、朝の準備 = 15分とか感覚で出してしまうと、実際の作業時間とにブレが出てしまう可能性があります。

より作業見積の精度をあげるには、もっと作業を分割し、分割した作業時間の合計で考えるとよいです。上司に根拠も説明しやすいですし、納得感も出ると思います。

f:id:Chandu:20180520110333j:plain

項目数が多い作業は項目数をもとに作業時間を出す

 テストをする場合、項目数が多くどのくらい時間がかかるかよくわからなくなることがありませんか。

項目数が多い場合、項目数が多ければ多いほど作業に時間がかかると思います。そのため、1項目あたりの作業時間を見積もることができれば、全体の作業時間を出すことができるはずです。

例えば検査項目が100項目、1項目あたり5分かかるのであれば、

100項目 × 5分 = 500分

というように500分と作業時間を出すことができます。

1項目あたりの時間が少しでもずれると、作業時間の見積精度が落ちてしまうので、一度実際に数項目作業してみて、その平均値を用いるなどするとより精度を上げることができると思います。

難易度を考慮して作業時間を出す

 単純に項目数を使って作業時間の見積をすると、作業見積精度が悪くなるケースがあります。

例えば、以下のように実施するテストが全部で3機能あった場合に、A機能のテストを少しやってみて、その時間を他のテスト項目にも掛け合わせて作業見積を出したが、実際テストをしてみると、B機能のテストが難しく作業見積と比べて多くの時間がかかってしまうケースです。

f:id:Chandu:20180520112944j:plain

この例だと実際にかかった時間と比べて、見積時間が半分以下となってしまっています。

このようなことが無いようにするためには、あらかじめテスト仕様書を確認し、機能ごとに1項目あたりの重みが違うところがないかを確認し、違いがありそうであれば、分類わけしそれぞれ見積を行う必要があります。 

前例を使う

 作業時間の見積は常日頃行う作業ですが、毎回同じように見積もっていては見積に時間がかかってしまいます。作業見積の精度を上げるためにも、前回行った作業の実績時間を使って、見積を行えると見積時間の短縮と精度を上げることができるケースがあります。

例えば、コーディングで前回100ステップ作るのに、5時間(1時間あたり20ステップ)かかったのであれば、今回は60ステップなので、3時間でかかるなど、簡単に出すことができます。

このように前例は大きな武器になりますが、これをするためには、以前の作業と作業時間を次の見積に使えるように蓄えていく必要があります。

そのために、コーディングの場合だと、"どのような言語で開発したか"、"何ステップ開発したか"、"難易度"等を自身の生産性として、メモしていく必要があります。

まとめ

最後にまとめを記載します。

  • 作業は分割できるところまで分割する
  • 項目数が多い作業は項目数をもとに作業時間を出す
  • 難易度を考慮して作業時間を出す
  • 前例を使う

 

SEの基本

SEの基本

 
ストーリーで考える「見積り」の勘所 (開発の現場セレクション)

ストーリーで考える「見積り」の勘所 (開発の現場セレクション)

 
本当に使える見積もり技術 改訂第3版

本当に使える見積もり技術 改訂第3版