これまで約半年に渡って続けてきたこの連載も,ついに最終回を迎えることとなった。「Web 2.0時代の開発手法」というタイトルでお伝えしてきたが,途中「どこがWeb 2.0なんだ?」と疑問を感じた読者もいるかもしれない。最後に,この問いかけに答えつつ連載を締めくくりたい。

 Web 2.0の定義は人によって様々だが,結局は現時点でのWebのトレンドをまとめたものにすぎない。来年になれば,また来年の時点でのWeb 2.0に当たる概念が出てくるとも言えるだろう。開発者にとって重要なのは,Web 2.0の定義やその是非を問うことではなく,「その時々の時代の変化に乗って,Webを作り上げていく」ことであるはずだ。

 そのためには,作り手側も時代の変化に対応していかなければならない。時代の変化に対応するということは,その時々で自分たちのやり方そのものを革新しながら対応する必要がある,ということである。これを実現するためには,「変化を恐れない」という態度が重要になってくる。

 変化は至る所に現れる。要求の変化,アーキテクチャの変化,言語の変化,そして自身の変化だ。この「変化」は外部の変化だけではない。「内部」である自分たちをも常に変化させていくことを意味する。つまり,プロセスや開発者さえも変化していくことになる。外からの変更に柔軟に適応するためには,内から自身を変えていかなければならないからだ。

 変化は,制御するべきものではない。その存在を受け入れ,うまくつきあっていくべきものである。もっと言えば,「味方につけるべきもの」とも言えるかもしれない。少なくとも筆者は,「変化」をそのようにとらえる必要があると考えている。

 ソフトウエア開発におけるすべての変化をそのように考えるのは危険かもしれない。だが,要求がめまぐるしく変わるような問題領域で,どうすべきか悩むことは多いはずだ。そうした場合は,「変化を制御する」という思考を捨てて,「変化は制御できないものである」という前提で話を進めてみてはどうだろうか。

日本人は変化とともに生きてきた

 ソフトウエア開発における「変化」を考えるに当たっては,自然と人間の関係が良いアナロジーになる。厳しい自然に囲まれたヨーロッパやその影響を色濃く受けた国々では,自然とは人間に立ちふさがる脅威であるとみなされていた。自然に立ち向かい,それを支配することこそが,人間がほかの動物と異なる特別な存在であることの証明だったのだ。

 対して日本では,自然を畏怖し,自然を支配できるものとして考えるのではなく,自然との「共生」を目指す思想が古くから受け継がれてきた。現代の日本では失われつつあるものの,少なくともほんの200年ほど前までは,それが一般的な考え方だったのである。

 自然を支配し制御できると考えた人間は,欧米化が進んだ現在の日本も含め,多くの開発や経済活動を行った。その結果が,世界各地で話題になっている,危機的状況とも言えるほどの環境問題であることは言うまでもない。本記事は環境問題がテーマではないのでこれ以上触れないが,結局のところ「支配できないものに対して,支配しようとした結果」が現状をもたらしている要因の一つであるということは,認めなければならない事実であろう。

 ソフトウエア開発における変化にこの「自然と人間」の関係を当てはめてみると,いくつかの共通点が見えてくる。ここでは,「変化」という言葉を,「外部からの変化」「内部からの変化」という2つの視点で考えてみよう。

 まずは,外部からの変化である。例えば自然界における災害には,予測できるものとできないものがある。台風のような季節によって発生する災害は,ある程度時期と規模を予測できる。発生する前に対策を講じることも可能だ。一方予測できないもの,例えば地震のような,いつ発生するか分からない災害は,時期を予測することはできないものの,一定の間隔をもって災害に対する備えをしたり,被害を最小限にとどめるような工夫をしたりすることはできる。

 ソフトウエアにおける変化も同様だ。変化には予測できるものと,予測できないものの2通りがあり,それぞれに対して備えが必要になる。これについては,本連載の著者の一人である平鍋が以前ブログでエントリしているので,興味がある方は参照してほしい(「『変更しやすい』ことが,良い設計 (EoC=Ease of Changing)」「ソフトウェアの設計とリズム」)。

 変化を前提にすると,最初に決めた計画に従い続けるのが現実的ではないことが,容易に想像できる。頻繁に計画を見直し,舵取りをしていくということは,変化に対応し続けるためには必然と言える。外部の変化を受入れることは,変化に対して無策であることとは違う。変化を前提とするためには,我々はこれまで以上の努力を払わなければならない。筆者は自然と人間の関係から,そのヒントが得られないかと考えている。

 次に内部からの変化である。これは変化を受け入れるのではなく,自身が変化していくという視点だ。生物は自然の変化に対応するために,自らを環境に適応し進化して生き延びていく。外界の変化が激しい環境では,自身を進化させることができない生物は滅びるしかないのである。

 人間は生物の中で唯一,特定の環境に依存しない段階まで進化を遂げた生物である。その人間に与えられた武器は「知恵」である。知恵を持って課題を分析し,工夫して,変化に適応して生き延びてきたのだ。この変化に適応してきた工夫こそが,現代で言うトヨタ生産方式における「カイゼン」と言えるのではないだろうか。

 外からの変化,そして内からの変化を受け入れることで,チームはより機敏に動けるようになり,Web 2.0時代にふさわしい開発ができる。そして,意図を持って工夫し,常に進化し続けるためには「ふりかえり」が必須である。

 筆者は,自然と人間の関係を考えるに当たって,元々日本人は変化に柔軟に適応し,制御できない対象と折り合いをつけて共生するのが得意な民族であることを再認識した。Web 2.0時代に必要とされるのは,「抽象化された開発プロセス」だけではない。むしろ「個々のコンテキストに応じて柔軟に適応し,“変化を抱擁”できる開発に対する姿勢と行動」のほうが重要なのである。この点は,まさしく日本人の得意とするところであると思うのだが,いかがだろうか。

懸田 剛

チェンジビジョンでプロジェクトの見える化ツール「TRICHORD(トライコード)」の開発を担当。最近,ハックという言葉よりも“工夫”という素晴らしい日本語があることを再認識した。工夫の積み重ねが“功夫”になる。個人サイトはhttp://giantech.jp/blog