Lean Startupとユーザの真のニーズを学ぶ「学習プロセス」
"Lean Startup"は、不確実なビジネス環境の中で、新しい、競争力のあるサービスやビジネスを生み出すための手法です参考1。「ニーズがないものを作る無駄」を省き、新しいサービスやプロダクトを成功させるために、新しいサービスやプロダクトのアイディアを仮説検証する「最小限の製品(=MVP:Minimum Viable Product)」を使って、「実験による仮説検証」を行い、その実験を通じて「ユーザの真のニーズを学習」する「実装-測定-学習」のサイクルを「できる限り短い時間」で回します。"Lean Startup"においては、仮説をいかに早く検証し、成功に近づけるかが重要なポイントとなるわけです。成功に近づくよう軌道修正できるかどうか、間違った仮説から新しい仮説を立てられるかどうか、は「ユーザとその真のニーズをどれだけ理解できるか」にかかっています。これを学習プロセスと呼びます(顧客学習プロセスと呼ぶこともあります)。
学習プロセスを実現する"Canary Release(カナリアリリース)"
ユーザとそのニーズを知る方法として、従来はインタビューやアンケートなどの調査手法が使われてきました。このようなアプローチとLean Startupでいう「学習プロセス」の決定的な違いは、従来の調査手法は、「立案した仮説の精度が高いかどうかの検証」に過ぎないということです。ユーザから「○○というサービスに興味がある」という多数のインタビュー結果を得たとしても、仮説の域から出ることはできません。実際にサービスやプロダクトとして市場に投入され、実際にユーザが使うまでは、仮説が正しかったかどうかの検証はできないのです。検証までには多くのハードル(たとえば機能の作りこみや品質の作りこみ、性能やセキュリティのテストなど)があり、通常、膨大な時間を費やすことになります。そこで、昨今注目を集めている手法に"Canary Release"というものがあります。
"Canary Release"とは、簡単に言えば、ある新しいプロダクトやサービスの機能を「一部の先行ユーザ」に対してだけリリースする、という手法です(図)。いわゆる炭鉱のカナリアは、炭鉱においてしばしば発生するメタンや一酸化炭素といった窒息ガスや毒ガス早期発見のための警報として使用されてきました。これが"Canary Release"の名前の由来ですが、本手法は、Facebookがその開発手法として採用したことで有名になりました。尚、Facebook内では"Dark launch"と呼ばれているようです参考2。Canary Releaseを利用することにより、通常のリリースの前に、一部ユーザから新機能などに対するフィードバックを早期に得ることができます。また、もし新しい機能に不具合などがあった場合でも、カナリア環境にアクセスしていた一部ユーザのアクセス先を一般ユーザと同じに変更すれば、即座にサービスを復旧できます。
図:Canary Releaseの全体像
Canary Releaseを実現するためのITインフラ
ユーザやユーザの真のニーズを早期に得るための"Canary Release"ですが、従来の開発環境や商用環境だけではなく、新しくカナリア環境と呼ばれる"Canary Release"を実現するための環境が必要になってきます。特に、このカナリア環境では、頻繁に、素早く新しい機能やサービスをリリースしていくため、環境の準備や構築、運用を効率化していく必要があります。そこで重要となるのが"Infrastructure as Code参考3"という考え方です。カナリア環境の構築・運用をコード化、つまりプログラミングすることで、変わり続けるサービスや機能だけではなく、その環境までをも即座に提供していくことができるようになります。