Index: [Article Count Order] [Thread]

Date:  Fri, 7 Apr 2000 10:29:51 +0900
From:  Sugisaku Nakao <sugisaku.nakao@....jp>
Subject:  [XP-jp:00137] XPractices 【 28. Project Variables 】 (案 )
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <38ED39FE189.745ESUGISAKU.NAKAO@jfita02>
In-Reply-To:  <00Apr7.101825jst.115205@....jp>
References:  <00Apr7.101825jst.115205@....jp>
Posted:  Fri, 07 Apr 2000 10:29:34 +0900
X-Mail-Count: 00137

中尾です。

少々長くてすみませんが、誤訳等ありましたら
遠慮なくどんどんご指摘願います。

[4つの変数]
-範囲、品質、資源、時間-

開発者は、しばしばこのようにプロジェクトを与えられます。「これらの4人を使って、
完全なプログラムを3ヶ月で作ってきなさい。」開発者が「何をすればよいのですか?」
と尋ねると莫大なリストを与えられます。

しばしば(あるいはいつも)、開発者は自らを犠牲にして何かを作り出そうとします、し
かし、何かしら不足します。それは納期に間に合わないか、作られたプログラムの品質
が低いかどちらかです。どちらにしても顧客を満足させることは出来ません。

ごくまれに、開発者を加えるたり、取り除たりすることができることがありますが、こ
れは大して足しにはなりません。

理解のあるマネージャは、違った方法をとります。彼らは、タスクと時間を告げ、あな
たに資源を見積らせてくれます。(場合によっては、あなたが求める資源を与えてくれ
ます。) 或いは、資源とタスクをあなたに告げ、あなたに時間を見積らせてくれます。
(場合によっては、あなたが求める時間を与えてくれます。)

ところが、これもうまくいきません。あなたはまた自分を犠牲にしてしまいます。そし
て納期に間に合わないか、そうでなくとも顧客は満足しません。

何がうまくいかないのでしょうか?

ここにあなたが扱わなければならない4つの変数があります。それは資源、時間、品質、
及び、範囲です。

ここにそれらがどのように相互に作用しているのかを示します。
・あなたは残業をして、時間を作ろうとしますが、これは、決してうまく行きません。
 品質は悪化し、結局納期に遅れる原因になります。
・範囲と品質目標に固執しますが、これも、納期に遅れる原因です。
・何を除外するかを注意深く選んで、納期に間に合うようにしますが、
 あなたが除外したものに顧客は満足しません。
・資源の追加を求めますが、手に入れることが出来ません。結局納期に遅れます。
・資源の追加を求め、それが手に入ったとしますが、
 そのオーバーヘッドにあなたは埋め尽くされるでしょう。結局納期に遅れます。

結果は常に同じです。納期通りに使えないプログラムを届けるか、期待通りのプログラ
ムを忘れ去られた頃に納品します。どちらにしても顧客は満足しません。

現実はこうです:時間と資源はおそらく固定されています。品質目標は少し柔軟である
かもしれませんが、ごく限られた限度の中でしか変更できません。変えることができる
唯一のものは、範囲です。成功へ導くためにはどのように範囲を帰ることが出来るので
しょうか?

[まとめ:変数]
4つの視点がソフトウェアプロジェクトでは相互に関係しています。
・範囲-何が行われるべきか。実装されるべき機能。
・品質-正確さとその他の「良い」もののための要件。
・資源-人員、機材等への投資。
・時間-プロジェクトの期間。

どのように変数はお互いに関係しているのでしょうか?もっとも重要関係は上の図にお
いて示されています。範囲(機能)を加えることは、時間(期間)の増加につながります。
沢山あれば時間がかかるということです。品質要件を増加することは、また時間の増加
につながります。良くやろうと思えば時間がかかるということです。利用可能な資源を
増加することは、時折時間を減少させることができます。しかし、それはごくまれです。
逆もまた然りです。

あなたが品質要件を増やしながらも、時間を一定に保つとするならば、資源(まれに可
能です)を加えるか範囲を減らさなければなりません。

同様に時間を減らすことを望むならば、以下の策を施さなければなりません。
・範囲を減らします。
・品質目標を減らします。
・資源を増します。

[誰がこれらの変数を決定しているのでしょうか?]

最後に誰がこれらの変数を決定しているのか見てみましょう:
・範囲は顧客、多少のマネジメントからの影響、そして開発者によって決定されます。
・品質要件は顧客によって決定されます。影響に関しては上と同様です。
・資源は、マネジメントによって決定されます。
#ここでいうマネジメントは経営者と言うよりも、プロジェクト管理者といったレベル
#の人をさしているのかと思い、あえてマネジメントのままにしました。

マネジメントと顧客が範囲、品質、及び資源を決定するのならば、時間は開発プロセス
の力学のみによって完全に決定されます。進捗を測定し、最終の結果を予測することに
よって解ける問題です。
#次の一文は良い訳が思いつかなかったので直訳です。
#つまらないこと、面白くないことと言ったニュアンスでしょうか…。
鼻をつまんで計算するだけです。

[結論]

どのように進捗を測定し、予測するかを学びましょう。目標の決められた短い反復にお
いては、これは簡単に出来ることです。あなたが進捗を予測し、測定し、報告すれば、
顧客とマネジメントは信頼できる予測に基づき、正確なビジネスの決断が出来るでし
ょう。そして、あなたの信頼性は高くなるでしょう。全ての人が何が実際に起こってい
るかを理解しているからです。

結果を分析し、遅延の原因を解析し、プロセスを改善すれば、プロセスを速めることが
出来るのです。効果について仮定してはいけません。再び結果を評価し、実質的な効果
があるとき、予測へのフィードバックしましょう。時間が経つにつれ、より信頼できる
情報を顧客とマネジメントに与えることが可能になります。

最も重要なことは、顧客とマネジメントがプロジェクトの全ての点において直接的な影
響力を持っているということです。それはつまり範囲、品質、資源、及び時間です。他
の変数を調整することによって(例えば)時間を調整し得ます。そして、あなたは結果に
対して自信を持つことができます。

顧客は、範囲を変更することによって、プロジェクトを更にうまくいかせることができ
ます。マネジメントは、十分な資源を与え、時間を浪費する作業からチームを保護する
ことによって、プロジェクトを更にうまくいかせることができます。開発者は、できる
限り効果的に働き(それがこのページ以外のポイントですが)、ある時間の間に達成でき
た品質と範囲に関する正確な情報を報告することによって、プロジェクトを更にうまく
いかせることができます。

「あなたがあなたのプロジェクトをコントロールするのです。変数をコントロールする
 ことによって、あなたの思い通りにしましょう。」

---
オリジナル http://www.xprogramming.com/
Copyright (c) 1999, REJeffries et al. (ronjeffries@....org)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
日本フィッツ(株) 情報技術研究所
 中尾 杉作
e-mail: sugisaku.nakao@....jp
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=