VCware Web Pattern Language

"VCware Web Pattern Language"(以下たんに「パターン・ランゲージ」とよぶ)は、VCwareがWEBシステム・WEBサイト・ホームページの製作を行うさいにつねに参照する、最小かつ最大の「行動の指針」です。

VCwareでは、ウォーターフォール開発のような「計画重視の開発手法」では必須だった「要件定義書・要求仕様書」を、あらかじめ作成しません。

私たちが採用するアジャイルソフトウェア開発では、

という「適応的開発手法」を用います。

このとき、ひとつの「反復」の中で、要件定義・設計・コーティング・テスト、などの、ウォーターフォール・モデルが数ヶ月から数年の間に行う全工程を、すべて完結させます。

また、かの有名な「ユーザーは自分の要求を正しく表現できない」問題(後述します)が存在するため、「要件定義」を文書化することは、アジャイルのスピード感に不釣り合いだとも言えます。


6つの原則

1. The principle of organic order.

Planning and construction will be guided by a process which allows the whole to emerge gradually from local acts.

一、有機的秩序の原則

計画や建築はプロセスによって導かれる。全体を、個々の行為から徐々に生成させるような、そうしたプロセスによって。

2. The principle of participation.

All decisions about what to build, and how to build it, will be in the hands of the users.

二、参加の原則

何を作り、それをどのように作るかについての、すべての決定は、ユーザの手中にある。

3. The principle of piecemeal growth.

The construction undertaken in each budgetary period will be weighed overwhelmingly toward small projects.

三、段階的成長の原則

各予算期間で着手される建築は、小さな諸プロジェクトに徹底的に寄与するように考慮される。

4. The principle of patterns.

All design and construction will be guided by a collection of communally adopted planning principles called patterns.

四、パターンの原則

すべてのデザインと建築は、パターンと呼ばれる、共同で採用された計画原則の集合によって導かれる。

5. The principle of diagnosis.

The well being of the whole will be protected by an annual diagnosis which explains, in detail, which spaces are alive and which ones dead, at any given moment in the history of the community.

五、診断の原則

全体の幸福度[健全さ、健康]は、コミュニティの歴史のいかなる任意の時点であれ、どのスペースが生きていてどれが死んでいるのかを詳細に説明する、年次の診断によって守られる。

6. The principle of coordination.

Finally, the slow emergence of organic order in the whole will be assured by a funding process which regulates the stream of individual projects put forward by users.

六、調整の原則

最後に、全体における有機的秩序のゆっくりとした生成は、ユーザたちによって出される個々のプロジェクトの流れを調節する、資金調達の[資金拠出の]プロセスによって、確実なものにされる。


パターン

「パターン・ランゲージ」という概念は、建築家のクリストファー・アレグザンダーによって考案されました。

アレグザンダーの思想・建築の哲学は、建築や都市計画の世界はもちろん(とはいえ1990年にチャールズ皇太子[モダニズム建築を痛烈に批判していた]のアドバイザに就任して以来、マスメディアからは完全に黙殺されるようになりましたが)、ソフトウェア開発の世界に重大な影響を与えました。

有名な例をあげると、Tektronix社の同僚だったウォード・カニンガムとケント・ベックは、オブジェクト指向に関するシンポジウムOOPSLA (Object-Oriented Programming, Systems, Languages, and Applications) の第1回(1986年)で、「オブジェクト指向プログラムのためのダイアグラム」という論文を発表しますが、彼らはふたりとも、アレグザンダーの思想、パターン・ランゲージに関心を持っていました。

ふたりはプログラミングをわかりやすくするための研究を続けていましたが、パターン・ランゲージをコンピュータのシステム設計やプログラミングに取り入れられないかと考え始めます。[PWX:62]

Tektronix社のあるグループが、Smalltalk(アラン・ケイらが開発した、世界初のオブジェクト指向プログラミング言語。ただし「オブジェクト指向」という言葉を使っていないものの、「オブジェクト」概念を用いた最も古いものは、Smalltalkの元となったSimula)で開発しているシステムの最終設計について、ふたりに相談した時、彼らはアレグザンダーの言ったように、利用者に設計をしてもらうことにしました。そのときに用意したパターンはたったの5つでしたが、結果は驚くべきほど素晴らしいものになりました。[前掲:62-64]

ふたりはこの結果を、第2回のOOPSLA 1987に「オブジェクト指向プログラムのためのパターン言語の使用」という論文として投稿し、発表する機会を得ました。現在ソフトウェア開発の世界で「デザイン・パターン」といえば、この論文にさかのぼることが一般的です。

有名な例をあげる、と書いておきながら、カニンガムとベックしか取り上げないのでは片手落ちにすぎるかもしれませんが、とにかくふたりがOOPSLAを舞台に飛躍的な活躍を見せていたまさにその時期をさかいに、ソフトウェア開発における「パターン」への注目が、爆発的に増大することになりました。

個人名・組織名のみ列挙すると:

ソフトウェアの設計に繰り返し現れる構造に注目したエリック・ガンマ。

C++言語特有の繰り返し現れる表現(イディオム)を収集してカタログ化し『C++プログラミングの筋と定石』として出版したジム・コプリエン。

OOPSLAとヨーロッパ版OOPSLAであるECOOP (European Conference on Object-Oriented Programming) が合同開催したOOPSLA/ECOOP 1990で "Toward an Architecture Handbook" という集会を開いたブルース・アンダーソン(この集会にはガンマや、IBMワトソン研究所のリチャード・ヘルムが集まりました)。

同じくアンダーソンは翌年、"Architecture Handbook Workshop" をOOPSLA 1991にて開催します。このワークショップにはカニンガムやベックらが参加し、ベックとペアを組んだラルフ・ジョンソンは、"HotDraw" という、カニンガムとベックがSmalltalkで開発したグラフィカルエディタのためのアプリケーションフレームワークの利用方法についてのパターンを書き上げました。ジョンソンはこのパターンを発展させ、翌年OOPSLA 1992で "Documenting Frameworks using Patterns" という論文として発表しました。

同じくアンダーソンはこの年のOOPSLAでもワークショップを開き、ガンマ、ジョンソン、ヘルム、ジョン・ブリシディースの4人が初めて顔を合わせました。のちに彼らは "Design Patterns: Elements of Reusable Object-Oriented Software" (1995)というとても有名な本を執筆し、「GoF」(Gang of Four)として一躍有名になります。"Design Patterns"は通称「GoF本」で、この本に掲載された23のデザインパターンを「GoFデザインパターン」とよび、アレグザンダーやGoFの4人が誰なのかさえ知らなくとも、「GoFデザインパターン」を覚えさせられるプログラマは多いはずです。[前掲:66-68]

翌1993年、コロラドの山荘で、招待制のワークショップが開かれました。主催者はケント・ベックとグラディ・ブーチ。招待されたのはカニンガム、ジョンソン、コプリエンら5人。このワークショップの参加者がのちに、「Hillside Group」の核となるメンバーになります。このワークショップでは、アレグザンダーのパターン・ランゲージというアイディアを、オブジェクト指向に適用しようと議論しました。

Hillside Groupは翌1994年、第1回PLoP (Pattern Languages of Programs) というカンファレンスを開催します。翌1995年には、PLoP 1994の内容をまとめた論文集 "Pattern Languages of Program Design" を出版しました(これは以後、1996年に2巻、1997年に3巻、1999年に4巻、2006年に5巻と連続して出版されます。邦訳もありますが、1巻から4巻までの抜粋となっています)。[前掲:69-71]