書籍の感想です。
読んだ本
『エクストリームプログラミング』
著者:Kent Beck、Cynthia Andres
訳者:角 征典
発行所:オーム社
感想や学び
XPはソーシャルチェンジ
"エクストリームプログラミング(XP)は、ソーシャルチェンジである。1
この「ソーシャルチェンジ」という表現がピンと来ないのですが、一番最後にある訳者のあとがき読むとイメージできました。
"隣の席にいるプログラマーとうまくコミュニケーションしたり、顧客と密接にやりとりをしたり、ユーザーが安心して使えるソフトウェアを届けたりする。そうした「人間関係」を扱う活動こそが、エクストリームプログラミングである。"2
ソフトウェア開発は人間の活動であり、そこで活動する人々の関係も含めて改善していくのがエクストリームプログラミング、というイメージです。
価値、原則 > プラクティス
"あらゆるソフトウェア開発の状況や文脈を網羅したプラクティスの一覧は存在しない。あなたも必要に応じて、新しいプラクティスを作ることになるだろう。"3
プラクティスの中には、今やXPにかかわらず浸透しているものもあります。プラクティスは価値や原則よりも変化しやすいので、たびたび振り返って適切なプラクティスにアップデートする必要があると思います。
テイラー主義の社会構造
"ソフトウェア開発において、品質、アーキテクチャ、フレームワークが重要ではないと言っているわけではない。むしろ逆だ。あまりにも重要なので、テイラー主義の社会構造に委ねるべきではないのである。。" 4
ソフトウェア開発はそれに適する構造がある。私のイメージはスポーツチームに近いです。ソフトウェア開発のパフォーマンスを重視するのであれば、良いコミュニケーションとフィードバックを生む構造を模索する必要があります。
誰のためのXPか
"私はプログラマーの生活をよくするためにXPを体系化した。" 5
XPチームに含まれる人たちを見てみると、開発に近い人はもちろん、経営幹部や人事、さらにはユーザーも含まれています。6 チーム全体とって良い結果になって初めてプログラマーの生活もよくなるのだと思います。
まとめ
私は剣道経験者なのですが、剣道は勝敗だけではなく立ち振る舞いも重視される武道です。XPも技術だけではなく、人間性も重視している点で近いものを感じました。
最後に一番印象に残っている言葉です。
"あなたの肩書が何であれ、ソフトウェア開発との関係がどのようなものであれ、「ソフトウェア開発には現状よりずっと大きな可能性がある」ことを私はメッセージとして伝えたい。"7
私が『エクストリームプログラミング』を読んだのも、この「可能性」を模索してのことなので、このメッセージには非常に共感できるものがあります。この書籍を読んだことで引き続きより良い環境、製品、そしてプログラマーを求めるモチベーションにもなりました。
おまけ:イベント「XPエクストリームプログラミング入門」
ちょうど読み終わったタイミングで「現場から学ぶモデル駆動の設計」グループでXPのイベントが実施されました。
XPのメタファーは「車の運転」
チーム全体が一台の車を運転する一蓮托生の状態が表されていると思います。コミュニケーションとフィードバックがパフォーマンスにつながるイメージがしっくりきます。
エクストリームまで行くとこうなる
「エクストリームか、そうでないか」の2極ではなく、駆け出しからエクストリームまで幅があるという見方が良いですね。
すぐにエクストリームに成れるわけではないし、エクストリームに至れてないから悪いわけではないと思います。