Scrum,最常见的互联网产品研发流程
Scrum 是用于开发、交付和持续支持复杂产品的一个框架,是一个增量的、迭代的开发过程。其最早起源于软件开发项目,但它适用于任何复杂的或是创新性的项目。
最常见的互联网产品研发方式毋庸置疑是敏捷化、迭代化的流程。大概在 2010 年之前,大部分软件研发还是传统的瀑布式研发,半年、1 年一个版本。比如 Office、Photoshop,那时候甚至要跑去电脑城买光盘回家安装。回看马化腾和雷军早期创业的相关书籍,有很多内容都描述过类似的情景。
瀑布式研发模式,要求在开发前要进行充分的调研、分析和论证,否则很可能浪费大量的资源。但随着国外迭代思维和工具的快速传入,时至今日,大部分互联网公司已经围绕着快速迭代的思维进行着研发流程管理,连 Office、iOS、Photoshop 具有如此繁杂功能的软件也可以通过网络随时更新。
发生这些转变背后的原因主要有 3 个,分别是研发流程的创新、功能验证的要求以及市场竞争的加剧:
1、研发流程的创新
瀑布式研发伴随着较大风险,如果产品有漏洞或者安装问题,往往面临着产品召回和成本巨大的线下修复。随着互联网接入服务,也就是我们过去常说的 “宽带办理”,门槛降低,以及无线网络(WiFi)的大量普及,通过快速迭代作为研发流程开始有了土壤。
2、功能验证的要求
快速迭代这种研发流程被验证可行,意味着互联网产品可以在更短的时间内进行频繁的增量更新(回想一下,是不是手机里的 App 好像无时不刻都在更新?),高频的增量更新提升了用户反馈的效率。可能这周的 一个想法,在下周就能上线并得到用户反馈,而不必像过去那样过度谨慎。加上现在上线前需要经过的环境测试和灰度测试,试错成本比以往低很多。
3、市场竞争的加剧
只要有一家公司采用了快速迭代的方式并获得了成功,那么未来行业使用同一方法就只是时间问题。更快的版本更新可以更快地提升产品满意度,修补漏洞,提供用户迫切需要的功能。市场如战场,假如 A 公司采用快速迭代的方法,B 公司使用传统的瀑布式研发,即便两家公司旗鼓相当,但 A 公司的用户需求会被快速满足。倘若 A、B 公司产品都有重大的漏洞,响应速度在这里就起到了关键的作用。
那么,常见的选代方式(如:Scrum)是如何运作的呢?有哪些特点?网上有很多资料,这里就不再赘述了,更多的从我个人看法来介绍一下快速迭代的几个要点。
PS:为什么以 Scrum 作为例子?非安利,Scrum 只是一种工具,市面上有许多敏捷工具和敏捷方法,但 Scrum 相对来说具有代表性。
Scrum 的历史最早可以追溯到 1986 年,可以说,它作为一种工具已经诞生了很久。那为什么在近几年这种方法变得如此热门?究其原因是因为互联网公司的经营理念不断变化,更加注重响应快、MVP 理性试验、数据化决策。换种说法,现在公司更注重 “小而美”。过去追求宏观叙事,讲求 “大而全” 的产品理念已经很难实现,那不妨就做行业中的核心,践行精益创业的理念。也因此,传统的瀑布流研发模式并不能支撑这种理念,Scrum 自然就被推到了台前。
推荐一篇文章: flomo 团队做客得到直播间,聊聊小而美的产品及创业
Scrum 的特点
Scrum,可以把这种产品研发流程想象为精益创业的具象化,特点是小而快。
团队规模小
亚马逊的两个披萨原则
在亚马逊早期,杰夫·贝佐斯制定了一个规则:每个内部团队都应该足够小,两个比萨饼就能解决伙食问题。这并不是要削减餐饮开支,就像亚马逊做的几乎所有事情一样,它专注于两个目 标:效率和可扩展性。前者是显而易见的。一个较小的团队,花在管理和让员工了解最新情况的时间会更少,而花在需要做的事情上的时间就更多了。但对亚马逊来说真正重要的是后者。
把一件事向 N 个人说清楚的难度是指数级的。想象一下,告诉一个人提升学习效率的办法,和告诉不同教育阶段的学生这个办法,哪个难度更大?很显然前者更容易被说服,后者则需要花更多的精力和时间去实现。更别提在这个过程中还需要因材施教,让每一个人都能理解你的办法。
因此小规模团队的沟通效率是很高的,在磨合度较高的团队,同事能够更快地理解你的意图。对于大团队来说,需要 PMO 或者计划软件(比如 Jira、禅道)来管理进度。现在只需要一个在线看板就能够理清楚,或者在团队办公室的墙上贴上几张便签就足矣。但小团队也会受限于规模,产出的结果不如大团队,于是就有了以下第二、三个特点。
目标颗粒度小
团队的人力有限,产出必然也有限。在不考虑人力成本的情况下,可以通过配置多个团队并行工作,解决总量不足的问题。每个团队只需要关注自己正在实现的目标,而这些目标叠加起来就形成了一个完整的产品。