ソフトウェアの作り方が変わり始めている
ソフトウェア開発の現場は世界的に大きく変わろうとしている。従来は、作るソフトウェアについての要求を事前にすべて収集・把握し、それを分析・設計・実装し、最後に全体テストをする、といういわゆる「ウォーターフォール」手法で進められてきた。基本的に各工程間の後戻りを許さず、ドキュメントで工程間を伝達する手法だ。
現在は「アジャイル」と総称される一群の手法の採用が進んできている。アジャイルとは、優先順位が高い機能から動くものを作り始めて短い時間で一部を完成させ、それを顧客やユーザーに早く見てもらい、フィードバックを受けながらソフトウェアを成長させる手法だ。「スクラム」は、その一群のアジャイルの中で最も普及した具体手法の1つである。
米国で発祥したこの新しい手法は、欧米を中心に世界的広がりを見せている。
アジャイル開発がここまで広まったのは、従来の手法がビジネスの変化の速さについて行けなくなったことが大きい。開発を始めて終わるまでに、既に市場環境が変わってしまっていることがある。
インターネットやクラウドを利用したサービスのソフトウェア開発が増えてきたことも大きな理由だと考えられる。この世界では、徐々に顧客を獲得しながらサービスを拡大するのが一般的だ。
例えば、営業支援ツールをWebサービスとして提供するセールスフォース・ドットコムは、米国西海岸のスタートアップから成長した企業だが、2006年にスクラムを全社的に採用して一気にサービス開発のスピードを上げた。また、グーグル、フェイスブックといった新興Webサービス企業では、内部で自然にアジャイル開発が行われている。
スピード感が求められるビジネス環境
アジャイルを開発手法として採用する流れは、日本でも最近になって大きく進み、特に楽天やリクルートに代表されるWebサービスをコア事業としている業種やネットゲーム業界を中心に、広まりつつある。ソーシャルネットワーク、クラウド、スマートフォンなどがビジネスを取り巻く環境を激変させ、既存のビジネスモデルは生き残りを賭けて抜本的な変化が求められている。
今まで世の中に存在しないソフトウェアを作る、それも同業他社より速く・・・。
このような、ビジネスにスピード感が求められる環境、ビジネスが不確実で先読みすることが難しい環境では、ビジネスを作る側と技術を担当する側が協力してソリューションを考えなければならない。そして、すばやくリリースしてユーザーを獲得すること、ユーザーの反応を見ながらソフトウェアを追加・改変していくことが求められる。この分野でのアジャイル普及の波は、もはや止められないであろう。
従来からある企業システムの受託開発の分野にも、アジャイルの波は徐々に及んでいる。現在SI(システムインテグレーション)と呼ばれる業界でも、クラウドの台頭によるビジネスの変化やスピード感重視の流れから、発注側のユーザー企業情報システム部門の期待に、ベンダー側が柔軟に応えられなくなってきている。
ベンダー側では、コスト削減、短工期化、品質確保の要請から、長時間残業など職場環境の悪化が起きている。たび重なる仕様変更に、技術者が疲弊している開発現場も多い。多重になった下請け構造の見直しや、他産業へのエンジニアの流出などから、今、大きな構造改革が起きようとしている。
富士通、NEC、日立、NTTデータ、東芝、ソニー、パナソニックといった日本を代表する従来からの大企業の中でもアジャイルが注目され始めている。顧客の要求に柔軟に応えられる手法として、あるいは品質を開発初期から確保する手法として、アジャイルは脚光を浴びている。また、初期リリースのスピードを重視する手法として、開発現場からやる気と知恵を引き出し、人とチームを育てる「場作り」の手法として、アジャイルへの期待が高まっている。
ウォーターフォールとアジャイルの違い
では、あらためてアジャイルと呼ばれるソフトウェア開発手法を説明しよう。従来のソフトウェア開発の現場では、ウォーターフォール開発が主流だった。これに対して、アジャイル開発では短い期間(1週間から1カ月)を区切って、その中ですべての手順を踏んで動作する完成品の一部を作る。そしてそれを繰り返す(図1-1)。
※ 配信先のサイトで図が表示されない場合は、こちらでご覧ください。http://jbpress.ismedia.jp/articles/-/64834
ウォーターフォールでは、要求範囲(スコープ)の全体を最初に「分析」(何を作るかを理解)し、その結果に基づいて「設計」(どのように作るかを検討)し、その設計をコードとして「実装」(実際にソフトウェアを作成)し、最後に「テスト」(作られたものを確認)する。プロジェクトの最後にようやく動くものができあがるため、顧客やユーザーは最後まで動くものが見えない。
紙に書かれた文書で仕様を理解しなくてはならず、誤解も生じやすい。さらに、要求を出してから実際に使えるようになるまで長い時間がかかるため、そもそもの要求がソフトウェアの完成時点でもう古くなってしまうことさえある。
これに対しアジャイル開発では、分析、設計、実装、テストを短い期間で並列に行い、それを繰り返す。顧客にとって価値の高い機能から開発し、短い間隔で動くソフトウェアを完成させる。文書や報告ではなく、動くソフトウェアを一定間隔で作り、それを成長させるのだ。開発を通して顧客やユーザーの意見をフィードバックしながら進める。途中で修正が入るのは普通だし、機能の優先順位も途中で変更される。
ケーキ作りを想像していただきたい。1層目のスポンジケーキを作り、クリームを塗り、2層目を重ね、最後にクリームとイチゴでデコレーションしてホールケーキを完成させる。これが従来の作り方、すなわちウォーターフォールだ。実際にケーキとして食べられるのは最後の段階になる(図1-2)。
これに対して、アジャイルでは、いきなりショートケーキを作る。顧客やユーザーの目から見て「食べられるもの」を、小さく縦スライスに作ってつないでいくことになる。こうすることで、顧客は価値(食べられるもの)を早期に手に取れるようになる。
また、開発中の仕掛品(在庫)の量を少なくすることができる。ホールケーキを作ってしまって、それが売れ残ると大きなムダ(投資の損失)になる。しかし、ショートケーキごとに作ることができれば、いつでも新鮮なケーキを顧客に適正な価格で提供することができるというわけだ。
新機能の提供スピードが徐々に遅く
アジャイル開発とは何か。背景を実感していただくために、米国でのスクラムの成功事例を取り上げよう。
米国サンフランシスコに拠点を持つセールスフォース・ドットコムは、営業支援、顧客管理ツールをインターネット上のWebサービスとして提供している。1999年に設立され、2004年に株式公開を果たした同社は、「ソーシャルエンタープライズへのシフト」というコンセプトの下、顧客企業の情報システム変革をWebサービスによって支援しているいわゆるドットコム企業だ。
2006年頃、これまで開発してきた大きなソフトウェア資産が複雑化し、新機能を顧客へ提供するスピードがどんどん落ちてきていたという。これまでは年4回製品をバージョンアップしてきたが、開発速度が落ち、年1回しかリリースできない状態になっていた。
この時点で、セールスフォースは3万5000社の顧客、90万人の利用者を持つまでに成長していたが、同時に開発部のエンジニア数は年率50%のペースで増加していたのだから、このような問題にぶち当たるのは無理もない。彼らが直面した問題は、開発現場によくある現象となって現れた。
■最初の見積が不正確で、完成期限が守れず、テスト期間が短縮されてしまう
■開発全体の進捗が不透明で、現状が正確につかめない
■機能に対する修正や変更のフィードバックが、開発の最後になって届く
■スケジュールが遅延し、リリース日の予測が困難
■チームが肥大化するにつれ、徐々に生産性が落ちてきた
同社がスクラムによるアジャイル開発を始める前は、ウォーターフォールを基本とする開発手法を採用していた。また、開発体制は、プロジェクト管理チーム、製品管理チーム、UX(ユーザー体験)チーム、開発チーム、品質管理チーム、ドキュメントチーム、のように専門ごとに組織されていた。
製品管理チームが機能仕様を書き、UXチームがプロトタイプとユーザーインターフェイスを作る。開発チームは技術的な仕様とコードを書き、品質管理チームが機能仕様をテストする。そしてドキュメントチームが機能をマニュアルなどに文書化する、といった具合だ。プロジェクト管理チームは、全体を見ながら組織全体をまとめる役割を担っている。
組織の肥大化でウォーターフォール開発が破綻
このようなウォーターフォールの開発は最初うまくいっていたが、組織があまりにも早く大きくなったために破綻してしまった。そして、前述のような問題が頻発するようになり、CEOのマーク・ベニオフは「会社の開発全体を、スクラムで変革する」という決断をしたのだ。
マーク・ベニオフと共同創設者で開発部長のパーカー・ハリスは、全体の変革プログラムを主導し、全社で一丸となって組織改革を進めたという。専門ごとに分断された組織の壁を壊し、組織横断型のプロジェクトチームを作り、チームを大きな部屋に集めた。そして、スクラムを使って、動くソフトウェアを30日ごとに作り続けるようにしたのだ。
その結果、製品のバージョンアップのサイクルは元の年4回ペースに戻った。溜まっていた欠陥の負債もなくなり、リリース期日も守れるようになったという。
特筆したいのは、この大規模なスクラム採用の後に行われた社内アンケートの結果だ。それによると、87%が自分たちのチームを「自己組織化されている」と答え、80%が新しい手法(スクラム)が「チームの生産性を上げた」と答えたという。ビジネスのスピードに追随するという目的だけではなく、自律的なチームや組織を作ると手法としてもスクラムが注目された例である。
後編では、市場の変化スピードにビジネスが追いつくのに、アジャイルが適している理由を解説する