「要件定義を無くそう!」…不毛な議論を巻き起こす「アジャイル開発への誤解」とは
要件定義“不要論”を招く「アジャイル開発への誤解」
「要件定義を無くすことは可能か?」という議論の背景について佐藤氏は、アジャイル開発に対する誤解があると指摘する。 「アジャイル開発とは要件定義をしなくても進められるアプローチである、という誤解がしばしば見受けられますね。ビジネス側としては、素早く動いてほしい、早く顧客に提供したいというニーズが強く、開発側も要件定義のやり方がよく分からない、さまざまなステークホルダーとコミュニケーションを図りながら合意形成を得ることが苦手だ、という意識があります。そのため、『アジャイル開発だから要件定義が不要』だと都合よく解釈してしまうケースが生まれてしまうのでしょう」(佐藤氏) しかし、こうした考え方は短期的な視点に過ぎない。たとえアジャイル開発にせよ、要件定義を省略したとすれば、短期的にはスピード感を持って進められるかもしれないが、長期的にはプロジェクトのどこかで失敗やトラブルが発生しやすくなるというリスクを抱えてしまう。 さらに、要件定義はビジネス側と開発側双方にとって不得意な分野であることも問題を複雑にしている。ビジネス側は業務には精通しているが、システムの詳細は理解していない。一方、開発側はシステムには詳しいが、業務や事業全体を把握していないことが多い。 だからと言って、要件定義を省略してしまえば、双方の理解に関するギャップが埋まらず、大きなトラブルへと発展しかねないのだ。 「このようなリスクを回避するためには、CIOのように視座が高く、全体を見渡して意見の言える立場の人が、適切な判断を下して、必要であれば要件定義の実施を強く指示することがますます重要になってきます」(佐藤氏)
「要件定義を無くす」と何が起きる?
では、要件定義を無くしてしまった場合、どのような事態が発生するのだろうか? 佐藤氏は、要件定義を無くしたことで発生するさまざまな問題やリスクについて次のように説明する。 「要件定義を省略した場合、開発に入ってから手探りで設計や実装を進めることになります。これにより、開発生産性はむしろ大きく低下するとともに、ムダな機能を作り込んでしまい、完成間近になってから大規模な作り直しが必要になるなど、手戻り工数が増え、結果として大きなリスクが生じることになります。つまり、要件定義を省略することは、時間とコストが膨大に膨らんでしまうリスクへとつながりやすいのです」(佐藤氏) 前述したように、要件定義とは、ものづくりの「What」に相当する部分であり、このプロセスを省略してしまうと、設計や実装の段階で、開発者が何を作れば良いか分からず、その都度確認が必要になる。これが原因となり、生産性が著しく低下し、プロジェクト全体が混乱する可能性が高まるのである。 「また、ノーコードでの開発やエンドユーザーコンピューティング(EUC)に依存しすぎると、システムがサイロ化し、ブラックボックス化するリスクもあります」(佐藤氏)