2010年12月25日土曜日

Win-Win 達成の方法論 〜 Value-Based Software Engineering

ではソフトウェア開発において Win-Win を達成するためには,どうしたらいいでしょうか.それを目指しているのが Value-Based Software Engineering (VBSE) です.VBSE の目指す開発は,ソフトウェア開発に関わる利害関係者(stakeholder)全員が Win-Win になるようにすることです.

VBSE の基本理論は4つあります.ちょうどこの4つの理論がそれぞれ理想的に達成されるのであれば,順番に適用すると Win-Win が達成できると主張しています.
  1. Dependency Theory: どんな利害関係者がいるのかを特定する
  2. Utility Theory: それぞれの利害関係者の価値観を見える化する
  3. Decision Theory: 衝突する利害を調整し,方針を決定する
  4. Control Theory: 開発が決められた方針を守っているか,監視する
利害を調整しながら行わなければならないソフトウェア開発プロジェクトは,たいてい無意識のうちにこのように行っているのではないでしょうか?

これらの理論は主に経済学を背景にしています.分かりやすいのは Utility Theory です.みなさん「需要供給曲線」を知りませんか? これは縦軸に商品の価格,横軸に商品の数量をとったグラフで説明されます(下図).合理的な消費者は,価格が安くなると大量に購入し,価格が高くなると少量しか購入しません(図中の赤実線).合理的な生産者は,価格が高くなると大量に出荷し,価格が安くなると少量しか出荷しません(図中の緑実線).最初は価格が高すぎたり安すぎたりします.高すぎる場合は,消費者が少量しか購入しないのに対し,生産者が大量に出荷します.そうすると商品が余るので買い手がつかず,やむを得ず生産者が価格を下げます.安すぎる場合には逆のことが起こり,消費者が価格が高くても買おうとします.これを繰り返すと次第に均衡価格(図中の青破線)で落ち着きます.これは経済学で最初に習うことです.
これは見方を変えると,図中の赤実線は消費者の,緑実線は生産者の,それぞれ商品の価格と数量に対する価値観を表していると考えられます.経済学的な立場では価値観を一種の関数として表すことができると考えられています.複数の利害関係者の価値観をそれぞれ関数として表現できれば,最適な開発方針を選択することは利害関係者の関数からなる方程式の最適解を求めることを意味します.これが VBSE の基本的な考え方になっています.

価値観の関数化などできるのか?という疑問は当然持つでしょう.これはインタビューを通じて行うことがあります.たとえばアイスクリームの価格と数量の需要曲線を求める場合,消費者Aに「アイスクリームの価格が○○円だったとしたら,何個欲しいですか?」というような質問を投げかけます.それを辛抱強く聞き続けるわけです.統計的な方法もあります.価格が変動したときに,どのくらい需要や供給が変化するかを観察する方法です.

ソフトウェア開発においても,何かの懸案事項に対して「こういう条件だったら採用しますか?しませんか?」と利害関係者に聞いて回ることができるでしょう.あるいは会議の場で,ある条件が提示されたときの利害関係者の反応から推察することもできるでしょう.

このように,VBSE によって,すべての利害関係者が Win-Win になるようになるというわけですが,もちろん実際にはそううまくいきません.VBSE の本を読んでも,そんなに理想的にうまくいくとは限らないだろうという指摘をしたくなることが多々あります.現時点ではあくまで理想論だと私は考えます.

しかし,VBSE が提示しているソフトウェア開発のあり方や,それを実現するためのアイデアの数々は,理想的なソフトウェア開発の姿を示唆しているのではないでしょうか.


2010年12月23日木曜日

インサイドアウトと相乗効果,これからの就職活動や市民活動のあり方〜7つの習慣

今回は7つの習慣―成功には原則があった!の重要な考え方の1つである,インサイドアウトについて考えます.

インサイドアウトは「内から外へ」という意味で,自分の内面にあるものに作用して,外へ波及させるという考え方です.

自分のことを棚に上げて,学校が悪い,会社が悪い,社会が悪い,という人がいます.このような人は,自分の抱えている問題は自分の手に及ばないことのせいにしているので,このままでは決して変わらないです.

それに対しインサイドアウトの考え方は,自分が影響を及ぼして変えられる範囲のことに集中します.具体的には,まず自分自身を変えていくことから始めるのです.この考え方が根底にあるので,7つの習慣の順番は,自分の内面を変えることから始まり,徐々に自分の周りの人に作用することへと続くのです.最初は大して世の中を変えることはできないかもしれませんが,だんだん自分の影響範囲が広がっていき,最終的には大きく世の中を変えていく力にしていくのです.

インサイドアウトを,以前紹介した Win-Win の話と合わせて考えてみます.もしインサイドアウトを考慮せずに Win-Win を目指した場合にはどうなるでしょうか.互いに自分よりも他人に変化を要求しあうことにより,多くの場合 Win-Win に到達することは困難でしょう.交渉の末,なんとか Win-Win を達成したとしても妥協のレベルでしか達成し得ないと考えられます.

相乗効果を狙うとしたら,それぞれの立場を超えてお互いを理解し合うことが必要です.それにはインサイドアウトを実践することが近道です.相手を無理矢理変えさせるより先にまず自分を変えること,具体的にどう変えるのかと言えば,自分の要求ばかり口にするのではなく,まず相手の声に耳を傾け,相手の立場を理解することです.お互いの立場を理解しないことには相乗効果など期待できません.

このようなインサイドアウトの考えに疑問を持った人がいるかもしれません.「そうは言っても,真の原因が社会にあることも考えられるではないか」その例として,私は就職活動のことを連想しました.この未曾有の不況下で就職事情は限りなく悪化しています.その根本的な原因の多くは社会の構造的欠陥にあることが多くの人から指摘されています.このような事例においても,インサイドアウトの考えが正しい,つまり社会を批判するのではなく,まず自分を変えるべきでしょうか.インサイドアウトはそういう,ある意味自虐的な考え方なのでしょうか.

私は,そのような解釈はインサイドアウトの本質を理解していないと考えます.インサイドアウトの教えは,自分が影響を及ぼして変えられる範囲のことに集中することです.したがって,狭義の就職活動だけではなく,微力でも社会に影響を及ぼして変えていくことも含めて自ら率先して活動することがインサイドアウトに基づく就職活動だと思います.

断っておきますが,私がここで言う「社会を変える」活動は,必ずしもいわゆるデモ運動に代表されるような旧来の活動のことを意味しません.なぜならば,旧来のデモ活動は単に一方的な要求を叫ぶのみで相手との建設的な対話を含んでいないため,多くの場合 Win-Win は達成できず,頑張ってせいぜい妥協しか達成できないからです.

もし私が就職活動デモを含む市民活動を企画するとしたら,労使など立場の違う人々を交えたワークショップのような建設的な市民活動を考えるでしょう.この方がはるかに相乗効果を達成できる可能性があります.市民活動は時代時代によって最適なアプローチが異なるはずです.現代の日本の事情にあった市民活動のあり方があると,私は思います.

もちろん,学生さんの立場ではこのような企画をすることは難しいかもしれません.でも,学生には学生なりの社会との関わり方,相乗効果を達成する方法があると私は信じています.就職活動で疲弊している学生さんには,ただただつらいかもしれませんが,目の前の就職活動だけではなく,就職に対する考え方をはじめとする自分の人生のあり方とか,社会との関わりとか,そういう「緊急ではないけれど重要なこと(これは第3の習慣の教えです)」に目を向けることも大切ではないかと思います.

2013/1/13 追記:
変えられるのにあえて変えないタイプの人もいます。そういう人には私が何を言っても変えないかもしれませんね。でも私は,私が変えられる範囲の人を私が善いと信じる方向に導く活動をするだけです。


2010年12月14日火曜日

「みんなを Happy! にする」の背景〜7つの習慣

9つの価値の学生からの一番人気は「みんなを Happy! にする」です.
今回は「みんなを Happy! にする」の大元である7つの習慣―成功には原則があった!から背景を説明していきましょう.

7つの習慣は次の通りです.

  1. 主体性を発揮する
  2. 目的を持つ 
  3. 重要事項を優先する 
  4. Win-Winを考える
  5. 理解してから理解される 
  6. 相乗効果を発揮する 
  7. 刃を研ぐ 

ここでキーポイントになっているのが,第4の習慣で掲げられている Win-Win の考え方です.「みんなを Happy! にする」ことは,みんなが勝つ(win)ことと同義だと考えています.

7つの習慣では,Win-Win の状態にもレベルがあると言っています.最初のレベルは,いちおう Win-Win ではありながら,みんながそれぞれ「妥協」している状態です.みんなの持つ利害は全ての面において一致するとは限らず,むしろ衝突することがしばしばあります.衝突する利害について,お互いがそれぞれ譲り合って満足することが妥協です.

Win-Win が妥協だと聞いて,ちょっとがっかりした人はいませんか? 大学時代に私が「議論で対立することはある」「そのときにどうするのか?」という疑問を抱いたのに対して,先輩から「お互いに賛同できるところは賛同し,残りは妥協する」という答えを聞いて,やはり同様にがっかりしたのを覚えています.

今にして思えば,当時の私が期待したのは,ヘーゲルの弁証法(Wikipedia)にあたる考え方だったのだと思います.つまり,ある命題Aと,Aに対立する命題Bがあったときに,A,B を統合した命題Cを創造するという考えです.Win-Win はこのような考え方を目指すべきではないか?と思っていたわけです.

実際,7つの習慣では,このようなWin-Winの形を示しています.それが第6の習慣に掲げられている「相乗効果(シナジー: synergy)」です.つまり,それぞれの立場を超えてお互いを理解し合う(第5の習慣に相当)ことで,それまで考えつかなかった,みんなにとって真に Happy! な全体最適解を創造するというレベルです.

「みんなを Happy! にする」という価値では,この2つのレベル(妥協と相乗効果)の違いを念頭に置く必要があります.

この価値を大切に思う人は,ぜひ7つの習慣を手に取って読んでみてください.また近々,この話の続きを書きたいと思います.


2010年12月12日日曜日

Software Testing ManiaX vol.4

話題のソフトウェアテストの同人誌 Software Testing ManiaX vol.4 に記事を書きました.

ManiaX の想定読者は品質保証のスペシャリストなので,普通に品質保証技術そのもので記事を書いても私の技術レベルでは太刀打ちできないだろうと考え,変化球として経営学の観点から品質保証の価値を考察しました.

品質保証技術そのものにしか関心のない人にとっては「耳の痛い」「聞きたくない」「聞いたら後悔する」話かもしれないので,タイトルを「世界一受けたくなかった授業」としました.

大晦日のコミケで頒布します.お問い合わせは Twitter: @ikedon さんまで.