ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

営業とコンサルの暴走による開発費高騰をPMBOKで抑えられることは、あまり知られていない

2005-03-21 15:54:10 | 開発ネタ
 前回のブログで、「入力から分析してしまうと、大変なことになる。」と書いたことについて。
 システム開発を、入力や、開発の通論(業界の一般的なシステムの作り方とか)、パッケージソフトの利用から入ると、ものすごいオーバースペックになって、開発費が高騰したり、場合によっては開発できなくなったりしてしまう。

 これは、実例から入ったほうがわかりやすいので、まず、例を挙げます。




 おなじみ??「夕食支援システム」において、
 これで、夕飯を出前してもらうのに、商品マスタが必要だ!というところで、商品マスタから入ると、大変なことになるのですよ!

 だって、お店によって、商品って、全然違うもん!

 マクドナルドに誰かが買いに行く場合
   17クーポン利用1個
   (=てりたまバーガー+チキンフィレオ+チキンマックナゲット+ドリンクM2個)
      ナゲットは、マスタード
      ドリンクは、ホットコーヒーで砂糖とミルクつき
            とコカコーラ

 それと、石焼いもの屋台
   Aさんは、やきいも小3個
   Bさんは、500グラム
   Cさんは、やきいも1000円分
 (どうも、焼き芋やさんって、グラムでも、個数でも金額でもかえるみたい。。。経験値より)

 それと吉野家の豚ドン、大もりつゆだくで。

っていうのを、マスターにしろ!っていわれたらどーする(^^;)

 1つのお店、一つの商品でも、単位が違うし(石焼き芋のケース)、セットだとしても、いろんなバラエティがあるし、クーポンもある、さらに、吉野家の豚ドンにいちゃっては、マスターにはのってない注文もできちゃう(つゆだくとか)。

 で、このマスター設計から入ると、暗礁にのっちゃうんですよ。




 実は、これ、出力から考えると、かんたんです。

 実は、この商品マスターって、DBにいれなくってもいいんです。
 最終的には、発注表をみて、発注ができれば、
 商品マスタは、なくったって、いいんです。

 つまりですね、ショッピングカートで、商品マスタDBを持たない形式っていうのがありますが、
あれと同じように、発注時に、発注用の商品名と数量、金額を受け取り、それをDBに入れるようにします。
 ユーザーは(Webかなんかで)商品を選択していって、発注ボタンを押すと、発注用の商品名をjavascriptで作るようにします。
 そうすると、各お店ごとにWebページをつくって、夕食の商品と数量が選択できるようにして、発注するとき、発注用の商品名と数量、金額を受け取るようにすればいいのです(そのインターフェースは共通化する)
 うーん、わかりにくいけど、わかったかな。

 用は、どんな商品でもかまわなくって、商品マスタを持たないかたちのショッピングモールのCGIを利用すればできるってことなんだけど。




 でも、入力から入って、商品マスタを作ろうとすると、まあ、この共通の商品マスタっていうのはできないし、通論から入ると、この手のWebサイトのマスタは、全部RDBに入れて作るので、かなり複雑なDB構造になってしまう。

 でも、結果から考えると、これって、フリーソフトの(DBを持たない形の)ショッピングモールのCGIと同じ作りとわかる。
 さらに、もし、そのフリーソフトのCGIを利用するとなれば、すぐに取り組めて、開発費は、ただ(は極論だけど、フリーソフト利用だから、相当金額は低い)はずだ!




 営業さんとか、コンサルの場合、こういうシステムは、こういうソリューションという通論を持っていて(たとえば、CRMなら、当社のなんとかパッケージ、ERPなら当社のERPソリューション)、それを売りつけようとするわけよ。
 そうすると、そんなのいらなくても(オーバースペックになっても)それ(=自社の売り物商品)にあわせるから、開発費は高騰したりするのね。

 また、コンサルを頼む場合、お客さんの出力に合わせるというより、知識を売り物にして、「これは、こうあるべき」論で考えることが多い。そうすると、入力のマスタから「こうあるべき」で定義しちゃうのね。

 たとえば、商品マスタは、こういう機能をもつべきとかね。。。
 そうすると、(今回の夕食支援システムのように)出力から考えたら、商品マスタなんて、どうでもいいような場合でも、りっぱなものを作ろうとして、結局、開発費高騰なんてことになりかねない。




 じつは、こういう事態を避けるため、PMBOKでは、スコープ計画で、「成果物」を定義し、スコープ定義で、「成果物を実現する」方法を考える。
 たとえば、さっきの夕飯支援システムなら、成果物の毎日の発注表を作るため、それを実現する方法ということで、フリーソフトのCGI利用でもOKなわけ。

 でも、ふつう、この成果物って、そこまで考えないで、「成果物は、バイナリとドキュメントでドキュメントは要求仕様書と、画面設計書とファイル設計書」などという形式だけしか考えないので、あんまり役にたたず、こういう開発時高騰をまねくわけよ。

 だから、PMBOKのスコープ計画とスコープ定義をまじめに捉えて、ここで成果物を出力するものまで規定できれば、開発は楽になるし、ユーザーも開発費は低減できる(が、実は、これをちゃんとやることは、無理。そのことは今後書いていくが、その方向にむかって、努力することは可能だ)。




 いいかえると、(うるぐすディスカバリー風にいうと) 営業とコンサルの暴走による開発費高騰は、PMBOKのスコープ計画で、成果物を具体的に定義して、それに基づいて入力を考え、スコープ計画をたてれば抑えられることは、あまり知られていない。
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« UMLの問題に対する解決策... | トップ | 開発論から考えると、成功哲... »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事