近く転職する予定なのだが、転職先で上司になる予定の人から勧められたので『エクストリームプログラミング』を読んだ。
冒頭の「推薦の言葉」のセクションが実にうさんくさい。次のような言葉が並ぶ。
ソフトウェア開発は本来とても楽しいものだ。新しい価値が世の中に提供されることに、自分自身も仲間も、時には競合相手でさえも興奮を隠せずワクワクしてしまう。しかしやり方を間違うと、関係者が次々と不幸になっていってしまうこともある。XP はこうした不幸を避け、人間関係を良好に保ち、それぞれが仕事を楽しみながら求められる成果を出していくための方法論だ。(略)。
小野和俊 株式会社アプレッソ 代表取締役社長、株式会社セゾン情報システムズ CTO
他にも:
XP は私の人生を変えた。(略)。本書は「XP とは何か」だけでなく「よりよい仕事・よりよい人生を送るための道」を示している。(略)。
懸田剛 Agile459 代表、日本 XP ユーザーグループ創立スタッフ
『エクストリームプログラミング』は技術書ではないのか? 「不幸を避ける」? 「人間関係を良好に保つ」? 「よりよい人生を送る」? これは自己啓発本なのか?
本書を読み進めることで、この「推薦の言葉」の意味が理解できた。僕のような XP に慣れていない人間には、XP は「ペアプログラミング」や「テスト駆動開発」のようなプラクティスを指す言葉のように思える。しかし XP は単なるプラクティスではなく、それがもたらす「価値」や「原則」にも重きを置いている。本書では XP が大事にする原則のひとつとして「人間性」が挙げられている。
「人間性」の章は次のようにはじまる。
人間がソフトウェアを開発する。このシンプルで逃れようのない事実によって、利用可能な方法論の多くがその効果を失っている。ほとんどの場合、ソフトウェア開発は人間の欲求を満たしていない。人間の弱さを認めていない。人間の強さを活用していない。ソフトウェアを人間が開発していないかのように振る舞えば、関係者にかかるコストが高くなり、人間の欲求を認めない非人道的な行為によって、人間性が失われてしまう。こうしたことは、高い離職率に伴うコストや組織の崩壊、クリエイティブな行動の機会損失など、ビジネスにとっても好ましいことではない。
これも含め、本書はソフトウェア開発に関わる人間的な側面を丁寧に記述している。たとえば「よいチームとは?」「よい見積もり (スケジュール)とは?」など。そういう問を深堀りして得られたプラクティスが、ペアプログラミングでありテスト駆動開発である、という感じだ。
ところで XP を採用していないチームに XP を導入するのは大変そうだと思っていた。本書を読んでも「大変そうだ」という感想は変わらない。本書の第 16 章は XP を組織に導入したブラッド・ジェンセン氏 (Senior Vice President of Sabre Airline Solutions) へのインタビューである。ひとつ面白い Q & A がある。
Q: XP の導入は簡単ではなかったと思います。
A: そうですね。最初は 3 分の 1 の人が懐疑的です。その他の 3 分の 1 はすぐに取り入れてくれて、残りの 3 分の 1 は様子を見ています。最終的には、80~90 % が取り入れてくれます。10~20 % は、嫌々 XP を使います。3~5 % は、絶対に取り入れてくれません。ペアを組もうとしなかったり、コードの所有権を主張したりするプログラマーがいたら、解雇する勇気を持つべきです。残ったチームがあなたを助けてくれるはずですから。
これは実に生々しい話だと思った。やはり XP の導入は一筋縄ではいかないし、それに適合できないメンバーは「勇気を持って解雇すべし」とまで言っている。
「絶対に XP を取り入れない人たち」が 3~5 % いるとして、大きい組織ほど “3~5 %” の絶対数が大きくなるので、開発メソッドの選定というのは早ければ早い方がよいのだろうな、と思った。