このプランは必ずや御社のITビジネスに多大なる成功をもたらすベストソリューションとなることをお約束いたします。
この記事は第198回今週のオススメ記事に選ばれました!(2012年4月3日) よりニコニコできるような記事に編集していきましょう。 |
概要
「顧客が本当に必要だったもの」とは、ITビジネスにおける多難なシステム開発プロジェクトの姿を風刺した絵に登場する、オチの部分のフレーズ。顧客が期待した通りのシステムとして完成しなかった原因は、開発側の勝手な思い込みや都合の押し付けだと思いきや、そもそも最初に顧客が説明した要件からしてズレていた、というオチ。
つまり、顧客自身にも自分が必要とするものが分かっていなかったということ。(さらに踏み込んで言えば、開発者側もそのことに気付けず指摘できなかったということ。)
以下のような場面に分けられており、ブランコが設置された木のイラストが(IT業界向けとしては)オリジナルだが、絵を差し替えてIT以外のシーンでも使われている。ブランコの形態はソフトウェア・システムの構造・機能・使い勝手・規模などを比喩したものである。
顧客が説明した要件 |
プロジェクトリーダーの理解 |
アナリストの設計 |
プログラマのコード |
営業の表現、約束 |
プロジェクトの書類 |
実際の運用 |
顧客への請求金額 |
得られたサポート |
顧客が本当に必要だったもの |
この類の風刺画は他にも様々な業界向けのバリエーションが存在するが、大元をたどると1970年代アメリカの産業界で既に広まっていた有名な風刺画(作者不詳、モノクロの線画でブランコは6種類描かれている)から説明文を改変するなどして生み出されたパロディのようである。
その当時の風刺画をIT以外の業界で引用していた有名な(書籍の)例としては、建築・都市計画についての解説書『The Oregon Experiment 』(1975年・邦題:『オレゴン大学の実験』)がある。後に(本人は意図していなかったが)ソフトウェア業界において「デザインパターン」を生むきっかけを作ったことでも有名な建築家・クリストファー・アレグザンダーの著書のひとつでもある。
解説絵参考リンク
それぞれの絵が意味するところ
これらの絵から読み取るべき意味については、これといった公式で厳密な答えは存在しない。
以下は勝手な解釈のほんの一例。
※他にいい解釈・補足などございましたらしたら掲示板でご教示願います。
- 顧客が説明した要件
- ちょっと機能過剰(?)なブランコの製造依頼。この時点ですでに完成型のピントが合っていない。
どこかで似たようなもの(特にAIといった最先端とされるような何か)を見聞きしたのだろう、素人考えレベルのシステム提案といったところか。運用できるとか何とか、と考えているかもしれない。問題解決を求めている当事者でありシステムを使う立場なのだから、と自信を持って提案しているのかもしれない。もちろん金を払う立場でもあるのでシステム開発を請け負う側もあまり批判的なことは言えない状況が多いかもしれない。
もちろん開発側も金をとって商品を作るプロなので、金を差し出した顧客の意はできるかぎり汲む必要はあるが、それでもこのような説明を至上命題とされたら、どのようなプロでも悩んでしまうだろう。 - 重要なのは、本当に解決すべき問題の本質とその理由が正しく見極められているのか何度も問い直すことである。だれかがいつの間にか提案した「解決策」らしきものに考えなしにいきなり飛びついてはいけない。
- また、ラスト「顧客が本当に必要だったもの」を見ればわかるが、顧客もきちんと自身の要求を相手に理解できるように定義しておかないと、どんなに頭のいい担当がついていたとしても現場に伝わる段階ではこう理解されてしまう可能性がある。きちんと完成品についてビジョンを持ち、それを共有できるように翻訳することが大事なのだ。要求する側の説明が足りないと、この後に示すようにどんどん各部署はその足りない説明にそって自身の仕事をこなし、結果誰にも内容を説明できない完成品を出されてしまうことになる。
-
- プロジェクトリーダーの理解
- 木にぶら下がったブランコが欲しいという顧客の要求はなんとか理解できた。そして顧客の提案にある非現実的な部分は専門家として排除したつもりだが、その結果枝1本では体重を支えきれないと読んだリーダーがたどり着いた解決案。
- ちょっと技術を知る人が側にいればその妥当性を検証できるのだがそういう体制はないようである。
顧客にいちばん近い位置で開発に必要な情報を取り入れ、顧客のためのシステムを提案し、開発チームに完成品のビジョンを共有させる立場(のはず)。ここで既に顧客との意思の疎通に齟齬が発生している。また実際に動くかどうか分からないシステムが構想されているが妥当性を検証する手段を持っていないということなのか、検証している時間がないのか、それでなければ自信過剰というところか。 -
- アナリストの設計
- プロジェクトリーダーの構想のままではブランコが動かないことに気づいたのでブランコがなんとか揺れることができるように改良(?)されているが、支えの棒が脆弱ですぐに崩壊しそうである。
- プロジェクトリーダーの意図はとりあえず反映するが、そもそも当初の見通しが間違っているため顧客の要求と両立させるために不自然な歪んだシステムが設計される。妥当性を検証し上流工程に差し戻してやり直しを要求することは立場として難しいのか、あるいは腕の見せ所と張り切った結果か。
また、無意味に新技術を導入したがる設計者が多いのも問題かもしれない。
- プログラマのコード
- 木の幹にブランコが繋がれている状態。第三者の目にはかなり異様な光景に映るが、「木の幹に、板に通した2本の紐を繋げ」としか説明されなかった薄給のプログラマが形だけ作ってみたもの。
一昔前なら「ステップ数でこれだけの進捗がありました」と報告するような職場での仕事ぶりだろうか、あるいはどの幹に結わえても結局折れるので、仕様を満たそうとするとこうするしかない、という現場の皮肉か。
これがブランコの設置だからまだ見た目分かりやすいが、プログラマの労働の成果であるプログラムの構造や動作を第三者が手早く評価したり欠陥を見抜くのは容易ではない。 設計者の意図は正しくプログラマに伝わっておらず、まともに動かないシステムが生まれゆく状況である。木とブランコが「とりあえず繋がっている」ので、顧客にはとりあえず「間違ってはいない」説明ができるだけの状態。プログラマが顧客の要求を知る術もない。ここでも成果物の妥当性を検証する機会はないようだ。成果は見かけ上増えていくが後々捨てられる部分が大半を占める。
- 営業の表現、約束
- 立派な肘掛け椅子を搭載した無駄に豪華なブランコ。第三者の目にはかなり異様な光景に映るが売り込みに熱心な営業担当者は気にしない。まさに絵に描いた餅である。
本質的でない上に過剰な機能の搭載を売り込む営業。製品はまだできていないんだから何とでも言える。また、顧客の要望が枯れた技術の水平思考で代用実現できる可能性に仮に気づいていても、絶対に営業側から顧客に言い出すことは無い。顧客側から「もっと安く代替できるのでは?」と指摘されても「でもこちらのソファの方がお尻が痛くないですよね。」と誘導していく。なるべく高価で大量に機能を盛り込んだ豪華なプランを、さもお得であるかのように見せかけて契約を取るのが彼らの仕事だからである。顧客が技術的なことを理解できない場合はなおさら有効なのだろうか。 - ところで営業担当者たちは実際の開発現場とどんな交流があるのだろうか? たぶんほとんどない。というよりも、営業本人が技術的なことを全く理解できてない場合も多く、マネジメントの知識すらないこともある。つまり、「こんな凄いことがたったこれだけの工数でできてしまうんです!!」「変更(追加)ですか?任せてください!簡単なことですよ!!」となんの根拠もなく豪語するのだ。競合他社がいる場合、知ってても投げ捨てることすらある。とりあえず取れれば自分の手柄になるのだから後のことは知ったこっちゃない。当然開発現場には「これと同じものをロープ2本と板1枚(の予算)で作れ」と要求する。阿鼻叫喚である。もちろん営業側はさっさと定時に終業してしまう。
- 皮肉なことに開発会社側の人間で彼らが一番「顧客の求めているもの」を理解していて、開発が可能かはさておき最もまともなブランコを提示している。ただしその理解は現場と共有されない。
-
- プロジェクトの書類
- ブランコの開発に関する記録が何もない。ないのだが影や痕跡だけはある…という状態。
振り向けば開発に関するドキュメントの類が残っていない。探しても影のようにつかみどころがないメモや議事録しか残っていない。仕様がコロコロと変わるため記録しても意味がないのかもしれない。しかも顧客から次々とやってくる追加要求を安請け合いして情報量的には膨らんでいるかもしれない。また開発スタッフも、仕様書を丁寧に書いたところで開発成果に直接繋がらない上に上司からもそんな仕事は評価されないため誰も書きたがらないのだろう。後々開発メンバーが交代したりするとシステム保守・改良がやり難くなる一因にもなるはずだが。
仮に設計段階において綿密に仕様が検討されドキュメントがしっかり整備されていたとしても、当初の設計では想定していなかった振る舞いがシステムの動作試験の段階になってから発見されることがある。そうなると、システムは再設計を余儀なくされコードも書き直されていくため、オリジナルの設計書の内容は覆され陳腐化してしまう。そもそも「設計書、仕様書は物ができたあとに、物が動くとおりに書くものである」ということが、ごく普通に稀によくある。 -
- 実際の運用
- ロープ一本だけが枝からぶら下がっている。とりあえず、枝からぶら下がって揺られて遊べる。辛うじて顧客の要望を叶えている状態。あるいは顧客の説明が朝令暮改で、現場にはここまで単純化された要求しか残らなかったのか。
- 当初の設計案をすべて盛り込むには納期に間に合わないと判断され、予定よりも大幅に縮小された機能だけを載せて納期に間に合わせて顧客へ渡った状態。約束されたシステムとは程遠い不完全で使い勝手の悪い状態で顧客は運用を強いられることとなる。顧客の日常業務がこのシステムに依存・維持させるために、システム導入前とは別の手間とコストかかるものにならないか心配である。この時点で、一体何のためにシステム導入を検討していたのかを覚えている人も少なくなっているのではなかろうか。
- 顧客への請求金額
- ジェットコースターらしき遊具。ブランコの設置という顧客の説明(仕様)に対し紐を1本ぶら下げただけなのに、ジェットコースター建造費用レベルの法外な額を請求しようということか。
もしくは、『高速で乱高下する』ジェットコースターの様を請求金額に例えて、「別途料金追加の連続で、当初の見積額からうなぎ登りに上昇」→「運用開始した顧客や世間に実態がバレて叩かれだした途端、運用自体は何も変えてないのに急激に安くなる」という手の平返しを皮肉っているのかもしれない。 - 何にせよ「顧客の要件」「営業の約束」「実際の運用」といったこれまでの要素とは隔絶した額を要求しているのは間違いない。特に「営業の約束」を上回る額を請求しているようにすら見える。
- 得られたサポート
- 切り株だけが存在する。あるいは、ブランコが設置された木が根本から切り倒されてしまった状態。「実際の運用」にあたって顧客からの「ロープに腕だけでぶら下がるのは余りにも辛いので、とりあえずは『腰掛けて』楽になりたい」という要望に、サポート担当者が場当たり的に対処した結果か。
- このように、システムの存在を根幹から台なしにするような不適切なサポートが行われた結果はたまによくある。あるいは、顧客が実際に受けることのできたサポートの質や量・期間がこの程度のショボいものだったということか。もっと最悪の場合、「木(企)画倒れ」「サポートの打ち切り」「システム運用自体の打ち切り・凍結・放置」という事態とも受け取ることができる。
なお、英語的にはRoot(木の根っこ)は、根源等もさす用語だが、書類の山を「ひっくり返す」やら「励まし」やらの用法にも使われる。つまるところ、「自分で何とかして」を暗に指す。
どちらにせよ、やはり「顧客の要件」「営業の約束」「実際の運用」などとは隔絶した対応である。そしてこれに費やした費用は帰ってこないのである。
- 顧客が本当に必要だったもの
- タイヤをぶら下げたブランコ。本物のブランコほどではないが、木にぶら下がって(腕に負担をかけず体重を預けた状態で)揺れて遊ぶという本来の要求を十分に満たす機能を持った遊具。おまけに本物のブランコよりも安上がりな実現方法である。もちろん材料のタイヤも新品である必要はない。顧客がパンダであろうと申し分ないはず。また、ロープは一本に絞っているが、設置位置を検討することで枝への負荷も抑えられるようにした。このあたりは使う層や運用の判断も適切かもしれない。
- 顧客には見えていなかった、もしくはビジョンがあっても説明が足りなかったために遠ざかった理想的製品像。ひょっとしたら社員全員が見えていなかった可能性も大きいが、顧客と会社が話し合って提示すべき到達点。
- それでも現実問題として、タイヤを使ったブランコ型遊具(顧客に必要な機能は十分に盛り込んでいるシステム・最新技術とは言い難いがお値段お手頃)を顧客が、「これで十分、わが社に導入するには最適」ときちんと理解・納得して受け入れるのか?という疑問は残るのであるが。
-
これまでの9項目のうち、すべての提案を平均してもこの解決案にたどり着かない可能性も高い。なので、やはりクライアントも自分の理想像だけを滔々と説くのではなく、きちんと運用思想を提示することが大事なのである。
どうすればよかったのか?
このように、「顧客が本当に必要だったもの」を実現するのはとても難しい。実際、この寓話が示す罠にハマって「失敗を達成」したり、デスマーチに陥るプロジェクトは後を絶たない。
システム開発の本質的な困難さは、関係者の意思疎通(コミュニケーション)にある。必ずしも、開発側の分析力や技術力の不足だけが原因ではないのだ。
では、どうすればよかったのか?
一つの回答は、上記でも言及したように「顧客が本当に必要なもの」をあらかじめしっかりと分析して顧客と合意すると共に、プロジェクト関係者の間でそれを共有すること。正しいゴールが設定され、共有されていれば、全ての関係者がそれに向かって作業すれば良いだけなのである。
しかし、現実には、その「正しいゴール」を見極めるのが最も難題だったりする。特に、予見可能性の低いビジネス分野においては、全関係者が一丸となって「誤ったゴール」に向けて邁進する、という羽目になる可能性は高い。また、過去の開発・運用経験や他者の成功事例の見聞に引きずられて、現在解決すべき独自の問題を(無意識に)それらに無理やり当てはめて解決を図ろうとする恐れもあるだろう。
そのため、もう一つの回答として、近年アジャイル開発と呼ばれる手法が提唱されている。一口に「アジャイル」といっても厳密な定義はないのだが、だいたい、以下のような原則に沿った開発手法の総称だと思ってくれればいい。
- 「顧客が欲しいもの」は、常に変化すると考える。
- 製品を短い周期(数週間~数ヶ月)で繰り返しリリースし、その都度計画を見直す。
- 顧客も、プロジェクトへ積極的に関わるよう努め、リリースした製品を元に開発者とコミュニケーションする。
「顧客が説明した要件」が製品になるまでの期間が長くなるほど、それが「顧客が本当に必要だったもの」とズレていた時の被害も大きくなる。そもそも、「顧客が本当に必要なもの」は、開発が進んで製品が形になってきた段階で初めて分かることも多い。
これを避けるために、機能を一つずつ完成させて短い期間でリリースしていき、その度に顧客からフィードバックを受けて方向修正していく。こうすることで、「顧客が必要としないシステム」を作ってしまうリスクを減らそうというわけだ。
余談だが、ニコニコ動画のようなウェブサービスの開発についても似たような議論があって、トヨタ自動車の「トヨタ生産方式」にインスパイアされた「リーンスタートアップ」という手法が提唱されていたりする。
ニコニコ動画:Zero に置き換えてみると
当記事掲示板>>63参照。
- 顧客が説明した条件:もっとニコニコしやすいサイトにして欲しい。
- プロジェクトリーダーの理解:「NICONICO:ZERO」とかスタイリッシュにすればいいんじゃね?
- アナリストの設計:プレイヤーもスタイリッシュにしてシャレた機能も付けようぜ!
- プログラマのコード:負荷度外視で言われたの全部盛り込んどいた。
見れない低スペックは帰ればいいんじゃね?- 営業の表現:ZEROは原点回帰!みんなニコニコしようぜ!
- プロジェクトの書類:超会議でそれどころじゃない。そのまま運用しとけ。
- 実際の運用:生放送とマイページ以外爆死
- 顧客への請求金額:有料会員限定で先行体験可能です^^
- 得られたサポート:話だけならフィードバックで聞いてやんよ(※但しZeroにしないとアクセス不可)
- 顧客が本当に欲しかったもの:治外法権
ニコニコでは他にもアイマスの9・18事件などのどうしてこうなった、あるいはどうしてこうならなかったという状況を表すタグとして使われることもある。だがこの風刺画の意味する所は、顧客が望まない状況を作った原因は顧客自身にもあるという事であり、単に開発側を非難するタグとしては好ましくないかもしれない。
さらに言えば、本来この風刺画が指している「顧客」とは「発注できる立場の企業や業者」を表しており、商品やサービスを販売する対象である「消費者」は含まれていない。
アニメで例えるなら「製作現場」に於ける顧客とは商品を販売する「業者」であり「視聴者」は顧客に含まれておらず「ファンが本来求めていたもの」といったニュアンスでこの例を使うこと自体が誤用であることは留意するべきである。
関連動画
関連項目
- 187
- 0pt