デス・マーチとCMM

(1999/2/14,20 全面見直し&一部項目の追加・訂正)

 『デスマーチ』(E.ヨードン著、松原友夫/山浦恒央訳、トッパン刊)という本が出ています。既に読まれた方も大勢いるのではないでしょうか。この本の副題に「なでソフトウェア・プロジェクトは混乱すのか」とある通り、この本は、現状のソフトウェア開発現場の混乱の状況を分析し、デスマーチに陥らないための幾つかのヒントが紹介されています。

 この本の論点は、最後の7章「常態としてのデスマーチ・プロジェクト」にあります。それは原書の副題が「The Complete Software Developer's Guide to Surviving "Mission Impossible" Projects」となっていることからもうかがい知ることが出来ます。要するにこの本は、これからは市場の要請も厳しくなって「デスマーチ」が「常態化」する。そのような中で生き残るためには、デスマーチにうまく対応する方法を見つけることが条件になる、というのです。ただし、その方法は明快には示されていません。

 我が国においても、多くのソフトウェア開発組織の実態は、その組織の大小を問わず、この本と同じように「デスマーチ」に陥っていると思われます。ニフティのフォーラムやこのホームページの多くの読者から送られてくるメールからも、混乱の淵の中にいる様子が窺えます。

 このような状況の中にいるソフトウェア・エンジニアやプロジェクト・マネージャーがこの本を読んだとき、現状を脱する手立てに気づくよりも、先ずは自分たちと同じような境遇のエンジニアがアメリカにも沢山いることに慰められるでしょう。さらに7章の「常態としての・・・」では、読み方によっては、これからは全てのプロジェクトがデスマーチになることは、ごく普通のことである、とも読むことが出来ます。それはある意味では慰めでもありますが、同時に、避けられないものとして、デスマーチに陥らない方法を探すのを止めてしまう危険も感じます。

 そうでなくても、この本は全般にわたって、デスマーチの原因や、その実態についての記述が圧倒的に多く、対応策の説明が少ないのです。そのため、“うん、その通りだ!”“自分だけではないんだ!”と、そこに書かれている「混乱の姿」に、自分たちと同じ「もの」を感じるものと思われます。この本に書かれている読者の投稿なども、ある意味での親近感を感じるのではないでしょうか。

 もう一つの問題は、そこに書かれている幾つかの対応策自体が、読者、すなわち現実に混乱の中にいる人たちにとっては、手の届かないもの(方法)であることです。実際、「Triage という概念」の導入や、「要求管理の重要性」「ベストプラクティス」の勧め、など、対応策としては悪くはないのですが、現実にデスマーチ.プロジェクトの中にいる人たちにとっては、もっと消化しやすくしないと、とても手に付かないでしょう。

 「デスマーチ」の状態は、偶然に1回だけ陥るのではなく、1度陥ったら、そこから抜けられない性質を持っています。といっても、そんな大げさな仕掛けがあるのではなく、何らかの要因で1つのプロジェクトが遅れることによって、次のプロジェクトの開始時期に重なってしまい、その結果、事前の準備工程などが省かれるため、必然的に次のプロジェクトもデスマーチになるのです。たった一度の失敗が、デスマーチから抜け出せなくなるのです。

 したがって、現実には、デスマーチしか存在しない組織と、デスマーチには縁のない組織に分かれることになります。そして、いつもデスマーチに見舞われている組織のソフトウェア・エンジニアには、この本に書かれているような対応策の切り口では別世界のこととなってしまい、結局は、「上手い方法なんてないんだ」と、自分を慰めるか、諦めさせて、重い足を引きずりながら『混乱の館』に戻ることになります。

 でも、それでは何も解決しません。そこで、このページでは、CMMのレベル1から2への取り組みによってデスマーチを避ける、あるいは緩和できる方法について、私の考える所を述べることにします。

参考)『デスマーチ』−なぜソフトウェア・プロジェクトは混乱すのか

   エドワード・ヨードン=著 松原友夫/山浦恒央=訳

   トッパン 刊、 ISBN4-8101-8982-1


   1. デスマーチの定義について

   2. デスマーチは何故起きるか

   3. 何が問題か?

   3.1 もともと無理なプロジェクトか?

   3.2 経営者のわからずや?

   3.3 見積りミスが原因か?(1999/2/20 訂正)

   3.4 納期が決まっていることが問題か?

   3.5 何をすればいいの?

   3.6 要求の変更に対応していない?

   3.6 要求仕様が書けない?(1999/2/14)

   3.8 リスク管理の不在?

   3.9 設計技術に頼っている?

   3.10 力量の不足?

   4. 常態化する中で(1999/2/14)

   5. デスマーチを防ぐ方法は

   .1 CMMの役割

   .2 要求を出来るかぎり正確に把握する

   .2.1 最初が肝心

   .2.2 概要書では曖昧になる(1999/2/20 訂正)

   .2.3 部分でも取り組む

   5.2.4 残作業の整理でも(1999/2/14)

   .2. 新規と派生の問題

   .3 見積もること

   .3.1 必要な成果物は?

   .3.2 サイズを見積もる

   .3.3 作業の流れを想定する

   .4 現実的な計画を立てること

   .4.1 作業と成果物を一致させる

   .4.2 成果物の目的を明確にする

   5.4.3 簡単でも真剣にスケジュールを立てる(1999/2/14)

   5.5 要求の変更に対応する

   5.5.1 途中からでも

   5.6 冷静な判断を




「Software Process」のメニュー に戻る