今回は今年の1月からKRAYが取り組んでいるパターン・ランゲージの活用についてご紹介します。
パターン・ランゲージとは、暗黙知を表現・共有・活用する方法の一つで、特定の状況で繰り返し現れる問題とその解決方法等(パターンと呼ぶ)を集めたものです。個々のパターンには名前があり、コンテキストや問題、背景となる因果関係、解決方法、結果、例などから構成されます。パターン・ランゲージを使うと、自分の置かれた状況の問題を識別したり、共に作業する人とのコミュニケーションを円滑にしたり、組織に蓄積されたノウハウを未来の製品や活動のデザインに応用したりできます。つまり1人の経験を1人だけのものにせず、周りの人と共有し、チームや組織で将来の活動に役立てられるようになるのです。
パターン・ランゲージ
パターン・ランゲージは、建築家クリストファー・アレグザンダーの建築理論に起源を持ちます(*1)。アレグザンダーは、歴史を経て磨かれた、いきいきとして美しく調和のとれた街並みが近代化によって失われていくのを憂慮していました。
(Picture by Lies Thru a Lens )
そのような街や建物の持つ質を、アレグザンダーはQuality Without A Name(QWAN、無名の質、名付けえぬ質)と呼びました。QWANは近代的な建築計画で再現することはおろか、単純な言葉で表現することさえできません。そこで、QWANを持つ街や建物の特長を抽出して名前を付け、それぞれの現れるコンテキストや、その効果を書いてまとめました。これがパタン・ランゲージの由来です。
アレグザンダーはその建築理念を『A Pattern Language』を初めとした多くの著書に記しています。
『A Pattern Language』出版の数年後、その考え方はソフトウェア界の2人の偉人の興味を引くことになりました。ウォード・カニンガムとケント・ベックです。パタン・ランゲージとの出会いをカニンガム自身が語っているビデオがあります。
ソフトウェア・パターンが生まれたとき | Generative Films
2人はまずSmalltalkで開発していたGUIアプリケーションの設計にパタン・ランゲージを応用し、効果があることを発見しました。彼らはその発見を1987年にオブジェクト指向プログラミングのカンファレンスであるOOPSLAで発表します。そこには次のように書かれていました。
我々は、これらのパターンをある特別な目的のためのプログラミング環境用の仕様書を書いているアプリケーション・スペシャリスト・チームに提供した。Smalltalkのインタフェース・メカニズム(MVCなど)の詳しい理解がなくとも、1日ほどプラクティスを行っただけで、彼らはよくできたインタフェースを記述することができた。
(翻訳 – オブジェクト指向プログラムのためのパターン言語の使用より)
その後も2人はパタン・ランゲージの応用に取り組み続け、周囲のエンジニアに影響を与えると共に、幾つかの成果を残してきました。例を挙げると以下のようなものがあります。
- EPISODES: A Pattern Language of Competitive Development
- カニンガムによる、スタートアップのためのソフトウェア開発を対象にしたパターン・ランゲージ。
- Smalltalk Best Practice Patterns
- ベックによる、より良いSmalltalkプログラミングのためのスタイルガイド。現在のSmalltalk以外のプログラマが読んでも参考になる。
- エクストリーム・プログラミング
- ベックによる、良いとされることを徹底的に(extreme)行うアジャイル開発フレームワーク。現在メジャーなアジャイル開発フレームワークの一つ。
パターン・ランゲージやそれに類似した思想をもつ人々は、上述のOOPSLAを中心に交流を続けました。パターン・ランゲージをテーマとしたワークショップも毎年必ず開催されました。そして1993年にはパターンコミュニティの中心的なメンバーが集まり、The Hillside Groupが誕生しました。
翌年、Hillside GroupはPLoP(Pattern Languages of Programs)と呼ばれるカンファレンスを開催します。PLoPには誰でも自分の書いたパターン・ランゲージを投稿することができました。PLoPは一般的なカンファレンスと異なり、投稿されたパターン・ランゲージを車座でレビューするWriters’ Workshopと呼ばれるワークショップがメインのコンテンツです。つまり、PLoPは単なる発表の場ではなく、参加者全員で投稿されたパターン・ランゲージを洗練していく生産的なカンファレンスでした。PLoPは現在も毎年開催されており、その度に世界中から数十本のパターン・ランゲージが投稿され、議論が交わされています。
パターン・ランゲージで表現できる分野は建築とソフトウェアだけではありません。上に挙げたエクストリーム・プログラミングがソフトウェアそのものではなく、開発という活動を扱っているのが証拠です。また、慶應義塾大学の井庭崇研究室では2013年度のグッドデザイン賞を受賞したプレゼンテーション・パターンを始めとし、人間の活動を対象としたパターン・ランゲージを次々と発表しています。パターン・ランゲージは個人の知識を共有し、未来の創造に役立てるための普遍的な方法になり始めているのです。
パターン・ランゲージをどう使う?
アレグザンダーが街や建築に見出したQWANを、KRAYでは組織やサービスで実現したいと考えています。クライアントとチームが楽しく仕事をしながら、質の高いサービスを提供する方法が必ずあるはずです。そんな理想を目指して、KRAYではパターン・ランゲージを応用する取り組みを始めました。まずはパターン・ランゲージに親しむことを目標に、現在までに以下のようなワークショップを開催してきました。
Fearless Journey
組織に新しいアイデアを導入するためのパターン・ランゲージを記したFearless Change(*2)をゲーム形式にしたFearless Journeyというワークショップを実施しました。ゲームの中で自然にFearless Changeのパターンを覚えることができます。
ラーニング・パターンを通したパターンの発見
パターンを知ると、身の回りの事象の中からパターンを発見できるようになります。例えばFearless Changeには「トークン」というパターンがあります。これは、アイデアを伝えるときに何か形に残る物を同時に渡すことで、思い出してもらう機会を増やすというパターンです。このパターンを知っていると、様々な展示会で企業が配っているノベルティがトークンそのものだと分かります。
ラーニング・パターンは上述の井庭崇研究室で作られたパターン・ランゲージで、“自律的で創造的な学び方のコツ”をまとめています。ワークショップではこのラーニング・パターンに目を通してもらい、自分が過去に体験したパターンを見つけ、その体験をパターンと共に発表してもらいました。
ラーニング・パターンを使った学習計画
このワークショップでは、パターンで表される状況を意図的に再現することにより、いきいきとした質の高い学習計画を作る体験をしてもらいました。ワークショップの手順は次の通りです。
- これから学習したいことを一つ仮に決める(実際に学習しなくても構わない)
- ラーニング・パターンを読み、共感したパターンを列挙する
- 選んだパターンそれぞれについて、自分の場合は具体的に何ができるか考え、文章にする
パターンは抽象化されているため、再現するには具体化する必要があります。例えばラーニング・パターンには「アウトプットから始まる学び」というパターンがありますが、アウトプットの形式は指定していません。だから学ぶものや環境に合わせて具体的に決めてやる必要があるのです。プログラミングを学習するのであれば、「ゲームを作る」というアウトプットが考えられるでしょう。
コラボレーション・パターンを使った理想の職場づくり
このワークショップではやはり井庭崇研究室の「『創造的コラボレーション』の秘訣を言語化した」コラボレーション・パターンを使いました。KRAYでは8人でソフトウェア開発をしており、まさに「創造的」「コラボレーション」が必要とされる職場だと考えられます。
このワークショップも上述の「ラーニング・パターンを使った学習計画」と同様、パターンを再現することでコラボレーションの質の向上を目指していますが、最初に「理想の職場についての思いを書き出す」というステップを加えました。このステップでは、理想の職場にあって欲しいもの、状態、逆に絶対あって欲しくないことなどを付箋紙に書いて挙げてもらいました。
パターンが発生する背景には必ず原因となる圧力や、心理的な葛藤があります。そしてそれらの力が干渉することで問題が生じます。よって、そういった背景を明らかにすることで、より適切にパターンを応用できるようになるのです。
このワークショップの目的は他のものと同様、パターン・ランゲージに親しむことでしたが、スタッフ全員で1時間ずつ2回行ったところ、実際にすぐ役立ちそうなアイデアが出たので、いくつかは実施する予定です。
理想のKRAYのパターン
今後KRAYでは2つの方面でパターン・ランゲージを応用していこうと考えています。一つは、KRAYの理想的な状態を表す『KRAYパターン』(仮称)です。KRAYで行っている業務やスタッフの人数・専門を考慮して、安心して仕事に取り組める、プロジェクトがスムーズに進むコツなど、KRAYにおける“QWAN”を探求していきます。
このような、特定の対象が目指す姿を表すパターン・ランゲージをプロジェクト・ランゲージと呼びます。プロジェクト・ランゲージについては、2011年のAsianPLoPに投稿されたパタンランゲージからプロジェクトランゲージへ(PDF)という論文が参考になります。また、井庭崇先生もフューチャー・ランゲージという呼び名で未来のビジョンを記述する方法を研究しています。
上述のコラボレーション・パターンを使ったワークショップはやや乱暴に短縮したプロジェクト・ランゲージづくりと見ることもできますが、今後はより丁寧に、再度スタッフの思いの収集や普段の業務の観察から始める予定です。
Railsアプリケーション・パターン /
iPhoneアプリ・パターン
もう一つの応用が、Railsアプリケーション・パターンとiPhoneアプリ・パターンです。
Railsアプリケーション・パターンは、弊社が得意とするRuby on Railsを使ったWebアプリケーションのパターン・ランゲージになります。Railsアプリケーションについてはブログやスクリーンキャストなどで既に多くのベストプラクティスやノウハウが公開されていますが、パターン・ランゲージの形式で組織的にブラッシュアップされたものは見つけられません。
KRAYでは社内の豊富なRailsアプリケーション開発経験から「Railsアプリケーション・パターン」と呼べるソフトウェア・パターンの原案を作り、開発パートナーや知人のエンジニアと共にブラッシュアップしていきたいと考えています(興味のある方はご連絡ください)。
iPhoneアプリ・パターンもRailsアプリケーションと同様、iPhoneアプリのソフトウェア・パターンです。こちらもまずは社内で雛形を作り、公開していく予定です。
KRAYではパターン・ランゲージの活用に取り組んでいます
まとめです。
- パターン・ランゲージはQWANを再現するための知識の表現方法として建築家のクリストファー・アレグザンダーが考案しました。
- パターン・ランゲージはソフトウェアの設計や組織/個人の活動を対象として30年近く応用が研究されてきました。
- KRAYでは理想の職場を目指して組織とソフトウェアの独自のパターン・ランゲージ作成に取り組んでいます。
脚注
- *1
- クリストファー・アレグザンダーの著書の邦題は「パタン・ランゲージ」だが、普通名詞としては「パターン・ランゲージ」と表記されることも多い。本稿ではアレグザンダーのものを指すときのみ「パタン」と記す。
- *2
- 邦訳『アジャイルに効く アイデアを組織に広めるための48のパターン』が1月に出版されました。
このエントリーに対するコメント
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)
- トラックバック
「いいね!」で応援よろしくお願いします!