XPと宮本武蔵の勝利への執念、ケント・ベック

2006/9/6

ケント・ベック氏

 XP(eXtreme Programming)の考案者で、テスティングフレームワークJUnitの作成者ケント・ベック(Kent Beck)氏が来日した。米アジターのフェローでもあるベック氏の来日は5年ぶりのこと。

 プログラマに本当に必要なのは、優れたプログラミング技術や知識などではなく、「ソーシャル・スキル」だとベック氏はいう。これはXPにも盛り込まれているベック氏独特の知見だが、プログラマに十分に浸透しているとはいえない。目先のトラブル解決に躍起になるのではなく、ソフトウェア開発を包括的にとらえることがどんなに重要か。プログラマのひとりひとりが開発者としての責任感を持つことで、ソフトウェア開発の成功率は高まるとベック氏は指摘する。

 従来、プログラマというのはコンピュータとだけ向かい合ってきた孤独な人々であり、他人との対話を苦手としている。ベック氏は自身の経験も踏まえていう。ただし、ある程度の規模のソフトウェア開発作業は他人との協業を抜きにして行うことができない。すると、プログラマ同士が対話をすることの重要性が自ずと浮かび上がってくる。ソーシャル・スキルとは、つまり人と話をすることである。単純なことだが、プログラマという職種にある人々の多くがこのことをうまくこなすことに困難を感じる傾向にあるとベック氏はいう。

 ベック氏がソーシャル・スキルの重要性を認識し、XPの基礎を築き始めたのは15年前のこと。そのころはまだ「自分がパーフェクトなプログラマならすべてうまくいく」と思っていた。しかし、ソフトウェア開発を成功させる要因は、個々のプログラマのスキルとは違う次元にあると気づき始めた。そして、ソフトウェア開発に対する考えを変革し、XPを体系化していまに至る。

 「そもそもXPとは、ソフトウェア開発を成功させるための具体的な解決方法とかそういうものではない」とベック氏はいう。XPはソフトウェア開発における哲学のようなものだ。ソフトウェア開発とはいかなる作業なのか。その本質を見極めない限り、この複雑な作業を常に成功へと導くことは難しい。このような出発点に立つと、「ソーシャル・スキル」の重要性が見えてくる。さらに、ベック氏はこんなこともいう。プログラマはひとりひとりが開発作業に対する責任を持つべきだ。

 こんな例え話がある。ロケットの発射実験施設で清掃作業員として働く男性に「あなたの仕事は何か」と聞いた。彼はこう答えた。「おれの仕事はロケットを月に飛ばすことだ。そのためには何でもやる」。ソフトウェア開発という作業の最終目標は、よいソフトウェアを低コストで作り上げることである。目標はたった1つ。この1つの目標を達成するために何をすればいいのか。まずはすべての開発担当者がその時点に立ち返る必要がある。そして、そのために必要なものは何でも利用すること。「宮本武蔵が勝つために何でもやったように」(ベック氏)。XPが生まれた背景はここにある。

(@IT 谷古宇浩司)

[関連リンク]
アジターソフトウェア ジャパン

[関連記事]
米アジターのJavaテストツールに「歴史が変わった」の声 (@ITNews)
単体テストを見直せば開発コストは低減する、アジター (@ITNews)
エンタープライズ環境とJava、その関係 (@ITNews)
SOA環境に必須のテストとは、テクマトリックスが新ツール発売 (@ITNews)
テスト工程の管理という解答、エンピレックス (@ITNews)

情報をお寄せください:



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