アジャイル開発によくある誤解
アジャイル開発は、本当に大規模システムの開発に向いていないか?で、アジャイル開発が大規模開発で使えないという誤解について書きました。その他によくある誤解は新規開発に向かないというものです。
私は新規開発と既存システムの革新に、アジャイル開発を使った事があります。その経験を踏まえて言うと、どちらも大差ないという事です。アジャイル開発は新規開発に向かないという人の意見を調べると、根拠として見切り発車を挙げています。しかし見切り発車は、現実を知らないウォーターフォール開発モデルのアーキテクチャもよくする事です。そもそも、システム開発は変化がつきものであり、どれだけ事前に準備をしても変化は起こります。ならば、初めから変化を受け入れるというのがアジャイル開発の本質です。その本質を理解していない人は、多くの誤解をするようです。
しかし、だからと言って、見切り発車が良いと言っているのではありません。アジャイル開発に不慣れな人は、直ぐにコーディングを始めなくてはならないという誤解を持っていますが、決してそんな事はありません。そんな事をすれば失敗するのは当たり前です。私はビジネス特許関連の、全国規模の基幹系業務システムの開発を手掛けた事がありますが、その時もアジャイル開発を行いました。開発規模が大きくなると、コミュニケーションの重要度が増してきます。また、利害関係者の数に比例して、変化の発生率が高くなります。私が発案者だったので、多くの関係者が常に私に内容を聞いてくる状態でした。また、多くの要求とその変更が私に寄せられました。その状態でしたので、コミュニケーションを重視しない、ウォーターフォール開発を行う理由はありませんでした。これは、このケースに限った話ではありません。
システム開発で重要なのは、核となる要望を聞き入れ、早期に動くものを見せて、フィードバックを得る事です。これは新規開発でも非新規開発でも変わらない事実です。この世は常に変化をし、誰もシステムの全容を把握していません。エンドユーザーは実際に稼働するシステムに触れ、自分たちの要望をはっきりさせていきます。それに加えて、よりよいものを人は求めます。ですから、仕様変更は悪ではなく、さらなるビジネスチャンスです。それに対応するのは、ビジネス的に考えても合理的な事です。
システム開発の本質は変わりません。システムの核となる部分を見失わず、変化を恐れずに、人の役に立つシステムを作るのがシステム開発の本懐です。現状では、これを実現する方法はアジャイル開発しかありません。しかしそれは入口にしか過ぎません。アジャイル開発という言葉に縛られていては本末転倒です。アジャイル開発という言葉に惑わされず、常によりよい方法を追求する。それが我々開発者の役割です。物事の本質は実にシンプルなのです。