少人数によるアジャイル開発の事例
なぜ今アジャイル開発か
今、世界的な不況の影響で多くの業界が打撃を受けています。それはIT業界も例外ではありません。ユーザー企業のIT投資予算の中でシステム開発を受託してきたベンダーにとっては、ユーザー企業がうける打撃がそのままIT投資の縮小という形で反映してくることになります。こうした情勢の中、なぜ今アジャイルについて知る必要があるのでしょうか。
昨今の経済状況から、多くの企業で「SaaS(Software as a Service)」利用の検討が始まっています。SaaSとは、インターネット経由でソフトウエアの機能を提供し、ユーザーはシステムを所有せずにブラウザーを通じて利用できるというソフトウエアの提供形態の一種です。最近だとSalesforceが特に有名ですし、筆者の経営するソニックガーデンでもSaaS事業を先日開始しました(http://www.skipaas.jp/)。
SaaSのユーザー企業にとっての最大のメリットは、初期費用を圧倒的に低く抑えることができ、利用開始までに時間がかからない、という点です。従来の情報システムでは、システムが完成するまで時間がかかる上、完成後も実際に使いものになるかどうかわからないということも少なくありませんでした。そんなリスクをとらなければいけない自社システム開発に比べ、SaaSの場合、試しに始めたとしても利用した分だけの支払いで済むという利点もあり、注目されています。
SaaSを採用することで、システムは「投資して回収する」という考え方から、「経費で必要なだけ利用する」という考え方に変えることができるのです。
そんな注目度の高いSaaSですが、実は、SaaS提供事業者の開発スタイルとして、アジャイル開発は非常に相性が良いのです。先ほど例にあげたSalesforceでも、アジャイル開発を採用したことをアジャイルカンファレンスで発表しています(http://www.slideshare.net/sgreene/salesforcecom-agile-transformation-agile-2007-conference)。
また、サービス提供という意味では、ブログやショッピングモールなどのインターネットサービスを提供する会社も、SaaS事業者と同じく、アジャイル開発に似たスタイルで進めている会社は多いと聞きます。もちろん、本連載の事例の題材にするソニックガーデンでもアジャイル開発を採用しています。
アプリケーションサービス開発に向くアジャイル開発
では、なぜアジャイル開発は、SaaS事業者やインターネットサービス会社において採用されるのでしょう。そこに共通するのは、納品型のビジネスではなくサービス提供型のビジネスであるという点です。SaaS事業者やインターネットサービス会社では、構築するソフトウエアそのものは、顧客に提出する訳ではなく、あくまでソフトウエアを動かして使えるアプリケーションサービスを提供しています。そこでは、ソフトウエアを完成させるだけでは利益は出ず、多くのユーザーに使ってもらうことで初めて利益を得ることができます。そのビジネスでは、以下のような特徴があります。
・市場のニーズにあわせて、必要な機能が変化していく(決められたものを作るだけではない)
・事業の継続とともに、機能の追加・改善を繰り返す(一度完成して終わりではない)
・工夫して生産性を上げて、構築の工数を減らすと利益が出る(人月で利益が出る訳ではない)
・新しい技術を採用して、提供することで競合に勝てるかもしれない(技術力が競争力になる)
こうした特性のビジネスの中で、受託開発の多くが採用しているウォーターフォールと呼ばれるような開発スタイルを採用してしまうと、うまくいかないのは容易に想像できます。逆に、アジャイル開発は非常に相性が良いと言えます。
アジャイル開発の本質は、繰り返し型の開発を行いつつ、ビジネス環境の変化に対応するソフトウエアを提供することに価値を置いています。また、工夫や改善などを行い、開発に参加する人の成長を重視し、変化を起こさないようにベクトルを働かせるのでなく、起きてしまう変化を人のもつ力をより生かすことで乗り越えようという思想がある点も、先ほどのアプリケーションサービス企業の行うビジネスとうまく合致します。
このように、SaaSやクラウドが注目される今こそ、その中での開発に向いているアジャイル開発を知ることは、アプリケーションサービス企業で働くことを考えている開発者だけでなく、今後は社内システムもプライベートクラウドや、社内SaaSという形で広がる可能性がありますので、今は受託開発をしている多くの開発者にとっても価値のあることだと考えています。本連載が、今こそあらためてアジャイル開発を知るきっかけになると幸いです。