ホフスタッターの法則と呼ばれる法則があります。
ホフスタッターの法則(ホフスタッターのほうそく、英語: Hofstadter’s law)とは、ダグラス・ホフスタッターが1979年の著書『ゲーデル、エッシャー、バッハ』の中で提唱した自己言及的な格言であり、かなり複雑な作業を完了するためにかかる時間を正確に見積もることができないという、広く経験されている困難さを表現したものである[1][2]。
https://ja.wikipedia.org/wiki/ホフスタッターの法則
要はプログラミングの見積もりには必ずブレがあるため、余裕を持って見積もりを使用という話です。
目次
正確な見積もりのための方法も色々あるが…
見積もりを正確に行うための手法は数多くありますが、多くは細分化することになるのかと思います。
「見積もりを複数回に分ける。」「数時間で片付けられる粒度までタスクを分ける。」「誰かとタスクを分ける。」
細分化は良いことだとは思います。とはいえ、細分化をしてもブレは必ず発生します。
例えば、小説家や漫画家が想像しやすいのではないかと思います。
期間が決められて、良い小説や漫画を書くように言われてできるのかと問われると、難しいのではないでしょうか?
映画でも構想に何年と報道される例を見たりします。
プログラミングも同様で、良いプログラムを書くためには、時間がかかりますし、どれだけ時間がかかるかの見積もりも難しいです。
(動かなくても良いなら早いですけどねw)
じゃあ見積もりはどうするか?
結局どうすれば良いのかということについてですが、特別できることはないと思っています。
見積もりを要求してきた人と仲良くなる
やりたいことはズレないように何度も話を聞く
タスクを細かく分ける
このあたりですかね。結局は見積もりはずれるので、それを理解して貰う必要があり、そこをしっかりと話し合えるかというところになるのかなと思います。
タスクは分けたほうが良いです。作業を行う側としてもイメージがしやすくなるので。
まとめ
プログラミングの正確な見積もりはできないという話を書いてきました。
ただ、その中でも、「バッファをとって話を理解してもらう。」「タスクを細分化する」というところは、試していけるところにはなると思うので、できればトライしてみてください。