見積もりの精度向上
システム開発の見積もりは、システムエンジニアの頭を悩ませる問題です。実際にプロジェクトが開始されると、見積時の計画通りには進行せず、仕様変更されることになる場合がほとんどなので、最初から完璧な見積もりを出そうとするのではなく、不確定な部分を加味して考えていくようにします。
仕様変更を前提にして見積もる
見積もりは、ひとつのプロジェクトに対してエンジニアの作業時間がどのぐらいかかるかが基準になりますが、当初の段階でわかっている作業に対する所要時間に加えて、その後起こり得る仕様変更などに費やされる不確定な時間数も加えて計算するようにします。見積もりは少なすぎても多すぎても苦しくなるので、ちょうどいい額にしたいところですが、不確定要素の部分は予測するしかないので、確定している要素はなるべく正確に見積もりを出しておくようにしましょう。
競合チームの見積もりを予測する
同じプロジェクトでも、開発チームによって算出される見積もりには大きな差が出ることがあります。その一番の要因はエンジニアの月単価です。単価が高いエンジニアの場合、同じ時間数で見積もりをすればその分だけ高くなります。月単価が10万円違うと総額でかなりの差になるため、競合している会社のエンジニア単価が高ければ自社の見積もりでも勝負できるかもしれませんが、逆に相手の方が安い場合には、見積もりを調整しなければ自社を選んでもらえなくなる可能性があります。
その場合、不確定要素の部分で余分に見積もったところから少し削るなどの工夫が必要になるかもしれません。また、エンジニアの単価が高くても、その分仕事を早くこなすことができるとなると、高単価でも全体の金額を抑えてくる可能性もあるため、完全に予測を立てることは難しいでしょう。そのため、他を気にしつつもあまり振り回され過ぎず、自社のチームでできることを工夫して、安過ぎず高過ぎない見積もりを作成していくようにしましょう。
プログラミング言語の知識が役立つ
システムエンジニアは、プログラミングなどの下流工程に直接加わらない場合がほとんどなので、実装レベルの技術がなくても仕事をすることは可能ですが、見積もりを作成する際にプログラミング言語に関する知識があると、より一層精度の高い見積もりを作成することが可能になります。プログラミングについての理解があると、実際にやろうとしていることがどのような工程で進められていくのかを想像しやすく、変更や問題が生じた時の対処にかかる手間などもある程度予想しやすくなります。システムエンジニアがプログラミング言語にあまり詳しくないという場合、他のエンジニアに相談しながら見積もりを作成しなければならないので、その分大きな時間ロスにもなってしまいます。