FC2ブログ

レビュー:デザインパターン、Wiki、XP ~時を超えた創造の原則 2013年04月18日 書籍/IT・技術書 トラックバック:0コメント:0





デザインパターン、Wiki、XP(エクストリームプログラミング)の3つの歴史を結び付けて説明している本です。
一見何にもかかわりが無いように見えますが、デザインパターンが誕生し、それを皆が編集できる形で
保存しようと試みたのがWiki、パターンをプロセスにも適用しようとしたのがXPです。
それぞれの技術の概要を知れると思って買ったのですが、そういう本では無かったので注意してください。
ただ、本書で技術の誕生背景を知ることで、その他の各技術の関連性を気にするようになったのは大きいかもしれません。


以下、まとめ

・デザインパターンの源流
 建築家クリストファー・アレグザンダーは、建築を数学的に分析できないか、と考え、「パターンランゲージ」を生み出す。
 このとき、アレグザンダーは、「都市はツリーではない」という論文を発表。自然都市(人工都市の対義語)は
 セミラティス構造(多様な関係性を持つ複数の集合からなる構造)を持つ、という考え方だった。
 「人工都市を作るときにどうやって自然都市に近づけるか」の疑問に対し、アレグザンダーは利用者参加型の建築を提案する。
 作られたベースから、利用者は建築物を自ら再構築していく、という考え方である。
 このとき、オレゴン大学で行われた建築実験は「オレゴン大学の実験」として今も有名になっている。
 以下の図はオレゴン大学の実験における、「専門家と利用者の間に生じる齟齬について」の比喩であり、
 それをSEの仕事にもじったものである。
20130418.jpg

 アレグザンダーは自然都市の建築の中で、建設環境に繰り返し現れる課題を解決に導く具体的な方策を「パターン」として記述した。
 各々のパターンはパターン名、写真、上位パターンへのつながり、本文、下位パターンへのつながりの5つのセクションから成り、
 それらを組み合わせ/環境に合わせて改善していくことで建築を行う、というものである。

 この「パターン」の考え方はソフトウェア開発にも受け継がれ、GoFによる「オブジェクト指向における再利用のためのデザインパターン」により世に広められた。
 デザインパターンは「パターン名と分類」「目的」「別名」「動機」「適用可能性」「構造」「構成要素」「協調関係」「結果」「実装」「サンプルコード」「使用例」「関連するパターン」の
 13つのパラメータによって分類され、GoFにより23のパターンが抽出された。


・XPの誕生:プロセスへのパターンの適用
コプリエンにより、パターンの考え方が開発工程へと適用された。その後、Chrysler社でのCOBOLからSmalltalkへの
大規模開発プロジェクトにおいて、プロセスパターンを徹底的に実践する試みが行われた。
これが後にエクストリームプログラミング(XP)と呼ばれる開発手法となる。
このプロジェクトには、ベックも参加しており、その後、ベックは書籍「XPエクストリーム・プログラミング入門」を発行。
これにより、XPは大々的に知られることとなる。
XPでは様々な実践すべきプラクティスが定義されており、それらを実践しながらイテレーションを繰り返すことで、
短時間でリリースを繰り返していく。このプラクティスこそがプロセスパターンであり、この考え方は他のアジャイル開発手法にも一部適用されている。


・Wikiの誕生:デザインパターンの収集から
ベックは自分たちが見つけたパターンを収集するために、HyperCard(カード型データベース)を利用した。
HyperCardはWYSIWYG機能を持ち、容易に編集できる形だった。そこで、ベックは複数人による共同編集ができないかと考え、
カニンガムと共にフロッピーディスクでパターンをやり取りし、パターンを収集する実験をした。
カニンガムは自分自身のWebサイトでHyperCardで収集したパターンを公開し、誰でも編集できる形のWebページを作成した。
それがWikiの前身、WikiWikiWebである。
WikiWikiはハワイ語の「すばやい」という意味をもつwiki wikiから取っており、すばやくWebを編集する、という
意味を込めてそのような名前となった。
そこからWikiWikiWebは広がっていき、次第に略されて「Wiki」と呼ぶようになった。
Wikiにはコミュニケーションパターンという「ページのパターン」を定義している。
ドキュメントモードという客観的意見のみからなるページ、スレッドモードという主観的意見を含むページが主である。
これらの考え方は今のWikipedia等にも活かされており、議論を行うページと、記事を載せるページは分離されている。




・最後に
デザインパターンやXPは、「ベースであって全てではない」ことを注意しなければならない。
大事なのはそのベースをどのように活かすかを考えることであり、パターンをそのまま使用するときには十分注意しなければならない。
プラクティスを実践する中で、さらに改善していく意識を持ち続けることで、前へ前へと進むことができる。

テーマ:ブックレビュー - ジャンル:本・雑誌

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://developmentmemo.blog.fc2.com/tb.php/175-d7cd0ad2
この記事にトラックバックする(FC2ブログユーザー)