水曜日, 9月 16, 2009

書評:「パターン、Wiki、XP」

この本のタイトルの中にあるXPとは、エクストリームプログラミングというソフトウェア開発手法の一つ。システム開発に関する専門書でもあるこの本が、しかし複雑系の先の読めない世界の中で、どのようにプロジェクトを進めていけばよいか、ということについて、大切な示唆を与えてくれます。

従来のシステム開発では、ウォーターフォールという、最初にすべての仕様を決め、設計をした上で長期間にわたって開発を進めるやり方が当たり前でした。XPはそこに、アジャイルという新しい方法を提示します。

アジャイルの開発手法では、システム全体を最初に設計するのではなく、小さな部分に分けて徐々に作り上げていく方法で、チームは各部分の短い開発を何度も繰り返しながらシステムを構築していきます。作った部品はすぐにシステムに連結し、テストを行い、不具合が出ないか調整をしながら進めていくので、バグの発生率を大幅に抑えることができる方法です。

この方法の良いところは、バグの発生率以外にもあります。それは状況の変化に対応しやすいということ。ウォーターフォール型のシステム開発では、最初の設計が大がかりであるため、途中で設計の変更が難しい。そのため、状況の変化によりニーズが変わっても、それに対応することができませんでした。アジャイル型の開発手法であれば、部分ごとに組み立てていくため、そうした設計変更にも柔軟に対応できるのです。XPの手法を紹介した本の副題には「Embrace Change(変化を抱擁せよ)」とあり、予期できない変化に対応するための方法として提示されています。

このシステム構築の方法を適用した有名な仕組みがWikiです。誰もが編集に参加でき、日々項目が増え、内容が充実しているWikipediaなどは、不特定多数によるアジャイルな開発と捉えることができます。もしあの百科事典を、全ての項目にわたって最初に設計しようとしたら、設計だけで相当な時間をとられるだけでなく、制作中にも日々増え続ける新しい項目を柔軟に追加していくことができません。誰もが参加でき、漸進的に成長させていけるWikiという仕組みがあって初めて、Wikipediaという巨大百科事典は可能になったのです。

この本では、こうしたXPやWikiの思想の源流となったパターンランゲージという建築・都市開発手法までさかのぼって、その秘密を解き明かしていきます。建築家アレグザンダーは、プロの建築家ではないユーザーが、自らの手で家を建て、街を作り上げていく手法として、このパターンランゲージを提唱しました。建築や街に含まれている要素を253のパターンとして抽出、実際のユーザーが自身の手でパターンを組み合わせ、漸進的に建築を作り上げていきます。ランゲージとあるように、このパターン群は一種の共通言語として、参加者の中で共有されていきます。

アレグザンダーはこのパターンランゲージにおける原理を、有機的秩序の原理、参加の原理、漸進的成長の原理、パターンの原理、診断の原理、調整の原理という6つにまとめています。

本書では建築手法として提示されたこの原理がシステム開発、Wikiの分野へと引き継がれていく流れを丁寧に追っています。しかし、この原理が有効なのはシステム開発にとどまりません。実際のビジネスのプロジェクトマネジメントにおいても、たとえば徐々に組み立てていく漸進的成長をプロジェクトに導入したり、利用者(消費者やクライアント)の参加の原理を行ってみたりするなど、さまざまな「翻案」が可能でしょう。

もうひとつ付け加えておきたいことが、これは拙著『ライフハックのつくりかた』(ソフトバンククリエイティブ)でも触れたことなのですが、おそらくライフハックというのが、ビジネスにおけるパターンランゲージとなって、その人にあったワークスタイル、その会社にあったワークスタイルをくみ上げる共通言語になるのではないかということ。パターンランゲージやXPの思想を引き継ぐものとして、ライフハックを位置づけたいと考えています。

書評連載第一回「知識デザイン企業」

書評連載第二回「ドラッカーの遺言」

書評連載第三回「考える脳 考えるコンピューター」

書評連載第四回「複雑な世界、単純な法則」

書評連載第五回「単純な脳、複雑な「私」」

書評連載第六回「ビジネス・インサイト 創造の知とは何か」

書評連載第七回「ブラックスワン」