});本連載では筆者がかかわった実際の開発プロジェクトを詳細に分析、検討し、そのうえで、ソフトウェア開発プロジェクトを成功に導く要因あるいは失敗に陥る原因などを探っていきます。連載を展開するうえで筆者は「開発プロセスと開発効率には何らかの相関関係がある」という仮説を掲げています。開発プロジェクトをスムーズに進め、最終的に成功へ導くためには、適切な開発プロセスの存在がどうしても必要なのではないか、という立場です。連載中にはさまざまなタイプのプロジェクトが登場しますが、千差万別の事例分析を通じて、この仮説の普遍性を明らかにできればと考えています。ところで、一般的に開発プロジェクトの失敗(あるいは効率が明らかに低かった)原因として以下のようなことが指摘されます。最新の開発プロセスを適用しなかったから?プロジェクトマネージャの能力が低かったから?エンジニアが慣れていない最新の開発技術を適用したから?結局、顧客の要求仕様が固まらなかったから?このような指摘の中で、最も多いのが「人」に失敗の原因がある、とするものです。優秀な技術者を雇うにはそれ相応のコストがかかります。実際の話はそれほど単純なものではありません。(エンジニアのスキルを含めた)多くの要素を検討し、効率アップにつながるものを1つ1つ丁寧に集めて初めて、プロジェクトの効率は上がるものなのだと思います。プロジェクトの成功と失敗を考察する≫成功と失敗≪を考察するプロジェクトの成功と失敗を定義することはとても難しいものです。バグが発生し、契約の瑕疵(かし)条項を顧客が適用したときに失敗プロジェクトとなるのでしょうか?顧客側もソフトウェアを開発する側もともに利益を追求する企業ですから、予算が見積もりの金額を超えた場合には「失敗」といわれることが多いといえます。予算」に集約されてしまいます。「見積もりで吹っかけておけばプロジェクトの成功率は飛躍的に高まる」という乱暴な結論になってしまいます。プロジェクトマネージャの手に案件が委ねられる時点では、上記のような見積もりなど予算に関する要因はすでに決定されている場合がほとんどでしょう。故に、上記のような乱暴な結論を導くと、そもそもプロジェクトの成否はマネージャの手にはないという結論になります。プロジェクトの成否を問う場合には、多くの要素や結果を列挙しなければなりません。列挙した要素の分析結果が、開発会社の組織やチームにフィードバックされて初めて、開発プロジェクトの効率化を追求する要素(ノウハウ)が蓄積されていきます。本連載で扱うプロジェクト案件についても、成功か失敗かという単純で二元的な視点だけではなく、プロジェクトを構成するのは数多くの要素があり、どの要素が効率を落とし、どの要素が効率を上げているかという多面的な視点で検討していこうと思います。Process)適用事例」(注)プロジェクト運営に関する記述を読むと、優秀な技術者やマネージャを確保することがプロジェクト成功の決定的要因として述べられています。Process(UP)については、Javaオブジェクトモデリング第1回「連載を読む前に知っておくべきこと」参照。このプロジェクトはおそらく、優秀な技術者を集めることがプロジェクト成功の確実な要素ではないことを物語る良い例だと考えられます。優秀な人がいないから、ではなく、優秀な人がいたにもかかわらず予算を超過し、開発者に大きなストレスを与えるプロジェクトとなってしまったのです。このプロジェクトは後に第三者から、「新しい技術を使い過ぎて失敗したプロジェクト」だとか「まとめる人に問題があった」と評されました。実際にその現場にいた多くの開発担当者たちは、もっと別の問題を「やりにくさ」として感じていたのです。何が足りなかったのでしょうか。実際に現場で起こったことを引き出してみます。◎=良(問題なし)○=やや良(ほぼ問題なし)△=やや難(やや問題あり)×=難(問題あり)[コメント]作業者のストレスは非常に大きい。増員で乗り切ったため、予算的には大幅な赤字となった。以下、この開発プロジェクトを時系列で検証していきます。広告に関するお問い合わせメールマガジンSpecialインデックスRSSfacebooktwitter利用規約ITmediaはアイティメディア株式会社の登録商標です。