「アジャイルイントロダクション」のご紹介

最近読んだアジャイル関係の書籍で、一番面白かった本を紹介します。「アジャイルイントロダクション Agile開発の光と影(Bertrand Meyer著 石川冬樹監修)」です。

著者は、オブジェクト指向設計の大先生Bertrand Meyer氏です。この本は、トップエスイー入門講座として出版されていたので、目につきました。トップエスイーというのは、国立情報学研究所が主催する、トップレベルのソフトウェア技術者の育成を目指した講座で、企業から現場のソフトウェア技術者が毎年勉強に行っています。その入門講座の書籍なので、何を教えているのか興味がありました。なによりBertrand Meyer氏が、アジャイル開発についてどんな解説をするのか大いに興味がありました。

私は一読して、大筋においてやっぱりそうだよねという感想を持ちました。日頃、アジャイル開発の本や講演などで、私自身が引っかかっていた様々なことがスパッと書かれていて、私だけが感じていたわけではなかったと本当にうれしかったです。

この本の主張を私流に表現すると、アジャイルは、すばらしいマインドセットを宣伝しているが、必ずしもそれに技術が伴わない、ソフトウェア工学の知見を無視した提案がある、それを読者は自分で判断しなければならないのが今の状態である、となります。

例えば、「変化を許容しよう」というのは、アジャイルの重要な考え方の一つです。変更容易性を保つためには、変更を容易にする設計とアーキテクチャが必要です、しかしアジャイルは、同時に「最小限のソフトウェアを開発しよう(YANGI)」とも主張します。これは、いつか必要になるかもしれない何かではなく、今実現しようとしていることに常に意識をむける、仮にそれが必要になるであろうとわかっていても、ということです。したがって、設計時に一般化や再利用、例外などについて考えないということになります。しかし、これでは変更容易性は保持できません。変更のたびに、大きな外科手術が必要になってしまいます。「変更の容易さは、どこからともなく出てくるものではなく、事前の考慮が必要だ、それを拒絶するのは、「変化を許容しよう」と言うスローガンと矛盾するではないか」とMeyer氏は主張します。

一方で、アジャイルの良いものは良いとはっきり認めています。例えば、回帰テストを定着させたのはアジャイルの素晴らしい貢献だと言っています。また、すべてのテストが通るまでは新しい機能には着手しないという点も評価しています。テストに関するこれらの主張を、日本の技術者はどう感じるでしょうか。私にとって、アジャイル以前から回帰テストは当たり前だし、バグを修正せずに次の機能を開発することはありえないと考えるので、こうした主張からアジャイルの目新しさを感じることはありません。

Meyer氏の主張に必ずしも賛成できない点もありました。例えば、ペアプログラミングは成果を誇張されすぎとしています。私は、ペアプログラミングは、適用するタスクが適切なら大きな効果があると思っています。ただし、確かに開発唯一のやり方としてペアプログラミングを課す理由はないという意味では賛成です。また、プランニングポーカーは、専門家の一言が初心者の合唱によってもみ消される恐れがあるとしてあまり成果を認めていません。こうした恐れは可能性としてはあり得ますが、実際にそのような場面に遭遇したことがないので、私にはちょっと想像がつきませんでした。

読んでいくと、考えさせられる部分が多く、私にとっては示唆に富んだ書籍でした。「アジャイルという名前そのものがマーケティング的な意味で天才的な発想なのであり、もし自由に選択できるのであれば、誰もが皆、アジャイルでありたいはずだ!」「しかし、名前は単なる名前であり、アジャイルの具体的な原則、プラクティスを一つ一つ理知的に判断しなければならない」としています。まさにその通りです。そして、「この分野が成熟した際に、段階的に既存の概念の理解を改善し、貴重ないくつかの新しい洞察を導入する自称アジャイル革命に至る方法なのである」ということでした。本当にそうあってほしい、今はその道のりの何合目にいるのだろうかと思いました。

念のためお伝えしておきますが、Meyer氏はアジャイル開発を高く評価しているとのことです。だからこそあえて辛口の本を執筆されたのだと思います。アジャイル開発に関わる方には、ぜひ一度読んでいただき、Meyer氏の意見を反芻してみることをお勧めします。