Index: [Article Count Order] [Thread]

Date:  Tue, 8 Oct 2002 22:01:42 +0900
From:  "Katsuya Higuchi" <bugbear@....nu>
Subject:  [XP-jp:03801] Re: 皆様に質問
To:  <extremeprogramming-jp@....jp>
Message-Id:  <001b01c26eca$ecc13790$55c5d53d@....nu>
References:  <iss.baf.3da0f44b.7ec94.1@....com> <iss.8db.3da11a46.25f81.1@....com>
X-Mail-Count: 03801

樋口です。すいません長いです。

----- Original Message -----
From: "HAMAI Kyoichi" <k-hamai@....com>
To: <extremeprogramming-jp@....jp>
Sent: Monday, October 07, 2002 2:23 PM
Subject: [XP-jp:03798] Re: 皆様に質問


> 濱井です。
> 2002/10/07 11:41:08 +0900に私が送ったメールに関する補足です。
>
> >残念ながらこのようなケースはよくあります。なぜならば、見かけ上の
> >中間的な生産量と全体的な生産性には下記の図のような関係があるからです。
> >
> >全体的な生産性|
> >       |   /\
> >       |  /  \
> >       | /    \
> >       |/      \
> >       |
> >       |
> >        ――――――――
> >         中間的な生産量
> >
> >図の右側にいることに気づかず、中間的な生産性を向上させようとして
> >中間的な生産量を増大させれば全体的な生産性は低下します。
>
> XPなどのイテレーション型の開発の利点の一つは、開発量をコントロールして
> 図の頂点付近にもってきやすいことです。
>

いつも思うんだけど、XP の「オンサイト顧客」(いわゆるトップの決断者)が
正しく機能していれば、これはおそらく正しくなりそうだけど、
そうじゃないケースではきっとうまく行かないのだろうなと…

というか、XP に関わらず、「何をすべきか」をちゃんと定義できない人が上にいる
と、
どんな手法を取ろうがプロジェクトはほぼ間違いなく混乱するというか。
(逆に、ちゃんと定義できる人が上にいれば、
手法の違いに関わらず、大体の場合、うまく行くとも言えますが。)
「XP にすれば何でも解決」みたいな論調見ていると、
このあたりがすごーくやばげに見えます。

XP って成功例ばかり聞こえてくるので、
XP の失敗例ってのがちょっと欲しいなぁと思う今日この頃です。
でも、失敗って公にしないから伝わってこないんですよねぇ…

さて、XP で生産性に関して確かに有利だと思えるのは、
あちこちで何度も書かれてますけど、

「少なくとも決断者(顧客)が重要度が高いと思ったものから生産される。
よって、生産物の価値に関する責任は間違いなく決断者にある。
開発者は価値決定の間違いからは解放される。」
(開発者の勝手な思い込みで判断ミスしがちですからねぇ。)

「生産可能な量しか生産しない。(というかできない。)
よって、開発者は過剰要求(無理難題)、過剰労働から解放される。
またこれにより、『約束したものは作れる』という保証がしやすくなる。」
(できない約束をしがちなんですよねぇ。
精神論と体力勝負で「がんばればできる」では…)

「生産されたものは(一部ではあれ)常に完成品である。
プロジェクトが途中で止まっても、
重要度が高いものから生産されているので、
顧客満足度は常に最高のはずである。
事実上成果物なし(どれも未完成)という最悪の事態も避けられる。」
(これは、システム規模によっては
やっぱり途中の段階では、とても完成とは呼べない場合もありうる気はする。
そのあたりはサブシステムの分割が上手かどうかというのもあるのだけど。)

という所であろうと思います。

で、改めて生産性ということを考えてみると、
いわゆる需要に対する ABC グラフ(重要なものから順)を描いてみると、

需要の積算
|               ***
|           ***
|         *
|       *
|     *
|   *
|
| *
|   A   B     C
+------------ 需要の列挙
 abcdefg....

こんな感じで並ぶわけですが、
XP はこの需要を重要なものから順に(つまり左から)満たしていった時の過程
と見ることができるかと思います。
となると、
{生産性} = d{顧客満足度(需要が満たされた量)} / d{時間}  という
微分方程式と考えればいいでしょうか。

となると、XP ではこのグラフがちょうどひっくり返った状態になって、

生産性
|*
|  *
|    **
|       **
|          ****
|                ***
+------------ 時間

という本来の理想的な状態になっていくと思われます。
つまり、一見理不尽ですが、時間的には最初に生産性のピークがあって
その後、生産性はどんどん低下します。;-)
(ここにはブートストラップに関わる生産性の低下は含んでないので注意。)
同じだけの労働をしていても、
顧客満足度がほとんど上がらなくなったらそこが終点。

回りくどいけど、結局のところ、
「やりたいこと全部に手をつける。で、虻蜂取らずになる。」
のが典型的なアンチパターンで、
「重要な所から手をつけて、重要でないところは余力のあるところまでで抑える。」
のが理想的
とまぁそんだけの事です。

で、ではその重要さの判定を誰がどうするかなんですが…はて…
と、今日もまったく重要とは思えない仕事をしながら思うのでした。