プロジェクトの成功に必要なもの

システム開発のプロジェクトには色んな見方があるけれど、その成功率は20~50%くらいと言われているし、体感的にもそんなものかなと思う。

(一応補足すると、これは新規開発の話で、逆に改修や機能追加みたいなプロジェクトなら滅多に失敗しないけどね。)

 

で、プロジェクトを失敗しないためには…って本もたくさん出ているけれど、プロジェクト成功への道のりを突き詰めていくと、結局のところ地道に「失敗のリスクを減らしていく」ってことだと思うんだよね。

つまり、「○○すればプロジェクトは成功する」なんていう、都合のいい方法(銀の弾丸)は存在しない。(そんなものがあれば、とっくに世界中のプロジェクトで採用されてるし…。)

じゃ、どうやって失敗のリスクを減らすか?っていうと、それが色々あって難しい。

正確には、プロジェクトごとに失敗のリスクの種類もそれぞれの大きさも変わってくるから、現実的には「臨機応変に対応する」ってことになってくる。

(例えば、あるプロジェクトは納期が短いってことが最大のリスクだけど、別のプロジェクトでは、納期が短いのもリスクけど、実は要員のスキルが低いのが最大のリスク…なんてことが普通にある。)

 

とはいえ、毎回全てのプロジェクトで臨機応変に対応していくのもしんどいので、僕なりに最も汎用性と効果が高いと思うリスクヘッジは、「いいチームを作る」だと思ってる。

実際のプロジェクトでは、お互いを知らない人達が集まったところからスタートするので、そこからお互いのコミュニケーションの取り方やスキル、人となりを理解しながら、システムを開発するって流れになるんだけど、そこで如何に早くメンバー間の信頼関係を作れるか?が、システム開発のリスクを減らすことにつながると思う。

実際、システム開発のプロジェクトで、どれだけ多くの時間がメンバー間のコミュニケーションミスや意地の張合い、モチベーションの喚起、責任のなすりあい…みたいな非生産的な作業に費やされているかってことを考えたら、最初にいいチーム作りに取組むってのは、決して悪い投資じゃないと思うんだよね。

(そう考えると、理想的には一度作ったいいチームで、そのまま次のプロジェクトに臨むのがいい戦略だと思うんだよね。現実的には難しいけど。)