はじめに   

 

この論文は新しい組織とその開発プロセスを形作るのに利用できるパターンのファミリーを紹介する。パターンは、ソフトウエア設計の共同体において新たに出現するテクニックを支援する。そして、パターンは、コンピュータプログラムを理解し作り出す方法としての新たな居場所を見つけるであろう。新しいプログラム構築テクニックは、適切な管理テクニックおよび適切な組織構成によって支援されなければならないという認識が増大している。組織についてのパターンはこれらを実現するための強力な手段となる。

我々は、パターンは、組織の構築と改革に特に適切であると信じている。パターンは、現代の文化人類学の多くの部分の基礎をなし、文化はそれらの相互関係についてのパターンによって定義できる。Christopher Alexander[Alexander]の研究は、人間社会と人の間での相互作用を支援するために、市街化計画とビル建設のアーキテクチャを扱っているが、現代の専門的な組織においては、組織はアーキテクチャに類似した現代的なものであるといえる。組織に関するパターンは、人々の運営における能力に、1次的な効果がある。我々は、Alexanderの研究を支えているビルの物理的なアーキテクチャは、組織に関するパターンと対をなしていると信じる。これらの2つの世界は、MITのThomas Allenの研究において交わっている[Allen]。

パターンの側面を組織の分析に取り込むことは、何も目新しいことはない。この研究での斬新なことといえば、パターンを生成的な方法で使おうとしていることである。すべてのアーキテクチャは、基本的に統制に関係している[Carlin]。ここでは、プロセスを支援するために、組織の中の人々を統制する“間接的”な手段として、アーキテクチャを利用する。パターンはすでに存在している組織を理解するのに役立つだけでなく、新しい組織を作り上げるのにも役に立つ。組織に関するパターンのよい集合は、“間接的”に正しいプロセスを作るのに役立つ。この間接的であるというのは、Alexander流の生成的方式である。実際のところ、組織に関するパターンは、ソフトウエア・アーキテクチャ・パターンへの最も生成的なアプローチであろう。Alexanderは、「アーキテクチャを作ることはできない、通常の人々の行動によって間接的によってのみ作ることができる。それは、花を作ることはできなくて、種からによってのみ作ることができることと同じである。」と述べている。単純なパターンの集まりは、複雑な予想もしないような行動の原因になることがある[Alexander]。永遠の方法(Timeless Way)の原理の多くの場合と同様、これは奇妙にもToa The Chingの行動しない方法(the Way of Non-Action(Yin))を思い起こす。我々は、SwieringaとWierdsmaの組織的な学習モデルである3回ループの思考でも同じようなことを見つける [Swieringa and Wierdsma].

この論文では、研究は推論的なものである。新しい組織を形成する場合のパターンについては、限られた範囲でのみ実際に適用された。それらのパターンの“良さ”とか“悪さ”は、実験によって確かめることは困難である。第1に、組織の良さの測定は、必然的に多次元で複雑である。第2に、パターンの有効性が検証できるよう制限の強い制御変数を用いて大規模な社会的な実験をするのは困難である。第3に、そのような実験は長期間の関与が必要で(何ヶ月あるいは何年も)、多くのソフトウエア組織が、壊れやすく進化し続ける市場から見て、進んで費やしようと思う期間を超えている。

このような理由により、本論分でのパターンはケーススタディと常識をよりどころとしている。我々は、相互作用に関連して組織で繰り返し発生するパターンを調べ、それらのパターンとある“良さ”の観測の関係が繰り返されるパターンに注目し、そして相関関係を分析する。ここで説明されるすべてのパターンにおいて、パターンを説明する論理的根拠に経験的な観察が付け加えられている。このパターンランゲージが高生産性の組織が持つ本質的な特徴を全体的に掴んでいるという主張は、これらのパターンを読んだ、多くの小さくて生産性が高い組織のCEO達によって検証されている[Gabriel]。

本論文のパターンは、パターン活動の中で現れる他の“標準的な”基準に合っている。個々のパターンは、問題あるいは機会として述べられている。個々のパターンは、各パターンの中で説明されている影響する事柄について分析されている。個々のパターンは、明白な何かを行動するよう、我々に指示する。この形式は、Alexanderのパターンの研究にしたがっている。彼の建築学についての本は、現代のソフトウエアパターン活動にとってのモデルの役割をなしている。本論文での組織に関するパターンのいくつかは、Alexanderにさかのぼる。そのような場合には、読者がAlexanderの“A Pattern Language” [Alexander]の中の個別のパターンが識別できるようにするため、[Alexander, パターン番号]という形式で本文の適切な場所に示されている。

本論文のパターンを示すような組織はあるが、最初から作られた新たな組織にこれらのパターンを適用するのは勇気がいる仕事である。これらのパターンによって描かれる理想的な組織は、ソフトウエア開発における最新の技術とは大きく異なる。これらのパターンは、特に生産性の高い特別な組織から導き出されたものである。これらのパターンにしたがった実践は、多くのプロジェクトマネージメントのテキストで見られる実践とはかなり違ったものである。

ランゲージのコンテキスト

この論文では、ソフトウエア開発の分野において、組織を構築しその開発プロセスをガイドするのに使用することが出来るような生成的なパターンについて述べる。ここでの“組織”という言葉は、ある文化のなかで自然に形成される、共通の利益のための共同体のような慣習的な組織のことを意味しているのではない。これらは時々、啓発的な組織と呼ばれる。組織は、通常、ある提供物に対して責任を持つ。その組織の中でその製品を作るための努力はプロジェクトと呼ばれる。組織の中で(必然的にそのプロジェクトの中で)の活動のパターンはプロセスと呼ばれる。組織、プロジェクトおよびプロセスは、お互いに部分的な側面としてとらえることができる。我々は、複数の組織からなる階層構成あるいはネットワークを見つけるかもしれない。もしそうなら、ここでのパターンは、最も内部の組織にうまく適合し、組織構成を包含するようなより大きい組織にはそれほどの効果ではなく適合する(分割統治のパターン参照)。

私は、小さな(“単純な”という意味)プロジェクトよりも、むしろ何万行あるいは何百万行のコードからなるような、野心的で複雑な商業的な開発努力に興味を持っている。そのようなプロジェクトは、通信分野ではよくあり、それらのプロセスや組織を設計するのは挑戦的である。これらの組織は10人から数10人の範囲である。より大きな組織(何百人あるいは何千人)は、このパターンランゲージでのほとんどのパターンの範囲外である。もし大きな組織がより小さな相互作用が少ない組織に分割できるのなら、これらのパターンはそれぞれの部分に適用できる。

このパターンランゲージは、多分、従来タイプの組織よりも若い組織あるいはこれから現れてくる組織に対して、よりうまく適合するであろう。従来タイプの組織は、特に公共サービスや上下水道のような分野では、ほとんどの場合官僚的であるよう運命付けられている。若い組織は、理想家と固く結ばれたグループで始まり、安定したいくつかの成長の過程を経て成長し続ける。役割が現れ、組織が成長するにつれてより洗練されてくる。組織は、サブ組織の集まりという内部構成を示すまで成長することがあるが、それらのサブ組織は再びここでのパターンでの課題になりうる。組織は、メンテナンスモードに入ると、安定した構成をとりながら小さくなっていく。ここでのパターンは、従来からあるような会社組織になるようなことはありそうもない、変化し成長している組織を対象としている。

すべての開発組織は、目的を持っている。この論文は、開発組織に許可証を発行するためのパターンを探求しているのではなく、組織は、産業界あるいは会社の中で、経済的にビジネスの要求に適合するように作られるということを前提としている。ビジネスの実用性についての質問は、ここで扱える範囲を超えている。いかにしてそのようなグループが形成されるべきかというアナロジーは、Alexanderの“Web Shopping”[Alexander 19]と “Household Mix”[Alexander 35]に見ることが出来るであろう。“Site Repair”[Alexander 104]のような総体的なパターンでさえも、高い生産性を持つ組織に適合した会社の姿を見出すためのアナロジーを提供する。

これらのパターンのコンテキストあるいは解決策にはあらわれないような“常識的な”考察がある。文化的なタブーや標準は、これらのパターンの多くを組織の手に届かない範囲にとどまらせるであろう。例えば、役割に合ったその分野での専門知識のパターンは、専門家はその職業市場で手に入れることが可能であるということを仮定している。もし、その分野がまったく新しく発生しようとしているものであれば、専門家はまだいないかもしれない。なじみに深い分野であっても、専門家はそんなにはいないし、風土が彼らを獲得するのに必要な出費を認めないかもしれない。他の例として、パターンランゲージは、目標日から逆算したプロジェクトの基準を避けるように試みている(スケジュールの期間を決めるのパターン参照)。顧客は、しばしば、お互いに合意された間隔で、中間的な基準を見たがる。ところが、中間的な基準は、個々の開発グループが中間的な基準を修正するという風習を度が過ぎるほど煽る。これらの問題はこのパターンランゲージを役に立たないものにしている訳ではなく、あるパターンは、その組織に応じてスキップされることが必要かもしれないということである。これらのパターンのあるものは基盤となるパターンで、他のパターンに比べて大きな影響を与えるであろう。役割に合ったその分野での専門知識組織は場所にしたがうアーキテクチャ設計者もソフトウエア実装に参加すると他のあるものは、基盤となるパターンであろう。

このパターンランゲージが成功するかどうかは、将来の研究や調査を必要とする次のような状況にほとんど間違いなく依存している。製品は、最初にどのくらいうまく定義されているのか? 外部のツールはどのくらい利用できるか? ソースコードの編集・コンパイル・実行のターンアラウンドはどのくらい短くなければならないか? 製品のシステムにおいて、欠陥の密度あるいは欠陥への対応力(フォルトトレランス)に対して、組織はどの程度敏感であるべきか? 我々は、これらのパターンがどのような状況でどの程度組織を成功に導くのか、あるいは導かないのかをより深く研究することも必要である。

ランゲージに影響する事項

このパターンランゲージは、組織に付いてのよく知られた合理的な伝説や実践をコード化しているが、未解決の問題を持つ組織での経験的な研究を通して得られた慣習的ではない洞察も取り込んでいる。このパターンランゲージは、AT&Tのベル研究所での開発プロセスと組織分析における3年間の研究に基づいている。データは、AT&Tの中からだけでなく、コンピュータ関連の他の会社からも集められた。この研究の期間中、我々は、研究の対象となる組織について、大いに図表現を用い、組織、組織の構成および組織のプロセスについての“Gammaパターン”のカタログを作った。これらのGammaパターンの図表現は、ここでコード化した繰返し発生する生成的なパターンの多くの源泉となっている。例えば、QAの参加のパターンは、我々が研究した多くの生産性の高い組織においての、QAの役割とプロセス全体の間の固い結合としてあらわされている。これらの組織についてのオリジナルな図表現は開発者はプロセスを統制するQAの参加のパターンのところで示されている。

このパターンランゲージは、大きな組織(会社レベルの開発風土)の中の一部であるところのシステムを構築する。このパターンランゲージを完璧に実行したとしても成功するという保証はない。このパターンランゲージは、マーケティングや全社レベルの統制の構成とのインタフェースを扱うよう試みているが(例えばファイアーウオールのパターンによって)、そのような組織の残りの部分は十分に能力がなければならない。組織の残りの部分を形成するには、他のパターンが必要となる。そのようなパターンついてのヒントは、Kerth[Kerth]とWhitenack[Whitenack]のパターンランゲージに見つけられる。

このパターンランゲージは、きっと生の素材を利用して構築できるような場合に最も効果を発揮する。これらのパターンは最初から組織を作り上げる場合により効果があるが、その文化が能力を失ってしまう前に、かって持っていた以上の能力を回復させるために、貧血状態にある組織に適用することも可能であろう。これらのパターンを従来からの組織に適用させる場合には、その前に“Site Repair”のパターン[Alexander 104]のいくらかの適用が必要になるであろう。あるパターンは、困難を感じている成熟した組織の問題に最適である(仕事は内向きに流れる分割統治ハブ・スポーク・リムプロトタイプのパターン)。

無名の品質

ある組織は“無名の品質(Quality Without a Name)” [Alexander]を持っている。彼らは、株主に利益を与え、顧客にうまく対応し、継続し条件を満たし支援的な職場を従業員に提供しているので、目的にかなっている。このような成熟レベルに達している組織は、他のすべての面でも優れていると思われる。ここで示されているパターンは、そのような組織を構築することを可能にするのであろうか? これらのパターンは、士気やビジネスの成功を持続させるのに役立つ文化を定義しているが、作業生活や士気の品質に直接的に影響を与えるものではない。これらのパターンは、作業者と仲間、雇用者と被雇用者、あるいは会社と顧客の間の相互の信頼関係のようなキーとなる要素に軽く関与しているだけである。文化の多様性、会社の共同体への関わりあい、あるいは仕事の上での余分な教科課程の活動のような他の要素は、このパターンランゲージの及ぶところではない。重要でないという理由でこれらの要素を省略するのではない。これらの論点は、組織上の心理学や社会学の専門家に従いたい。ここでのパターンの多くは、社会学的な面を強調しており、士気や他の社会的な指標に生成的な効果を持ちそうに見えるが、社会学的な像を完成させるには、このパターンランゲージに他のパターンランゲージを織り込まなければならない。このような側面は、これらのパターンだけでは成功を保証しないという明らかな結論を導くが、さらなる研究のための案内灯の役割を提供してくれる。

訳注:

Alexanderは、“無名の品質(Quality Without a Name)”の概念を、次のように説明している。

「人間が、幸福感にあふれ全身全霊で何かに集中しているとき − いわゆる三昧の境地のとき − には、そこに名付けようのない人生の品質(品質というよりも質あるいはクオリティといった方がいいかもしれない)が実現している。その品質は、人間が自分をフルに発揮して、抑圧や軋轢をまったく感じることなく、絶好調で仕事に臨んでいるときに訪れる。人間の中のその無名の品質、生きる喜びと生への渇望は、世界の中のさまざまなパターンに直接依存している。命あるパターンがこの品質を人間にもたらす。それらのパターンが無名の品質を人間にもたらすのは、それらのパターンの中にその品質があるからである。」

QWAN(Quality Without a Name)に関するAlexanderの研究が、Richard Gabrielの“Patterns of Software: Tales from the Software Community”(Oxford University Press 1998)の中で次のように紹介されている。

「私は、QWANを次のように理解している。まず、経営にとってのその価値は、QWANのあるソフトウエアはメンテナンスと変更がやりやすい、ということである。QWANのあるソフトウエアは水晶のように透明で、コンポーネントの使い方が巧みで、他人が見てもよく分かるトップダウンの構造形式を有し、必要十分なコメントがあり、無意味な・不可解なコメントは皆無で、試験のためのとっかかり的な部分が適切な場所にあり、明快かつ精妙である。人がそのコードを初めて見てさまざまな疑問を抱いても、それらの疑問に対する答えをすべて、コードそのものの中に見つけることができるのである。」

品質に対する投資効果については、次のように述べている。

「さまざまな状況を思い浮かべてみると、QWANが必要な状況とそうでない状況があるように思われる。巨額な予算をつぎ込んだ大きなカスタムアプリケーションの場合には、QWANを積極的に奨励すべきであり、ソフトウエアのあらゆる部分にカスタムコンポーネントを使用する贅沢が許される。しかし時間も予算も限られている日常的なプロジェクトでは、大量の商用製品を利用しなければ、納期をはじめとする顧客の要求を満たせない場合がほとんどである。」

ランゲージの論理的根拠

このパターンランゲージは、Alexanderのパターンランゲージの原理からだけでなく、建築についてのパターンランゲージからも多くのヒントを得ている。パターンランゲージの序文は、Alexanderに見るのと同じ大きさ把握と状況全景バランスを思い起こさせる。組織についての多くのパターンは、AlexanderのCirculation patternsのパターン [Alexander 98]を洗練したものである。

産業界をまたがる安定した情報交換の経路を確立するという考え方は、町において輸送経路網を確立するというAlexanderのパターンに非常に類似している[Alexander 16]。ここでは、我々は、個人や開発グループの間での情報の“輸送”について関心を持っている。我々は、個人よりも抽象度が高い、役割の間での情報に注目している。

表記法

この研究は、AT&Tのベル研究所のPasteurプロセス研究計画で集められたデータの一部によっている。Pasteur計画では、いろんな開発文化をカバーしている、多くの世界中の会社でのソフトウエア開発組織について研究された。Pasteur計画の分析テクニックのある部分は、組織の図表現に基づいている。このパターンランゲージの中の多くは、Pasteur計画の分析の場合とよく似た図表現を持っている。私は、パターンを説明するのに、時々図表現を用いた。

Pasteurの研究では、2つのタイプの図が用いられた。最初の1つは、社会ネットワークダイアグラムである。それは、隣接ダイアグラムとも呼ばれる。それぞれのダイアグラムは、役割と役割の間での情報交換の経路のネットワークとして表される。役割は、緊密な関係は近くに、疎な関係は離れて、というように、相互の関係の強さにしたがって並べられる。中心の役割は、その組織の中で最も活動的になる傾向があり、端に近い人はその組織とは全体的に離れた関係にある。

2種類目の図は、相互作用グリッドダイアグラムである。相互作用グリッドダイアグラムでの軸は、組織の中での役割の範囲をカバーし、組織への全体的な関わり合いが強い順に並べられる。縦座標がpの役割が横座表qの役割に相互作用を持っている場合、(p, q)の位置に作用点を置く。相互作用の強さによって、その作用点の濃淡が決まる。

パターンの本文、特に論理的根拠は、そのパターンの典型となるドキュメントやプロジェクトをしばしば参照している。"QPW"は、1993年のBorlandのQuattroPro for Windowsでの開発とAT&Tベル研究所によって行われたその開発についてのプロセス研究を指している。その研究については、BIC/94の予稿集[Coplien]、Richard Gabrielのコラム[Gabriel]、Dr. Dobb's の雑誌[Coplien]の中でさらに詳しく説明されている。

“ATT1”という記号は、小規模なチーム環境でコンカレント・エンジニアリングを特徴とするAT&T内部での高い生産性を持つプロジェクトを指している。このプロジェクトでの研究によって発見された事項については、まだ発表されていない。

分析は、しばしばThomas Allen の研究を参照している。彼の適切な全貌は、彼の技術情報の流れについての著書に見ることができる[Allen]。

Witold Rybczynskiによる、“The Most Beautiful House in the World”と呼ばれる建築学についての奇妙な本が時々参照されている[Rybczynski]。

Alexanderの引用は、A Pattern Language [Alexander]として、その中のパターン番号を参照する時は、カンマを用いてパターン番号を付記する。

謝辞

Brendan Cain は、本論分でのパターンの元となる初期のパターンの研究に多くの支援をしてくれた。文化人類学者として我々の研究組織で活躍したPeter B?rgiの研究は、このパターンランゲージに大きな影響を与えた。このパターンランゲージは、Indian HillでのGlobal Configurator プロジェクトの初期の段階で形が出来上がり、適用された。そのプロジェクトの多くのメンバーに対し、一緒に働くことができたことを感謝する。AT&TのGlobal Business Communications SystemsのNeil Harrisonとの共同研究は、ここでのパターンの多くを洗練し、検証し、証明するのに役に立った。Richard Gabriel、Desmond DeSouza、Ward Cunningham、Richard HelmおよびRalph Johnsonに、これらのパターンの構造化レビューに参加してくれたことを深く感謝する。Gabrielは、PloPでのレビューも促進してくれた。これらのパターンをレビューしてくれたPloPの多くの人々に深く感謝する。特に、Larry Podmolik、Mary Shaw、Dennis DeBruler、Norm Kerth、Bill Opdyke、Brian Foote、 Bruce Whitenack、Steve Berczuk、Frank BuschmannとRobert Martinに感謝する。Kent Beckは、このドキュメントについてのPloPの指導者であった。AT&TのMary ZajacとJoe Maranzanoは、マネージメントの面で多くの役に立つフィードバックを提供してくれた。 Maryは、段階的な補充見習いのパターンを提案した。多くのコメントやパターンのアイデアが、AT&TのPaul Chisholmから寄せられた。そのうちの最も注目すべきものは雇われ分析者のパターンである。