実装パターン本やXP本に登場する「価値」とはなんだろう?

ギルドワークスさんとパートナーとして一緒にお仕事させていただいています、木目沢(@pilgrim_reds)と申します。

どちらもKent Beckの著書である、XP本実装パターン本に登場する価値と原則。

その内容については触れられる機会が多いと思いますが、
価値・原則とはそもそも何なのか?という点を考えたいと思います。

特に今回は「価値」に絞って考えてみます。

実装パターン本による「価値」の解説

当初、この記事を書くにあたって、「実装パターン」の価値についてのみ考えるつもりでした。
しかし、「実装パターン」で語られている価値についての説明は、

  • 普遍的で包括的な主題。
  • プログラミング時におけるあらゆる決定を左右する。
  • 価値は(パターンという行動を起こす際の)動機を提供する

ぐらいにしか、解説されておらず、なんとなくわかるのですが、なんとなく曖昧な説明に思えました。

そこで、同じく価値・原則・プラクティス(実装パターン本もパターンのことをプラクティスと言っている箇所があります。)形式で書かれているXP本の方も調べてみました。

XP本における「価値」の解説

XP本にて、価値について説明している箇所を抜き出してみます。

  • (園芸の例えより、剪定のプラクティスを理解するだけでなく、木全体・庭全体を捉える方法を指して)このレベルの知識と理解を価値と呼ぼう。
  • 価値とは、ある状況における好き嫌いの根源にあるものだ。
  • 価値とは、目にするものや考えていることなどを判断するための大きな基準である。
  • 価値は、プラクティスに目的をもたらしてくれる。

実装パターン本よりわかりやすい説明です。さらに、

価値がなければ、プラクティスはすぐに機械的な作業になってしまう

この箇所で理解できました。

実装パターンもXPも多くのプラクティス(パターン)が載っていますが、それらをただ実施するだけでは意味がありません。

例えば、ペアプログラミングを上司を満足させるためだったり、やってみたいからという理由で行っても意味がないということです。

また、コミニュケーションに不満があったり、チームのメンバー間がお互いに無関心といった問題を抱えていたらペアプログラミングというプラクティスが有効かもしれません。(「コミュニケーション」と「リスペクト」はそれぞれXPの価値の一つ)

最後に、実装パターンの価値やXPの価値は「実装パターン」を、または「XP」を方向付けるための価値であって、自分自身や、チーム、会社、またはビジネスのための価値とは必ずしもイコールではないという点に触れておきたいと思います。

これらはXPの原動力となる価値である。組織、チーム、あなた自身が、その他の価値を選択しても構わない。・・・チームがそれらの価値を共有すれば、XPの価値がプラクティスを作り出すのとは違ったやり方で、自分たちのプラクティスを作り出すことができるだろう。

とXP本の価値の章の最後にありました。

逆に言えば、XPや実装パターンの価値とチームの持つ価値が一致していれば、XP本や実装パターンの各プラクティスはチームに大きな力をもたらしてくれるということではないかと思います。

この記事を読んでギルドワークスに興味を持たれた方はお気軽に【ギルドワークスに依頼する】をご覧の上、お問合せください

エクストリームプログラミング 第二版 でXPに再入門しています。 #xpe2nd

どうも、ギルドワークス 前川です。

さて、皆さんはもうお読みになりましたよね!新訳版エクストリームプログラミング!非常の楽しい本なので、是非皆さんもチェックしていただければと思っています。

XPへの誤解

さて、このようにテンション高く始めてしまいましたが、私は実はXPの旧訳は読んだことがありませんでした。のみならず、XPをテーマにした本自体を、あまり読んでいませんでした。

実は私と同世代くらいの(昭和ギリギリ50年代くらい生まれくらいの)エンジニアには、結構同じ境遇の人、あんまりXPに関する書籍を読んでいない、という方が多いのではないかな?と思ったりしています。

なぜでしょう?それは、私がソフトウェアを本格的に勉強し始めたのと時を同じくして、XPの熱狂は去り、Scrumの波がやってきた、ように見えたのです。

その時、ソフトウェアの入門者を取り囲む空気には、少なからず偏見のようなものがあったと思っています。「XPは技術寄り」「Scrumの方がフレームワークとして定まっているので組織に入れやすい」「XPはスーパーエンジニア向けのもの」など、XPは効果的なんだろうけれど、とても導入が難しいエクストリームなものという言説は、同時いわれていたのではないでしょうか?

ギルドワークスにおけるXP

実はギルドワークスに入ってからも、少なからずこういったイメージを持ってしまっていたのですが、増田さんや市谷さんなど、ギルドワークスのメンバーから、XPの価値原則について、何度も熱く語ってもらいました。

XPといえばどうしても、全員同席テストファーストなどのプラクティスが強調され印象に残ってしまっていたので、XPの価値と原則について、改めて考えなければ、と思っていたのでした。

そんな時にちょうど出版されたのが、新訳版エクストリームプログラミングです。迷わず手を取り、読み始めました。

XPの価値と原則

まず、びっくりしたのは、最初の一文です。

エクストリームプログラミング(XP)とはソーシャルチェンジである。

帯にも書いてあるこの言葉は、本文の最初に出てくる言葉です。

ソーシャルチェンジってなによ?となりますが、あとがきで簡単に触れられています。

XPは必ずしも「社会」を変えるための活動ではない。隣の席にいるプログラマとうまくコミュニケーションしたり、顧客と密接にやりとりしたり、ユーザーが安心して使えるソフトウェアを届けたりする。そうした「人間関係」を扱う活動こそが、エクストリームプログラミングである。

そう、XPのというとバリバリの技術に尖った手法、というイメージを持ってしまっていたのですが、違います。人間関係を、仕事をしやすいよう変えていくのが、XPなのです。

なので、XPの価値には“コミュニケーション”“勇気”といった、人間関係を透明でわかりやすく、話しやすくする仕組みが埋め込まれていますし、原則にも”人間性“や”多様性”など、人間関係を豊かにする活動が詰め込まれています。

プラクティス以前に語られる、こういった価値と原則は、実はギルドワークスの「正しいものを正しくつくる」「越境」といった言葉に非常に密接にリンクしている、ということに遅まきながら気づいたのでした。

私も、皆さんと一緒に、自分の周りを Social Change していきたいと思います!

※アイキャッチの写真 https://flic.kr/p/3p69ZX