一番難しい仕事は工数見積もり?

先月から関わったプロジェクトは、とてもいい感じでした。
とにかく、帳票を高速に大量印刷できるソフトを作ってくれっていうことだったんです。
めんどくさい部分は、別のレイヤで受け持つってことで、私の部分の仕様はかなり簡単でした。
短納期できついスケジュールではありましたが。

口頭で仕様を聞いて、とにかくガリガリとコードを組みました。

2日でプログラムを組みました。
そして、単体テストの段階になりました。
テストケース数を割り出す為に、ステップ数を計測するツールにかけました。
1万ステップぐらいでした。
自動生成部分とコメントと空白行を抜くと、およそ3千ステップです。

1日あたり1.5kステップですね。
私が一日で組める量の限界は、たぶんこの辺だと思います。

こういうコーディングは、書いてて非常に気持ち良いです。
コード書いてるときは、ほとんど何も考えてません。


逆に、非常にきもちよくないコーディングも経験しました。

違う会社で開発したコードの保守を引き継いでたんですが、その中でも一番仕様的に複雑な画面で不具合が発生しました。
しかもお金に関わるところ。

1週間ぐらいかけて、原因を調べて、たぶんこうだろうなっていう原因はつかめました。
対応方針をチームで打ち合わせましたが、方針が確定できませんでした。
そのうち別案件が忙しくなり、放置プレイに。

お客さんから、放置状態の不具合について、監査法人から指摘があったから、何とかして欲しいと言われ、何とかしないといけない状態に。

再度、延々とコードを調べること1週間。
コードを修正し、テストにも時間を掛けました。

結局、その不具合対応で追加したコードは、たったの1行でした。


前述の、1万ステップのコードを組むよりも、その1行のコードを組むほうが遥かに時間がかかっているわけです。
極端な例ですが、そんな場合もあるわけです。
ステップ数だけでは、適切な工数を見積もるのは、不可能だと思います。

結局は、直感と経験じゃないでしょうか。