見出し画像

#54 お金を払うだけではシステム開発は失敗する(2024/03/17)

こんにちは。旅行系Webエンジニアのこへいです。
木下斉さんがnoteでカネなんてものは経営資源の基本「ヒト・モノ・カネ・情報」のうちの1つに過ぎない。カネを払っただけでは何も成し遂げられない。と仰っており、システム開発でも全く同じだなと思いました。

受託のシステム開発において「カネ(費用)」は「人の稼働時間」として考えられることが一般的です。

開発に何人・何か月の稼働が必要かで費用を算出するため「人月」という単位が使われます。また、何人の部分はエンジニア一人・1か月の稼働で〇〇万円という単価で計算されるため、経営資源の「カネ」は「人の稼働時間」で考えられます。

開発の規模が何人月かで計られるため、システム開発の実情をわかっていない人ほど、人月に合わせて頭数を揃えれば良いと認識してしまう問題があります。

人月の神話

というタイトルのソフトウェア工学の聖書があります。
(誰もがこの本を読んでいるが、誰もこの本で述べていることを実践しないから聖書と呼ばれている)

この本では「人(労働人数)と月(投下時間)が交換可能である」という、ソフトウェア開発の世界では「常識」とも言うべき考え方が、「単なる神話に過ぎない」と述べています。

前述の人月での見積もりに対して、顧客の希望するスケジュールから逆算して開発期間を設定し、必要な人数を揃えてプロジェクトをスタートさせるという愚行を犯すのです。

人月計算の例:
 10人月・2か月 → 5人
 10人月・5か月 → 2人

そしてプロジェクトが遅れ始めると、遅れを取り戻すために人を追加する。しかし、要員追加によってさらにプロジェクトは遅れます。

ソフトウェア開発に限らず、人と協調する仕事では人数が増えれば当然コミュニケーションコストが上がります。適切な工程を踏まなければ手戻りが発生するため、人が沢山いても待ちが発生し作業が進まないということもあります。

人(労働人数)と月(投下時間)が交換可能であり、人数を揃えればプロジェクトが成功するというのは幻想なのです。

〇ヒト・モノ・カネ・情報を揃えよ

システム開発のプロジェクトを成功させるにも、カネは重要な要素の一つでしかありません。ヒト・モノ・カネ・情報をすべてを揃える必要があります。

ヒト:システム開発の経験が豊富で開発するシステムが使われる現場業務に精通した人など
モノ:開発インフラ、プロジェクト管理ツールなど
カネ:適切な人数のエンジニア、PMなど
情報:業界知識、顧客内部の情報など

プロジェクトを推進するためには、現場監督であるプロジェクトマネージャー、開発チームをリードするエンジニアリーダー、顧客の内部事情に精通した営業担当(カスタマーサクセス)など、特殊な役割を担うヒト。後からプロジェクトがひっくり返されないように顧客の内部事情に精通することや、顧客がいちいち言葉にしないことをくみ取り先回り対応できるような業界知識などは特に重要です。

〇ヒトと情報が特に重要

システム開発の現場ではオープンソースのライブラリやツールが充実し、AWSなどクラウド上のインフラが活用できるため、モノは比較的簡単にそろえることが可能になっています。

一方で、ヒトと情報の確保がプロジェクト成功には特に重要です。
ミドル以上の経験のあるエンジニアやPMは取り合いになっており、どこのシステム会社でも不足しています。業界や特定顧客の業務への解像度が高い情報も一朝一夕では収集することは出来ません。人生をかけて作ったコネクションをベースに情報を集めている方の存在が不可欠だったりもします。


ヒト・モノ・カネ・情報のうちカネだけ用意してもシステム開発も失敗します。

木下さんのカネなんてものは経営資源の一部にしか過ぎないことを肝に銘じていくことが、全てにおいても大切です。という言葉がそのまま当てはまるという話でした。

最後までお読みいただきありがとうございました。


この記事が気に入ったらサポートをしてみませんか?