このタイトルは,SEやプログラマなど,ソフトウエア技術者の方への質問である。「ソフトウエア開発って楽しいですか?」――

 筆者がどうして「ソフトウエア開発は楽しいのか」ということに興味を持ったのかというと,この1年ばかりXP(Extreme Programming:エクストリーム・プログラミング)について調べるようになったからだ。XPとは,高品質なソフトウエアを少人数で素早く開発するための方法論である。

 XPには,二人のプログラマが一つのコードを書く「ペア・プログラミング」や,顧客を開発チームに常駐させる「オンサイト顧客」などいくつかプラクティス(実践項目)がある。それら一つひとつのメリット/デメリットについて語るのは本記事のテーマではない。ここで注目したいのは,XPを実際にやってみたソフトウエア技術者の感想である。彼らの多くが異口同音に答えるのだ。「楽しかった」と――。

 興味のある方は,XPを実際に体験したレポートを掲載している,オブジェクト倶楽部のWebサイトや,豆蔵のXP体験記などをご覧になるといい。これまでのソフトウエア開発とはずいぶん雰囲気が違い「楽しそう」と感じると思う。

「技術者は機械のようにプログラムを生み出す存在ではない」

 XPを実践することで「ソフトウエアの品質が向上した」とか「生産性が高まった」などと言うならわかる。しかし「面白かった」「楽しかった」「次のプロジェクトもXPでやりたい」・・・と,現場の人間から前向きで明るい意見が出てくるのは,正直,筆者にとって意外だった。

 最初,筆者は,きっと「楽しい」と思えるのは,XPの手法が優れているからではなく,新しい試みだったから単純に楽しめただけだ,と考えていた。実際,XPの目的の中に「楽しいソフトウエア開発」があるわけではない。だがXPには,従来の手法にはなかった魅力があることが,だんだん理解できるようになってきた。

 どうしてXPが楽しいと感じられるのか。さまざまな理由が挙げられる。中でも重要な要素は,「ボトムアップの手法」という点だろう。XPの基本は現場重視である。技術者,そして顧客を取り巻く環境を肯定している。顧客のニーズはビジネス環境の変化で刻々と変わるものだし,技術者は機械のようにプログラムを生み出す存在ではない,というのがベースになっている。

 一方,これまで考え出されてきたソフトウエア開発手法の多くはどうか。「顧客のニーズは早期に固定化しなければならない」「メンバー間のコミュニケーションは文書第一」と主張してきた。確かにそれらのメリットは理解できる。が,どこか現実感が乏しい。どうも,現場の感覚とマッチしないのだ。

 それは,従来手法の多くが,どちらかというとソフトウエア開発の管理者側から見たトップダウン型の発想だからではないか。技術者あるいはソフトウエア開発を強引に“管理”するための手法だからではないか。XPも突き詰めればプロジェクト管理手法の一つだが,そこには“管理される”という束縛間はあまりない。だから「楽しい」と感じられるのではないか。

日本なりの“XP的なやり方”に知恵を絞ろう

 XPを研究しているユーザー会に出席すると,誰もが真剣にソフトウエア開発の将来のことを考えているのがわかる。そこには,「“自分たちで”自分たちの仕事を変えられるかもしれない」という熱気が感じられる。筆者には,技術者の自主性を生かせば,高品質なソフトウエアを素早く作ることは可能だ,ということを証明した(証明しつつある)点がXPの最大の功績のように思える。

 もちろんXPとて完璧な手法ではない。実践すれば必ずうまくいくとは限らないし,欠点もある。それでも“楽しかった”と感じられるのは,従来手法では見られなかった点だし,もっと積極的に評価すべきだろう。

 筆者は,何もXPをそのまま実践せよ,と述べているのではない。日本には日本なりのXP的なやり方があるはずだ。ボトムアップでソフトウエア開発を変えていこうと,現場の技術者が考え,そして実際に知恵を絞ることが大切なのだと思う。そして,新しい方法を考えるときのキーワードとなるのが,ずばり「楽しいかどうか」だろう。

 もし読者の中で,すでに「楽しいソフトウエア開発」を実践している方がいるなら,ぜひ教えてほしい。ひょっとしたら,それが21世紀の日本のソフトウエア開発手法になるかもしれない。

(真島 馨=日経ソフトウエア編集)