登录

迭代

百科 > 创新管理 > 迭代

1.什么是迭代

迭代是一个重复反馈过程的活动,每一次迭代的结果都会作为下一次迭代的初始值,从而不断逼近目标或结果。

迭代本源于一种数学求解。一般的数学计算中,多是一次解决问题,称为直接法;但问题复杂,需要考虑很多未知量时,直接法方向错了就可能永远达不到终点。

这时,迭代法就发挥功效了。迭代从一个初始估计出发,寻找一系列近似解,发现一定的问题求解区间,从而达到解决问题的目的。遗传算法即为最常见的迭代法之一:模仿自然界生物进化机制,根据适者生存的原则,在每一代算法中,据个体在问题域中的适应度,产生一个近似解,从各种潜在的解决方案中逐渐产生一个近似最优解。例如在和谐号的车鼻设计中,减少风阻,达到最优的空气动力造型,靠的就是遗传算法运算。

如何把迭代的思想,应用到设计开发的规划、组织中呢?迭代开发同样借鉴了进化、淘汰的观点,整个开发工作被组织为一系列短周期项目,每一次迭代都包括了需求分析、设计、实现与测试,并以上次迭代的结果为起点再次开始迭代过程。

2.不确定环境下的迭代开发

传统的瀑布型开发,往往在需求调研完全结束,进行预算、规划后,开发工作才开始。在确定性高的环境下,这种“大教堂”式的开发模式,可以取得一定效果,例如格力开发空调发动机。

但移动互联网技术快速发展,芯片、零部件、供应链迅速更换,消费者习惯快速多变的复杂环境,要求小米采取与传统的瀑布式开发不同的开发过程,克服传统开发方式的弱点,取得更高的成功率和生产率。

迭代开发就是:由于市场的不确定性高,需求在没被完整地确定之前,开发就迅速启动。每次循环不求完美,但求不断发现新问题,迅速求解,获取和积累新知识,并自适应地控制过程,在一次迭代中完成系统的一部分功能或业务逻辑,然后将未成熟的产品交付给领先用户,通过他们的反馈来进一步细化需求,从而进入新一轮的迭代,不断获取用户需求、完善产品。

例如谷歌的开发战略,就是这种“永远Beta(测试)版”的迭代策略:没有完美的软件开发,永远都可以更好,永远在更新或改善功能。谷歌邮箱Gmail推出5年之后才撤掉beta版的字样,成为稳定的服务。在与苹果iOS智能手机操作系统的竞争中,后发的谷歌采取了与苹果完全不同的迭代开发战略。谷歌在其操作系统安卓(Android)上采用了开源软件的模式,与多家企业合作生产平板电脑和智能手机。安卓系统从 Android 2.3.3 到 Android 4.0,只有约半年,许多手机都来不及更新换代以支持新版本的操作系统。但Android 4.1、4.2 紧接而来。这么快的迭代,使谷歌的许多合作厂家应接不暇,不同操作系统之间产生适配问题。但谷歌更新的速度与决心都远超苹果,在合作厂家之间掀起迭代竞争,迫使他们不断更新产品,从而使安卓系统在短期内赶上了苹果iOS系统。

微信遵循迭代开发的过程,迅速达到亿级用户——尤其是微信的早期版本,迭代非常迅速,使微信得以快速发展核心功能,奠定用户基础。

由此可见,循环迭代式的开发特别适用于高不确定性、高竞争的环境,也适合分布在全球的不同企业、不同开发小组之间的合作,其本质是一种高效、并行、全局的开发方法。

3.迭代开发的四大原则

原则一:问题先行

学者托姆科(Thomke)与藤森(Fujimo)认为,如果在开发与测试阶段才建立模型,发现问题与解决问题所需的金钱和时间成本可能非常高。如果“问题先行”,也就是将问题的确认和解决,移转到产品开发流程的早期,将会提高开发绩效。“问题先行”原则后来成为迭代开发的首要原则。

李开复经常提一个自己的例子:在SGI(硅谷图形公司)负责多媒体研发业务时,由于沉迷于酷炫的3D浏览器技术,忽视了用户,导致自己的部门被出售,100多名员工失业。他因此陷入抑郁情绪,最后不得不接受心理辅导。李开复犯的错误就是技术至上,而忽视了用户需求这个产品开发的核心问题。

提前发现问题并解决则可降低成本,提高产品开发的绩效。苹果在开发iPhone过程中,乔布斯举起放在口袋中被划伤的iPhone,愤怒地说:“我们产品的屏幕是不允许这样轻易被划伤的,我要换防划玻璃屏幕,我要在6周之内让它变得完美。”苹果开发团队开始去找不易被划伤的玻璃,并很快发现了康宁的微晶玻璃技术。事实上,康宁的微晶玻璃技术曾于70年代应用于汽车玻璃,终因成本太高而被打入冷宫。当乔布斯提出制造1.33毫米厚度高强度玻璃的想法后,康宁迅速组织团队,改善玻璃生产工艺,实现了大猩猩玻璃的诞生。与李开复的例子相反,乔布斯的“问题先行”而不是技术先行,即首要解决手机屏幕不易被划伤这个问题,然后苹果终于找到了防划手机屏幕,也激活了康宁的技术。

硅谷创业者埃里克·莱斯(Eric Ries)所提出的“精益创业”理念,可以看作是迭代开发的“创业版”,莱斯也提出要问题先行:先找出创业计划中风险最高的部分(或者客户最需要的部分),作为切入点,开始系统地测试;注重从测试版实验中发现问题,而非精心构建商业计划;注重聆听用户反馈而非相信直觉,而在此之前,无需一次性投入开发完善的产品。目前,这一理念被硅谷的很多创业公司奉为创业圣经。

原则二:快速试错

李开复经营创新工场的逻辑是:“先向市场推出极简的原型产品,以最小的成本和有效的方式验证产品是否符合用户需求,然后再结合需求,迅速添加组件。”这正是迭代创新中快速试错的思路。如果产品不符合市场需求,最好能“快速而廉价地失败”。

失败并不可怕。莱斯在 “精益创业”中提出,重要的是,失败给出了最好地验证原来各种假设的机会,在失败后要有精准的测量,从而为下一次试错提供学习的机会。图5莱斯描绘了每一次迭代中的“建设-测量-学习” 过程。

从学习的角度看,在没有任何蓝图可循的时候,与频繁的试错能够创造更多反应机会一样,开发者通过测量可以检验各种因果关系,提高学习结果。这样,通过尝试不同的设计,在产品各种参数的敏感度和设计的稳健度上,开发者获得直观的感受,加速对产品的理解。和体验式学习一样,通过多次迭代的实践学习方式比那些缺乏参与、侧重认知策略的学习方式速度会更快。在高不确定性的环境中,这种学习方式对开发团队培养对产品的感觉尤其有价值。

张小龙在研发微信过程中总结出“把产品做简单”的原则:“产品规则越简单,越能让群体形成自发的互动。……但并不是说规则简单就一定会传染开来。这里存在一个引导的问题。我们要做的工作是在群体里做一个加速器、催化剂。”这正是在多次试错中积累起来的产品设计经验与感觉,即如何在手机的小屏幕上,通过功能设计,加速用户的互动。

多次迭代可以使设计团队快速获取经验;迭代也将灵活性植入开发过程,使开发团队的认知能力随着新的信息而变化。当见证了很多次的迭代后,设计团队就不会倾向于过分依赖某一种特定的变化,而产生类似张小龙的经验,会根据环境的变化而进行调整。这样,迭代的试错反倒提高了开发团队的信心和成功几率,加速了设计的进程。

原则三:微着力 微创新

德国创新学者冯·希佩尔(Von Hippel)提出粘滞信息(sticky information)的概念,认为信息在不同的个体中转移的时候会存在粘滞,或者说,要多付出成本。在新产品/服务的开发中,刚开始存在两种信息,第一种是需求信息,开始的时候在用户中;第二种是解决方案信息,刚开始的时候在开发者中。这两种信息都对产品或服务的开发非常关键,但由于各自粘滞于不同的物理位置,两者的结合实际上非常难。例如张小龙举例说明:“在一个聚会,来了好几个女生,我跟她们说装一个微信吧,她们问为什么。我说装微信可以免费发短信、发图片,省了彩信的钱;还可以直接说话,连打字都不需要。这几个女孩没有一个有兴趣,很奇怪地看着我,问:‘我为什么要用这个东西?’”

要让开发者的解决方案无限接近用户的需求信息,迭代试错是低成本、快速地捕捉到用户需求的好方式。尤其对于一些深藏于用户内心深处的隐秘需求,用传统的调研方式可能很难奏效,而用迭代试错(拿出测试产品让用户体验)则更可能由用户反馈发现用户的真实需求。

张小龙说:“然后我现场给这几个女孩演示了微信,说你看附近有很多美女,我可以跟她们直接打招呼(微信中‘查看附近的人’功能)。这些女生立马两眼放光,一个个拿出手机让我帮她们装。我当时很震撼,我理解的需求和她们的真实需求差别会这么大。”

迭代试错要挖掘出用户的隐秘需求,需要的不是颠覆性的大创新,而是微创新。开发团队可以先根据用户特征开发出符合基本要求的测试版;然后交付给领先用户在模拟环境下测试,从而证实其功能和用户需求的准确性。如果两者的匹配不是很理想(通常都不是很匹配),就需要对需求信息和解决方案信息的位置进行再次修正,再次匹配。这个循环迭代的过程不断重复,直到获得可接受的匹配度。因此,微创新在从产品定义到生产上线的周期中间的各种迭代中扮演重要角色。

暴风影音CTO杨立东在总结自己的开发经验时说,我们海量的“微创新”更能留住客户。

原则四:和用户一起High

迭代开发还意味着亲民的用户关系——让用户参与研发过程,在体验参与中树立品牌与影响。在社交网络时代,用户参与战术既是开发要素也成为营销策略。

小米联合创始人黎万强总结,小米的主战场是社会化媒体渠道。“小米跟很多传统品牌最大的不同是:和用户一起玩,不管是线上还是线下,每次产品发布的时候,我们都在想,怎样让用户参与进来。”

小米从手机硬件到MIUI(小米手机软件平台)开发的每次迭代,都有用户的热情参与,一方面核心用户对于小米的测试版产品提出很多重要的反馈意见,承担了小米产品的大部分测试职能;另一方面,在这个过程中,小米核心用户由于很强的参与感和受尊重感而对小米更加忠诚,其中一些意见领袖影响了更多普通小米用户。也就是说,用户参与的迭代开发,同时是外部创意开发、产品测试、产品营销的过程。这也是为什么互联网企业能通过迭代减少产品交付周期的原因。

另外,为了吸引更多的用户,小米将硬件以接近成本的价格销售,并更快地迭代,通过软件增加用户的粘性,在增值服务上建立商业模式。传统的营销成本会占到总销售额的20%,渠道成本会占到15-20%,但通过“粉丝经济”,小米可以将这两项费用降到1%以内,从而给用户更低的价格、更好的体验,从而将每一次产品迭代过程变成与用户一起狂欢的过程。

4.如何建立迭代组织

在迭代开发中,企业面临的是全新开发环境:路径非常不确定,往往要经历模糊不清的技术环节、变幻莫测的市场环节。在此环境下,要加快迭代速度,就意味着要快速培养研发团队的各种直觉、经验;设置灵活的选项,以适应模糊变换的市场。同时还要提供足够的结构,培养感觉,避免拖延,并且在高度不确定的环境下保持自信,克服各种焦虑和冲突。这些都使迭代管理面临着巨大的挑战。

腾讯的战略是去中心化,实行产品经理负责的小团队化,实现敏捷开发。

小米管理三板斧中的核心则是:解放团队,让员工对产品有爱;拆掉大平台,团队项目化;取消常规意义上的KPI,用目标和用户反馈来改进产品。

迭代组织共同的取向是采用小团队作战的模式。迭代开发的小团队运作非常适合使用Scrum(橄榄球竞赛中的争球)方式,这种方式在敏捷软件开发中得到了广泛应用。Scrum的组织模式是:

一个迭代的研发项目分成产品负责人、Scrum主管、团队开发人员。产品负责人为发包方,确定用户的需求,编写用户画像,排出优先级,并放入产品订单(product backlog);Scrum主管是项目的协调者与促进者,但并非是管理者(因为Scrum是自组织的);团队开发人员由5至9名具有跨职能技能的人组成小团队。

开发周期叫冲刺,一般15到30 天,长度由开发团队自主根据产品订单决定,形成冲刺订单(sprint backlog)。

在冲刺中,每天固定时间举行项目状况会议,称为“每日站会”,迟到的会有搞笑的惩罚,会议被限制在15分钟。每个会员分享:今天你完成了哪些工作?明天你打算做什么?完成你的目标是否存在什么障碍?

每日站会可以在燃尽图前举行——这是一个公开展示的图表,显示当前冲刺中未完成的任务数目。

每一个冲刺完成后,都有一次冲刺回顾会议,所有团队成员都要对冲刺进行复盘,目标是持续改善,会议的时间限制在4小时。

Scrum的小团队组织模式,不仅可以应用于研发团队,也可以应用于销售团队,使营销活动更加高效灵活。

组织拆分为很多小团队使得迭代组织非常扁平,这对组织的最高管理者是很大的挑战,因为他可能要同时面对十几甚至几十个直接下属。从目前微信、小米的实践看,用户参与部分解决了这个挑战——用户通过反馈、投票等方式决定了很多创意和功能的生死,替代了传统管理中的领导决策功能,分担了最高领导对于很多具体应用的管理和决策工作(后文小米案例中将详细阐述)。

迭代组织的管理还处于边实践边探索的过程中,总而言之,迭代组织是对各种不确定性的灵活反应,是一种非线性的过程,往往是基于经验在小步快跑,而不是基于计划。

当前的中国又处在一个历史的转折点上,经济结构正在优化,整个宏观的研发支出占GDP的比例去年上升至1.97%,为过去十年罕见,且其中74%的研发投入来自企业。在这场研发浪潮中,互联网企业所引发的迭代创新将深刻地改革中国的经济全貌。

站在风口上,猪也能飞起来。更多的中国企业或许能够从格力与小米的赛局中得到启发:如果你还没能飞起来,那就赶紧站到迭代的风口上去。

评论  |   0条评论