精益创业和敏捷
文 / 施韵涛
本文结合热销图书《精益创业》中的核心观点,清楚地阐释了精益创业和敏捷之间的内在联系,并在文章结尾得出结论:精益创业和敏捷开发双剑合璧,才是创新型企业成功进阶的利器。
来自硅谷的精益创业热潮
2011年9月,一本题为《精益创业》(The LeanStartup)的书风靡硅谷,不仅仅是硅谷的创业者,很多产品和技术人员,甚至管理层人员也都人手一本,开始琢磨精益创业理念。该书的作者Eric Ries,一位曾经的硅谷创业者,成为了热点人物,被邀请到各种场合,发表关于精益创业的演讲。各种有关精益创业的讲座、课程和工作室(Workshop)也应运而生。不久前有一个“精益创业画布”(Lean Startup Canvas)的活动在上海举办,吸引了众多国内创业人员的参与。
新瓶旧酒还是新兴学说?
在回答这个问题之前。让我们先回顾一下目前常用的产品设计方法。
一个新产品的推出,可能是灵机一动的产物,也可能是大量市场调查的结果,不过能否被市场接受,只有用户说了才算。
有鉴于此,很多软件企业和互联网企业采用了“产品原型”或者“概念验证” 的方式。在早期搜集用户的反馈,从某种程度上降低了产品方向性错误的风险。然而,产品原型和概念设计体现的是当时对用户和市场的理解,有些关键需求可能没有在产品原型中体现;在快速变化的市场面前,当初被认可的设计有可能很快就不再适合。
以上这些方法的局限性,使得企业依然要承担很大的产品设计风险。有没有一种方式,能以市场和用户为导向,快速灵活地根据用户需要,适时调整设计方向,从而做出为市场认可的产品呢?有人可能很快回答:敏捷方法。但这样的回答只是部分正确。
我们先来看看精益创业是如何应对这些挑战的。
Eric Ries在他的书中指出,精益创业的关键在于避免因路线错误而造成巨大浪费,通过建立一种开发、评估、学习(Build、Measure、Learn)的文化和机制,快速假设、快速验证、快速调整,有序地进行产品演进和开发。
这里的一个重要前提假设是:我们不知道用户真正需要什么,我们也不清楚适合用户的产品或方案什么。因此,我们来做出一些假设,通过验证这些假设,来找到正确的方向。很显然,我们要作出的第一个假设就是“用户假设”— 假设用户有着某种需要。为什么用户会有某种特定的需要呢?这就引出了我们要做的第二个假设— “问题假设”— 假定用户遇到了问题(“痛点”)。有了问题,自然会有第三个假设— “方案假设”— 假设我们的方案能解决用户的问题。在我们的精益创业课程中,经常会用到一个例子来说明这三种假设的关系(如表1所示)。这个例子是设计一种打扮宠物的工具。
从这个例子可以看出,产品是否有市场,关键在于三大假设是否成立,其中任何一个被推翻, 都将颠覆原有的产品方向。 《精益创业》把验证用户假设的过程,称为“客户开发(CustomerDevelopment)”和“验证学习(ValidatedLearning)” 。还是以宠物打扮工具为例,说明一下验证假设的方法(如表2所示)。
可以看出,验证假设包含技术的和非技术的方法。最小产品集合(MVP)与产品原型的概念类似,其他市场调查、数据分析及用户访谈等方法,都是高效低成本的有效方式。精益创业主张尽量用非技术方式,经济快速地验证假设,及时作出变化和调整。一次验证一个假设。比如,一旦抽样调查的结果显示大部分宠物主没有给宠物购置衣物和打扮的习惯,就要立刻考虑是否还要继续这个产品。
当用户假设和问题假设得到相当程度的验证时,就可以开始定义并设计开发MVP了。《精益创业》特别强调,MVP不仅存在于产品早期,第一个MVP即使得到用户认可,也不意味着后续的设计和开发就要完全按照第一个MVP的思路走。相反,只有持续不断地通过迭代式演进,持续收集最终用户的反馈,不断调整产品设计、架构、定位和商业模式甚至是销售渠道,才可能最终做出成功的产品。换句话说,MVP是一个系列的产出,在产品的不同阶段,都会有相应的MVP。在整个过程中,不断地调整和变化(Pivot)是关键。
图1中的 “数据”指的是各种市场和用户反馈的数据。学习的过程就是根据反馈调整创意和设计的过程。经过验证的学习,就是精益创业的核心理念之一— Validated Learning。
精益创业 vs.敏捷— 流派之争还是双剑合璧?
敏捷开发以人为核心,以价值为驱动,通过迭代、循序渐进的方式开发软件产品。在开发过程中,强调每个迭代都产生可工作的软件供用户反馈,并及时作出调整。为了做到这一点,敏捷方法通过测试驱动开发(TDD)、持续集成(CI)、结对编程(Pair Programming)、重构(Refactoring)等极限编程(XP)实践来确保高质量软件的及时交付。敏捷方法所倡导的可工作软件、迭代开发和持续反馈的理念与精益创业所追求的MVP、步步为营、不断试错的精神具有很高的契合度。但两者又不尽相同,以下是前面的问题答案“部分正确”的原因。
首先,两者的侧重点不同。精益创业的目标是快速、低成本地验证各种和产品设计相关的假设,避免造成产品上市后无人问津的后果。而敏捷方法的目标是通过迭代式开发,以一系列工程实践(XP)为基础,交付出高质量的软件。
其次,两者要解决的问题也不同。精益创业要回答应该做什么产品的问题,而敏捷要解决的是如何做好产品的问题。精益创业的各种实践,假设、验证、测量、调整等,都是围绕着“什么是用户真正需要的产品”展开的,其中大量的是非技术性的实践;而敏捷方法,除了迭代开发、敏捷 发布计划、回顾等管理实践外,还有大量的工程实践,为的是做出高质量的产品。
从产品的生命周期看,精益创业更侧重前期的客户开发(Customer Development),通过发掘客户(Customer Discovery)和验证客户(CustomerValidation),来找到产品准确的市场定位和符合用户要求的设计。敏捷方法通常是在产品定位相对清晰之后,通过1~2周的快速启动(QuickStart),制定出迭代开发计划,然后在开发过程中逐渐完善需求。
既然精益创业和敏捷有这么多的差异,是否能认为精益创业是颠覆敏捷的新方法呢?在精益创业的理念推出后,的确有人提出了“敏捷已经过时,现在进入精益创业时代!”的口号。我认为,敏捷非但没有过时,反而因为精益创业的提出,获得了新的动力。如果说敏捷方法是指导企业如何用正确的方法生产产品,那么精益创业是教大家如何找出正确的产品来生产。精益创业和敏捷结合,就是一个完整的方法论:“如何用正确的方法来生产正确的产品”。敏捷是精益创业的自然延伸,精益创业是敏捷的自然拓展。一个能成功实践精益创业的企业,前提是它已经足够敏捷,否则企业无法落地经过验证的创意,甚至不能有效地小步快跑,完成持续验证的过程。
价值回归— 一个现实中精益创业和敏捷开发相结合的故事
REA(www.realestate.com.au)是澳大利亚最大的房地产垂直搜索和广告平台,几年前成功实现了敏捷转型。搜索和相关广告业务的成功,使REA产生了利用长尾客户拓展业务方向的想法。落实这一策略的方向之一,就是建立一个子站,展示各种房屋的内部装修,以吸引原有客户甚至是新客户来浏览精美的房屋装修图片,然后通过页面上的装修和家居广告赢利。经过半年多的努力,新的子站成功上线,但访问量和广告的有效点击低于预期,经过一段时间的运营后仍然没有明显起色,以致管理层产生了砍掉项目的想法。
这时,我们与REA项目组的主要成员,开始通过Workshop的形式,一起探讨产品策略。我们都认为精益创业的思路能解决当下的问题。
我们从网站的定位开始,对原有的各种假设一一进行梳理。例如,项目组原先设想买了房子的客户,应该有装修的需求,但网站的表现并不支持这一假设。当我们把当初的各种假设一一列在白板上,然后检验哪些经过了验证时,发现直到产品上线,很多还是停留在假设阶段,没有过任何的验证,更不用说如何结合REA的现有资源,发挥协同优势。思路明确后,Workshop的一项重要产出物也形成了:假设清单(Hypothesis List)。该清单既有策略层次的假设,例如购买房子的客户在装修时,是否来到这个子站寻求信息;是否有非购房用户直接来到这个子站?清单还包括了战术层次的假设:如用户社区的建立是否能帮助用户更好地作出采购决定。清单也有产品体验细节的假设:如图片分页浏览的体验是否好过图片搜索和过滤?
首批假设清单的建立,为下一步的行动定下了基调。这时,开始采用敏捷开发方式。当一个假设需要开发支持时,开发团队能很快完成高质量的代码,更通过一键式部署将功能很快上线,然后根据网站数据和用户反馈调整设计,再通过开发团队实现。整个设计、开发、部署、验证、调整的过程完美体现了图1所展现的循环,同时将每个循环的周期压缩到了最小,甚至以天而不是周来计算。随着越来越多经过精益创业方式验证的设计被采纳,网站表现开始改善,项目也得到了保留。
仅有好的工程实践不是做出好产品的充分条件,好的创意和验证体系,也不能保证设计都能完美实现,只有创意、验证加上工程实践的紧密结合,才能做出用户认可的好产品。精益创业和敏捷开发的双剑合璧,才是创新型企业成功进阶的利器。
原文刊于程序员杂志 2012年10月