ボトムアップの民主的なプログラミング手法、XP

2001/10/18

 このところエクストリームプログラミング(extreme programing)というプログラミング手法が注目を集めている。先日行われた「21世紀の情報化をリードする人と企業」(主催:日経コンピュータ)で講演を行った、エクストリームプログラミング提唱者 米スリー・リバーズ・インスティチュート(Three Rivers Institute)ディレクターのケント・ベック(Kent Beck)氏に、この手法の概要について話をうかがった。

ベック氏 「XPがなぜいま注目を集めるようになったのかって? もう試せることは試したというほどプログラミングに関する問題が大きいってことじゃないかな(笑)」

 ベック氏は、企業をニワトリの集団に置き換え、次のように例える。「組織を1羽のニワトリが1つの機能を象徴するニワトリの集団に例えてみよう。長い間、集団として見ると完全に機能しており、ニワトリたちは良好な関係を保ち、とくに大きなケンカもせずにやってきた、20年前に新しい1羽が入ってくるまでは――」。その新入りがコンピューティングの機能をつかさどるニワトリ(テクノロジ部門)というわけだ。それ以来、テクノロジ部門の責任所在が明らかにされないために、企業はそれまでの調和・協調関係を崩し、集団としての機能が低下してしまった。そして、ビジネスそのものまでもが混乱してきた。これがいま、多くの企業が直面している状況だという。

 「そろそろ、コンピューティングに居場所と役割を定義すべきときだ」(ベック氏)。そこで同氏が提唱する手法がエクストリームプログラミング(以下、XPと略す)というわけだ。

ペア・プログラミングと1日8時間労働を推奨するXPとは何か?

 XPは、ビジネス、マネジメント、テクノロジの3つの異なる部門が1チームとなってプロジェクト達成を目指す開発手法。「これまで、ビジネスとテクノロジの2つの間でコマンド(命令)とコントロール(管理)を繰り返してきた。XPではマネジメントが加わることにより、ビジネスバリューが高まる」。ベック氏によると、1チームを構成する人数としては「25人くらいがベスト」という。

 ビジネス部門はプロジェクトの要点を説明し、テクノロジ部門は開発という視点からの意見を述べる。マネジメント部門はコーディネートをつかさどる。この意見交換の場となるミーティングは、XPでは重要な役割を果たす。「チームが集合し、顔を付き合わせてプロジェクトに取り組むことが必要」(ベック氏)。

 もう1つの特徴が、“ペア・プログラミング”。プログラマは2人1組となり、1台のマシンでコードを書く。こう聞くと生産性が低くなる気がするが、「それぞれの得意分野や知識を共有でき、仕上り時の完成度は高い。ミス防止、リスク軽減という点から、実質的な生産性は高い」という。

 実際のプログラミング作業では、XPでは開発フェイズを持たない。設計―コーディング―テスト―インテグレートのサイクルを何度も回す。「(ある期間にある作業を集中してやるのではなく)、同じ目標に向かって必要な作業を分単位、時間単位、週単位でとらえる。同じ形でサイズが違う絵を、100km離れて描く、10km、1km、1cm離れて描く場合と同じだ」

 また、一定のペースで作業を行うこともXPのルールの1つ。1日7、8時間労働を推奨しており、「全員が、毎朝“よし、今日も頑張るぞ”、夕方“今日も頑張ったな”と思うことが大切」。まずはじめに人ありきなのだ。

CMMはトップダウン、XPはボトムアップ

 XPは決して新しい手法ではない。5年ほど前から用いられるようになったが、考え方としてはかなり古く、40年前からあるという。

 日本で注目を集めているCMM(Capability Maturity Model for Software:ソフトウェア能力成熟度モデル)との違いについては、「一言でいうなら、CMMはトップダウン、XPはボトムアップ」。「CMMは目標に対してプロセスを重視するため、メンバーはそのプロセスに適合しなければならない。私個人は官僚的な手法と思っている。XPは、チームが権威と責任を持っており、貢献者としてのメンバーがプロセスを最適化していく。セルフ・オーガナイズされたチームができあがる」。

日本に根付くのか?

 XPでは、プロジェクトの成功に卓越したプログラマは必要ない。「チームの達成にフォーカスをした数人が力を出し切れたとき、素晴らしい結果が出せる」。このように、個人よりもチームが重視されることもあり、XPは、個人プレーよりも集団での行動を好むといわれる日本の文化にフィットするような気がする。それに対し、ベック氏は「大切なのは、チームが1つの顔を持つと同時に、エゴも共有することを認識すること。つまり、内部はオープンでなければならない」と語る。そこでは、自分の失敗を受け入れる勇気、他人の失敗を指摘する勇気が求められる。さらには、「合わないと思ったら、チームを去る勇気も必要」とベック氏は付け加える。

 現在、XPは、SOAPサーバのプロジェクトに用いたヒューレット・パッカードをはじめ、シマンテック、アイオナ・テクノロジーなどで採用されている。日本でもオージス総研などのSI事業者で用いられているが、XPを試してみたいと思っていても、なかなか試せずにいる企業は多いようだ。「変化を受け入れる、そのためには変化を恐れないことだ。XP成功の最大の鍵は、組織の文化、XPの文化を1人1人が受け入れることができるかに尽きる」とベック氏。究極(extreme)のところ、それはプログラミングに限らず、人生に通じるような哲学といえる。XPは、高度に発達した民主的な手法といえそうだ。

(編集局 末岡洋子)

[関連リンク]
米スリー・リバーズ・インスティチュート
eXtreme programming FAQ

[関連記事]
悪循環を断ち切る効率的なシステム開発を考える (@ITNews)

 

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)