アジャイル=俊敏

システム開発の一つのスタイルとしてアジャイル開発が良く知られるようになってきました。ビジネス系やWEB系のシステムを開発する場合には、多くの企業で一度は検討されているのではないでしょうか。アジャイルとは、「俊敏」という意味ですから、アジャイル開発は「俊敏にシステムを開発する」という意味になります。

では、なにをもって俊敏というのでしょう。システムの設計やコーディングをさっさとやっつけるという意味ではありません。それは、ユーザーの要望やユーザーにとっての価値をなるべく早く実現するという意味の俊敏さなのです。これは至極当たり前のことに聞こえますが、これまでのシステム開発のスタイルでは俊敏さを実現できなかったという反省から、あえて俊敏という言葉を開発スタイルの名前にしたのです。

これまでのスタイルあるいは流儀では俊敏さを実現できなかったという点は、システム開発の経験者ならだれでもある程度は同意できることに違いありません。たとえば、要求定義に時間がかかりすぎ、要求がやっと整理できた時にはその要求が陳腐化してしまったとか、技術者があまりにも多くの時間をドキュメントの作成に費やしているとか、要するに、重要そうには見えるもののビジネスの本筋からかけ離れた儀式のようなことに時間をかけすぎていたのではないかという反省から、アジャイル開発は生まれてきたのです。

ですから、アジャイル開発の目指すところに異を唱える人は、おそらく少ないでしょう。しかし、筆者は、アジャイル開発に一つの大きな矛盾を見出しています。それは、本来俊敏性を目指しているこの開発スタイルですが、それを現実の実用的な規模のプロジェクトとしてスタートさせることが容易ではないという点です。それは大きく2つの理由によります。

ステークホルダーの異なる理解

一つ目の理由は、プロジェクトの関係者、いわゆるステークホルダー(利害関係者)が、アジャイル開発について異なる理解をするからです。企業向けのビジネスシステムのようなある程度大きな規模の開発プロジェクトでは、ユーザー企業とシステム開発を担当する企業という、二つの大きなグループが存在することが一般的です。そしてこの二つのグループがアジャイル開発について異なる受け止め方をするのです。

ユーザー企業は、アジャイル開発の本来の目的に沿って、とにかく早く結果が出ることを望みます。具体的には、プロジェクトの初期から、画面や帳票と言った、プロジェクトの進捗が実感できる成果を望みます。それに対して開発側は、ユーザーにとっての価値というよりも、アジャイル開発の方法論やプロセスに注意を奪われ、そこに忠実にプロジェクトが進んでいるかに関心が向きがちです。この二つのベクトルのずれが顕在化する、あるいは予感されると、プロジェクトはボタンの掛け違え状態となり、早期にとん挫する、あるいは、スタートすることすらできないという状態に陥ります。

システムのベースとなる部分

二つ目の理由はより重要で、ユーザー側、開発側を問わずシステム開発の経験者なら誰しもが感ずる共通の疑問によるものです。その疑問は、「アジャイル開発においてシステムのベースとなる部分はいつ開発するのか」というものです。企業が利用する情報システムはそれなりの規模を持つものであり、巨大な建築構造物に似て、基礎的な部分をしっかり作ることなしには成り立ち得ないものです。システム開発のベテランであればあるほど、開発に当たっては入念な準備を欠かすことができないと考えています。例えば、入念な要件定義、ITアーキテクチャーと呼ばれるようなシステムの骨格についてのしっかりした設計などがそれにあたります。

アジャイル開発を支持する人々は、「その考え方こそが価値の実現を遅らせる原因なのだ」と主張するかもしれません。しかし、ベテランはやすやすとその考えに同意することはできません。そのため、アジャイル開発の計画は、その背景の何たるかに関わらず、そう簡単に始めることができない難しい課題になってしまうのです。

これでは、俊敏さを追求するプロジェクトを、俊敏に始めることができないわけで、アジャイル開発の持つひとつの矛盾であると言えるでしょう。

(この記事は、シナジー研究所代表取締役社長依田智夫の講演「リーンならありだ!」を部分的に解説しているものです)