ウォーターフォールとアジャイル

新規事業のプロジェクトマネジメント手法を考える

私はシステム開発のプロフェッショナルではないので、専門的な話は、その界隈の専門書を読んでいただくのが良いと思うが、ウォーターフォールとアジャイルというシステム開発の代表的な2つの手法の考え方は、新規事業開発のプロジェクトマネジメントにおいても十分に有益な考え方だと思うので、この2つのプロジェクトマネジメントの手法を用いて新規事業開発プロジェクトのマネジメントの在り方について考えてみたい。

詳細は、上記でリンクを張ったページが分かりやすく、かつ、詳細に説明されているのでそちらを読んでいただいた方がよいと思うが、2つの開発手法を時間がない方のために、超簡単に説明する。この2つの手法は、プロジェクトの開発プロセスの回し方の違いである。通常のシステム開発というのは、要件定義→外部仕様設計→内部仕様設計→コーディング→テスト→デバック→ローンチのようなプロセスで進む。伝統的なシステム開発マネジメント手法であるウォーターフォール型開発では、この要件定義からローンチまでのプロセスをひとつずつ順番に終わらせてから次の工程に進むというやり方をとる。一方アジャイル開発というのは、ひとつのサービスの開発項目を細切れに分けて、要件定義~ローンチのプロセスを細分化して、短期間で一連のプロセスを何度も何度も回しながらひとつのシステムを完成させていくという手法である。

では、なぜこのような2つの手法が生まれてきたのであろうか?それを理解するためには、先に存在していたウォーターフォールの良い点/悪い点を理解することが一番の手助けになるであろう。

まず、ウォーターフォールの良い点は、①プロジェクトの管理がシンプルでコントロールしやすい、②コーディングを始める前に外部/内部仕様を詳細に設計して不整合が起きないように詰めるため、実装段階の不整合が起きにくいという2点が代表的な所だと思われる。このため、金融系のシステムのように、大規模で、不具合が出ると致命的なお堅いビジネスのシステムにはウォーターフォール型の手法が採用されることが多い。また、開発メンバーのスキル習熟度が低い場合などは、ウォーターフォール型の方がチームのマネジメントがしやすいというメリットがあるため、そのような理由でこの手法が用いられることも多い。

では、悪い側面にはどのようなものがあるのでろうか?最も代表的なポイントは、一度決めてしまった仕様の変更をするのが難しい事である。特に大規模なシステムの場合、一度決めた設計を前提としてコーディングの各パートにタスクを分割して、完成したパーツを組み合わせるため、その設計を変更すると調整作業に膨大な時間がかかってしまう可能性が高くなってしまう。2つ目のデメリットは、もちろん両方理想的に管理が出来る前提であるが、ウォーターフォールは、仕様変更など起こらないように一つ一つのプロセスを綿密に行う必要があるため、全体のプロジェクト期間が長くなりがちであるという事である。

アジャイル開発という手法は、後から出てきた開発手法なので、当然ウォーターフォールの欠点を解決するために登場した。まず、仕様変更はあるという前提で、要件定義~ローンチまでのプロセスを何度も繰り返して、当初の想定と異なる要望が出てきてもある程度柔軟に対応出来るようにしている。また、一つ一つの開発サイクルを小規模にすることによって、システムが完成したものからサービスとして部分的にローンチするなどの柔軟性も確保することが可能になる。

必ずしも新しいアジャイルが正解なわけでもない

感の良い読者の方であれば、この説明を読んでピンとくると思うが、当然アジャイル開発の手法の方が、非常にインターネット系のサービスを開発するにはFitしそうな感じがする。私が大好きな、「小さな実験を、早く、意図を持って」を実施するのにうってつけの考え方であるからである。

このため、システム開発の現場で、若いエンジニアにプロジェクトをウォーターフォールでやろうと提案すると、特にWeb業界では酷く古臭いような印象を持たれがちである。しかし、アジャイルにも悪い側面が裏返しとして当然あるわけなので、アジャイルが新しいから絶対的に良いのではなく、状況によって良し悪しというのは変わるはずである。そして、私が新規事業のパートでこの2つの開発手法について持ち出した理由は、この考え方は新規事業開発のプロジェクトマネジメントの手法としても非常に有効であると考えるからである。

ちなみに、ここからの説明は、体系的な分類に基づいた一般論であって、個々のプロジェクトというのはそれ程分類通りにくっきり線引き出来るわけではないので、具体的に考えるときは、双方の手法の良し悪しを深く検討したうえで、正しい手法を選択していただければと思う。

2つの開発手法の最大の違いは、一連の開発プロセスの後戻りがしやすいかどうかの違いである。では、どちらの手法を用いてプロジェクト管理をするかどうか決定する要因は、前半工程で作るべきものの完成形をどこまできっちり設計出来るかどうかというのが最も重要なポイントであると言える。

こういうことをいうと、「そもそも完成させたいものが分かっていないのにものを作ることなんてできるわけはないだろう」という意見が聞こえそうである。また、別の方角からは、「そもそも新規事業なんだから最初からどうやったら上手くいくのか何分かるわけはないだろう。それがわかるなら苦労しない。」という声も聞こえてきそうである。

では、どちらが正しいのであろうか?これも答えは新規事業の内容によるということになる。

新規事業のタイプ別に適切なマネジメント手法を考える

ここで、新規事業の話をしたときの最初の議論を思い出してもらいたい。

新規性と既存事業との関連性で4象限に分けたチャートである。まだ読んでいない方は、こちらこちらをまず読んでいただきたい。この4象限のうち実際に発生するケースが多いのは②、③なので、この2つを例にここからの議論は進めたい。

私が勝手に想像した2つの天の声の議論のポイントは、作り始めの前半工程の段階で、作りたいものを確定させられるかどうかに、様々な意見、状況があることを表している。その違いがどこから生まれるのかと言えば、答えはシンプルで、作りたいものに高い新規性があるか否かの違いである。少し具体例で考えてみよう。

周辺事業創造をモバイルゲームの事例で

②周辺事業創造型の事例で以前紹介した事業は老舗ゲーム会社におけるモバイルゲーム事業であった。この事業で最も重要なプロジェクトの成否のポイントは、顧客に受け入れられる面白いモバイルゲームを作るということである。しかしモバイルゲームという市場が存在しない、もしくは、大規模に成功していない段階で、この面白いゲームがどのようなものであるのか考え、説明出来るかといわれれば、ほぼ間違いなく無理である。もし、そんなことが出来る人がいるとしても、その人は神か、百歩譲っても天才なので、少なくとも私のような普通の人間には事例として参考にならない。なぜなら、私がこれから神か天才に生まれ変わるという手法には、再現性が全くないからである。

では、作りたいものの正解が分からないからといって、そのような新規事業は取り組んではいけないのであろうか?私はそうは思わない。2010年当時の状況というのは、携帯電話の普及が9割以上と一巡し、これからスマートフォンと4G通信が普及しようというモバイル市場の成長期である。しかも、スマートフォンのコンピューターとしての処理速度もどんどん強力になり、通信速度も4Gで高速になることが見込まれている状況である。しかも、携帯電話は殆どの人が常に身近に持っている。このようなこれまでにない携帯電話というコンピューターにゲームを載せてみたら新しい市場が出来るのではないかと考えることは、荒唐無稽なアイディアであろうか?もちろん、PCや、家庭用ゲーム機にくらべ貧弱なマシンパワーと光ファイバーより貧弱な無線回線の通信速度から、コアなゲームファンの中にはチープなアイディアだと思った人もいたであろう。しかし、新しいビジネスというのは大抵そんなものである。ある程度ロジカルに考えられる人であれば、何時かはわからないし、どのくらいの規模になるかも分からないが、モバイルゲーム市場が将来ひとつの市場として立ち上がるだろうと考えることは、ごく自然な事であると思う。

このように考えれば、新規性の高い新規事業というのは、事業を始めた段階で最終系が見えないということは、普通にあり得るのだということがお判りいただけるのではないだろうか?このようなケースでは、プロジェクトはアジャイル的な方式にならざるを得ない。上記のモバイルゲームの新規事業プロジェクトでは、当初小規模な予算で、小規模なモバイルゲームのアイディアをいくつも開発をして市場テストを繰り返す中で、正解を見つけ出すというプロセスを繰り返していた。正に思想としてはアジャイル型プロジェクト管理である。

周辺事業拡大を楽天カードの事例で

では、ここで上げたモバイルゲーム事業の立上げのように、新規事業というのは常に正解の見えない暗中模索みたいなものばかりなのかといえばそうではない。③周辺事業拡大の事例として紹介したのは楽天カードの事例であった。2008年当時、クレジットカードという事業自体はハッキリ言って全く新しくもなんともない事業であった。大人であれば多くの人は財布に1枚程度は入っていたと思われる。楽天カードはクレジットカードという事業に成功のポイントがあったわけではなく、楽天ポイントを高い還元率でユーザーに提供するという付帯サービスの差別化と、その差別化されたサービスを楽天市場の巨大なユーザーベースにCRMマーケティングで低単価で顧客獲得をするというアイディアで大成功したサービスである。

では、貴方がこの楽天カードの立上げ責任者だとして、この迄述べたアイディアを実現するために、ある程度初期の段階で完成したいサービスを想像し、設計に落とし込むことは出来るであろうか?ハッキリ言って、これをYesと答えられないのであれば、その人は残念ながら新規事業の開発に向いていないと思う。クレジットカードのように出来上がったサービスの付加価値部分だけカスタマイズするサービスデザインであれば、既存競合企業のサービスを研究して、どこを一緒にして、どこを変えるかを決めれば、ある程度詳細な設計にまでおとしこむことは出来なければいけない。

つまり、周辺事業拡大のように、事業の新規性が低く、参考になるサービスが世の中に存在する場合は、サービスの設計を事前に決めることはそれ程困難な作業ではないのだ。

このような場合は、ウォーターフォール型のように、事前に少数のチームで事業推進プランの詳細を固めて、その詳細まで詰めた段階で一気に人員等のリソースを投入して、一気に事業を構築、オペレーションへの落とし込みまでしてしまう方が、おそらく効率的に事業が立ち上がるのだ。

新規事業のタイプを理解して適切なプロジェクトマネジメント手法の採用を!

ビジネスというのは、それぞれの置かれた状況において、その問題を解決するのに最適な手法を選ぶべきもので、手法の新旧でどちらが良い悪いという絶対値的な争いをする類のものではない。新規事業の開発のプロジェクト管理においても、それは同様である。

新規事業の開発のプロジェクト管理において、最も重要な判断ポイントはその事業の新規性の程度である。その意味でも、私が紹介した4象限のどこに自分のプロジェクトが分類できるのかを理解しておくことは非常に重要である。