システム開発の生産性は一定ではない

システムやプログラム開発の工数はあらかじめ見積もるものではあるものの、それを完全に予測することが困難でもあります。実際の開発現場はシステムエンジニアが組み立てた設計図を実現するプログラムの作業になるのですが、設計上予測できなかったバグなどが発生した場合、それを解消するためにすでに書き終えたプログラムを書き換えるなど、一旦終えた工程を元に戻ってやり直す作業が発生します。それでも開発会社は納期を守ろうとするのが当たり前ですので、長時間かかっても修正を行います。

実際は綿密に分担され、それぞれの担当がどれくらいのスピードでプログラムを構築できるのかということが加味された開発計画が組まれるわけではありますが、その予定が過密過ぎたり、到底誰も実現できないようなノルマが課せられたりしているような会社をいわゆるブラック企業と呼ぶこともあります。限られたコストでは限られた人員しか動員できないのはビジネス上当然のことでもありますが、本来であれば上流部分、つまり案件を獲得する営業の部分でかかる工数を極力正確に見積り、しっかりとした環境で開発できる予算を確保する必要があります。

そのため、開発の生産性を把握している現場のシステムエンジニアが見積りに関わることが定石であり、また商談や打ち合わせで提示された機能に対してその場で即座に費用を答えることができないのがほとんどです。システムを発注しようと考えている方は、もし商談の場で即座に金額が決まっていくようであればその信頼性を疑うことが必要な可能性もあります。

開発対象のシステムを細かく機能で分解していき、それぞれ構築にどれくらいかかるのかということを見積るのは容易ではありませんし、実際にアサインする予定の人員配置なども考慮する必要があるので、商談の場で即座にその機能は50万円ですなどとは答えることができないのが現実です。

そのような部分をある程度解消することができているのが、あらかじめ容易されているパッケージ化されたシステムです。導入先に応じてカスタマイズをすることも多いですが、コアとなるモジュールが用意されているため、開発の生産性は完全オリジナルシステムと比較すると大きく違います。開発スピードを短縮するためにはパッケージシステムの導入を検討することがもっとも近道になります。また、すでに存在しているシステムであるため導入費用の面でもオリジナル開発、つまりフルスクラッチで組み上げる場合と比較するとかなり安価になっています。