“完璧な設計”がプロジェクトを失敗に導く!?開発現場の天国と地獄(1)(1/2 ページ)

» 2004年11月09日 12時00分 公開
[佐藤大輔(オープントーン),@IT]

 本連載では筆者がかかわった実際の開発プロジェクトを詳細に分析、検討し、そのうえで、ソフトウェア開発プロジェクトを成功に導く要因あるいは失敗に陥る原因などを探っていきます。連載を展開するうえで筆者は「開発プロセスと開発効率には何らかの相関関係がある」という仮説を掲げています。つまり、開発プロジェクトをスムーズに進め、最終的に成功へ導くためには、適切な開発プロセスの存在がどうしても必要なのではないか、という立場です。連載中にはさまざまなタイプのプロジェクトが登場しますが、千差万別の事例分析を通じて、この仮説の普遍性を明らかにできればと考えています。

 ところで、一般的に開発プロジェクトの失敗(あるいは効率が明らかに低かった)原因として以下のようなことが指摘されます。

  • 最新の開発プロセスを適用しなかったから?
  • プロジェクトマネージャの能力が低かったから?
  • エンジニアが慣れていない最新の開発技術を適用したから?
  • 結局、顧客の要求仕様が固まらなかったから?

 このような指摘の中で、最も多いのが「人」に失敗の原因がある、とするものです。では、優秀な人を集めればプロジェクトの効率は無条件に上がるのでしょうか? 優秀な技術者を雇うにはそれ相応のコストがかかります。例えば、従来よりも人件費が10%アップすれば、プロジェクトの成功率が10%以上上がるといえるのでしょうか? もちろん、実際の話はそれほど単純なものではありません。(エンジニアのスキルを含めた)多くの要素を検討し、効率アップにつながるものを1つ1つ丁寧に集めて初めて、プロジェクトの効率は上がるものなのだと思います。

プロジェクトの成功と失敗を考察する≫成功失敗≪を考察する

 プロジェクトの成功と失敗を定義することはとても難しいものです。例えば、予算が超過すれば、そのプロジェクトは即、失敗プロジェクトであるといえるでしょうか? 納期を超過したら、プロジェクトは失敗といえますか? バグが発生し、契約の瑕疵(かし)条項を顧客が適用したときに失敗プロジェクトとなるのでしょうか?

 顧客側もソフトウェアを開発する側もともに利益を追求する企業ですから、予算が見積もりの金額を超えた場合には「失敗」といわれることが多いといえます。しかし、そうなるとプロジェクトの成功/失敗の要因は、「見積もり」や「営業活動」、「顧客の予算」に集約されてしまいます。つまり「見積もりで吹っかけておけばプロジェクトの成功率は飛躍的に高まる」という乱暴な結論になってしまいます。

 おそらく、プロジェクトマネージャの手に案件が委ねられる時点では、上記のような見積もりなど予算に関する要因はすでに決定されている場合がほとんどでしょう。故に、上記のような乱暴な結論を導くと、そもそもプロジェクトの成否はマネージャの手にはないという結論になります。

 やはり、プロジェクトの成否を問う場合には、多くの要素や結果を列挙しなければなりません。列挙した要素の分析結果が、開発会社の組織やチームにフィードバックされて初めて、開発プロジェクトの効率化を追求する要素(ノウハウ)が蓄積されていきます。本連載で扱うプロジェクト案件についても、成功か失敗かという単純で二元的な視点だけではなく、プロジェクトを構成するのは数多くの要素があり、どの要素が効率を落とし、どの要素が効率を上げているかという多面的な視点で検討していこうと思います。

プロジェクト1:「最新プロセス(Unified Process)適用事例」(注)

 プロジェクト運営に関する記述を読むと、優秀な技術者やマネージャを確保することがプロジェクト成功の決定的要因として述べられています。


(注) Unified Process(UP)については、Javaオブジェクトモデリング第1回「連載を読む前に知っておくべきこと」参照。


 このプロジェクトはおそらく、優秀な技術者を集めることがプロジェクト成功の確実な要素ではないことを物語る良い例だと考えられます。すなわち、優秀な人がいないから、ではなく、優秀な人がいたにもかかわらず予算を超過し、開発者に大きなストレスを与えるプロジェクトとなってしまったのです。このプロジェクトは後に第三者から、「新しい技術を使い過ぎて失敗したプロジェクト」だとか「まとめる人に問題があった」と評されました。しかし、実際にその現場にいた多くの開発担当者たちは、もっと別の問題を「やりにくさ」として感じていたのです。

 では何が足りなかったのでしょうか。実際に現場で起こったことを引き出してみます。

[プロジェクト概要]
名称 プロジェクト1「最新プロセス(UP)適用事例」
案件 金融会社の契約管理システム開発
言語など Java、EJB、Struts
開発環境/ツール Eclipse、Together、DB2、WebSphere、Solaris、HttpUnit、JUnit
プロジェクトの規模 6カ月以内、最大50名
結果 カットオーバー成功(納期OK)、大赤字
対予算経費率 150%
顧客満足度
[問題点]
作業者の管理
×
開発プロセス(UP)
×
開発能力
分析設計
チーム全体のコミュニケーション
×
◎=良(問題なし)
○=やや良(ほぼ問題なし)
△=やや難(やや問題あり)
×=難(問題あり)
[コメント]
作業者のストレスは非常に大きい。徹夜と頻繁な休日出勤。平均月間労働時間350時間超。増員で乗り切ったため、予算的には大幅な赤字となった。

 以下、この開発プロジェクトを時系列で検証していきます。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ