August 15, 2007

ペアプログラミングは、正統的周辺参加。

ということでいいのかね?

最近はよくブックオフに出かけて、面白そうな本があれば購入している。探せば良書もいろいろ出てくる。ファウラーのリファクタリングやら、ベックのテスト駆動開発入門やら、グラハムのハッカーと画家、デマルコのピープルウェアなどもブックオフで購入。ハッカーと画家が100円だったときはびっくりしましたYO。そのままamazonで売りさばこうかな、と思った。まぁ、先日いらない書籍を150冊ほどブックオフに引き取ってもらったのだが、1500円。。。まぁ、こんなものか。

で、例によってブックオフで購入したものにペアプログラミングという書籍がある。つい最近、読破したので、ちょっと書いてみるか。
ペアプログラミング―エンジニアとしての指南書

内容は非常に軽いのだが、実はこの書籍には(少なくとも私とって)大事そうなキーワードやら引用がいくつか入っている。それらは、レイブやヴェンガーの正統的周辺参加やCoP、ハッチンスの分散認知といったもの。注文を付けるのであれば、ここにヴィゴツキーの発達の最近接領域というキーワードも入れてもらいたいところだ。とググったけど誰もそんなことは言ってないね。ここは私が提唱者となるという手も。

この書籍は、XPについて少しは調べたことがある人には当然のようなことが書いてあるので、特に新しいことはないけど上に書いたようにもう少し理論的なところが書いてあるのが私にとってはおもしろい。つまり、私にとっては9章が良かった。そしていろいろなパターンのペアプログラミングについて書いてある。専門家と専門家のペアとか。専門家と新人のペアとか。あと、アマゾンのレビューでは、翻訳がイマイチって書いてあるけど、そんなことはないと思うんだけどなぁ。12章以降のスキットが気に入らないのかなぁ。私はああいうの大好きなんだけどね。。

専門家 - 新人のペア

ゼウス(とても速くキーを打っている): x = frobnatz.bar (1, y,
脅えた羊:すいません
ゼウス(依然キーを打ちながら):なんだ。 errorNum+
脅えた羊(小さくなり,見つめながら):なぜコンマの後ろにスペースを入れるのですか。
ゼウス(さらに速くキーを打ち):いつもやっているからだ。(打ち続ける) 7);
脅えた羊(見ている):どうしてですか。
ゼウス(キーを打ち,叫びながら):だから,いつもやっているからだ。今度は君がドライブする番だ。
脅えた羊(とてもゆっくりとキーを打ち始める): z = frobnatz.mumble(3,4
ゼウス(叫ぶ):ちがーーーーう!(脅えた羊の後頭部を叩く)
脅えた羊(シクシク泣いて,さらに打つのが遅くなり):<backspace><space>4);

えと、つまり、ペアプログラミングは、プログラマ同士のコミュニティ形成に関するものであると勝手に解釈しました。本当は、もっと上の人たちを巻き込んだ実践共同体と呼んでもいいと思うのだが、そこまで話がいくとややこしくなりそうなのでこの文章の中では入れない。結束したチーム(デマルコの影響から。。)としてのプログラマのコミュニティができると何がうれしいかというと、個々人の仕事は独立したものではなくなり、共通のプロダクトを目指す実践共同体となることでないかね。そして、実践を通して学び、そしてより自分の属する共同体が目指すものを作り上げようという意識が芽生える。そして、その結果、妥協をしないプログラムを書くようになり、バグも減る。また、ペアローテションによってトラックナンバーが1になることを避けることができる。ペアプログラミングをする際に性格上の問題はありそうだけど、絶対いいと思うんだけどなー。つーか、ペアプロしてぇ。ヲレのタイプとしては、「外向型」で「専門的への道を進行中の平均的」かな。。。

管理者を説得して、ペアプログラミングを推進しようとのことが書いてあるけど、やっぱり管理者は自分の管理するチームに関してのナレッジマネジメントは興味ないのかな?興味があったら普通に飛びつくと思うんだけどなー。ナレッジマネジメントを助けるアプリを作成するよりも、楽しいと思うんだけどなー。

Leave a comment

Bloglines feedburner