Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
今まで慣れ親しんだソフトウェア開発って「学校の夏休みの宿題」みたいだと思いませんか?
夏休みの始めの頃は最終日まで日数があるから、サボっていても気にならないし、「順調に進んでるよ」とか言っちゃえば、本当に進んでいるかどうかなんて親や先生にはチェックされない。
でも、夏休みの終わりの方になると、だんだんヤバイなぁと感じ始める。親もなんとなくヤバそうな雰囲気を感づき始めて、ツッコミが激しくなる。
で、今日で休みが終わりとなると「終わってない〜!!」と慌てふためく。その様を見ながら、「あれほどやんなさいって言ったじゃない!」と怒る親。
休み明け、宿題をやっていないことを先生に告白し、「明日までにやってきます」と結局自分の首を締めるハメに...
これって、お客さんとマネージャと開発者のやりとりのような感じですよね?
ソフトウェア開発に関わっていると、子供の頃からつくづく反省してないんだなぁって気付かされます(^_^u
もっとも、夏休みの宿題は、量が増えることはない分、ソフトウェア開発よりマシなのかも知れませんが...
メタファは、辞書によると、「文字どおりの解釈では似ていない物事について、暗黙的に比較する比喩的表現」だそうです。
つまり、一見何の関係もないけど、”動きや考え方が似ている”ということを例えるときに使うんですね〜。
さきほど「ソフトウェア開発」が「夏休みの宿題」に似ていると言いましたが、これがメタファを使った例です。「ソフトウェア開発」と「夏休みの宿題」、一見関係ないですよね?
でも、冒頭で述べたような共通点が幾つかあります。
ここで重要なことは、あなたも私も共通の体験として、「夏休みの宿題」という過去の体験があるということ。
もし、あなたに「夏休みの宿題」の過去の体験がなければ、最初の例え話はまるで通じないと思いませんか?
ですので、メタファは、相手にも通じる知識や体験であるということがすごーく重要なんです。
一度メタファが通じれば、その後のコミュニケーションはとても素早くなります。相手との間に簡単に共通のイメージができあがります。
例えば、「ソフトウェア開発」を体験したことない人に、「ソフトウェア開発」は「夏休みの宿題」みたいなもんだよと言うだけで、”とっとと始めないとヤバくなる”とか”さっさとやっちゃった方がスッキリする”ということが伝わるでしょう。
もっとも、大抵の方が感じるように”やな感じのもの”という伝わり方しちゃうかも知れませんが(^_^u...
さて、このメタファ、例えるだけでも、コミュニケーションを素早くするために役立つんですが、もう1つすごく役立つ使い方があります。
それは、例えた元から、解決のヒントを得るということ。
「ソフトウェア開発」が「夏休みの宿題」に似ているのであれば、「夏休みの宿題」をうまくこなすコツは、そのまま「ソフトウェア開発」にも応用できるといった使い方です。
これは別の言葉でモデリングと呼ばれます。
「夏休みの宿題」をうまくこなすコツって何でしょう?
- とっとと始める
- 最終日よりも前に終わらせる
- 友達とチェックし合う
- わからないことがあれば、友達や親、先生に早めに教えてもらう
- 人のノートをうまく写す(笑)
これを「ソフトウェア開発」に当てはめるとどうなるか?
- とっとと始める
- リリース日よりも前に終わらせる
- 仲間同士でチェックし合う
- わからないことがあれば、ビジネス側や開発コミュニティに早めに教えてもらう
- 人の作ったプログラムをうまく流用する(笑)
こんな習慣を心がけるだけで、ソフトウェア開発はずいぶんとラクになります。
私は、毎回「最終日にならないと終わらない夏休みの宿題」みたいなソフトウェア開発がイヤになったんで、XPを始めましたが、その結果、今の私の行動パターンは、「夏休みの宿題」を余裕で終わらせる、優等生のそれと同じものになっています(多分...)。
メタファが大体どんなものかはわかりましたか?
実際、メタファをソフトウェア開発で使う場面ですが、こんなところで使います。
- ストーリーを共有するとき
- システムのイメージを共有するとき
- システムのアーキテクチャを共有するとき
- 共通の用語を共有するとき
- 未知の問題や解決方法を探るとき
これらの具体的な例については、入門シリーズが終わった後に始まる実践シリーズで紹介したいと思いますので、お待ち下さいm(_)m
それまで待てないあなたは、XPエクストリーム・プログラミング アドベンチャーのP73の「第5章 アーキテクチャ」およびP83の「第6章 システムメタファ」のあたりを読むと、結構おもしろいと思いますよ。
ウィリアム・C・ウェイク (著), 長瀬 嘉秀 (翻訳), 今野 睦 (翻訳), 飯塚 麻理香 (翻訳), 畑田 成広 (翻訳)
価格: ¥1,890 (税込)
※リンクをクリックするとAmazonで購入できます。
メタファの目的は、「素早いコミュニケーション」と「イメージの共有」にあります。
あなたも楽しい例え話でソフトウェア開発を加速してみませんか?
次回、12/17(金)は「シンプルな設計」についてです。
お楽しみに!
There is no comment.