项目微管理46 – 精益

在开发的过程中,四代的团队经常要研发一些全新的功能。在当时没有产品经理的情况下,这些功能应该是什么样子的,大家也只是有个模糊的认识和粗略的原型。

 

如何安排这些功能开发,对于四代来说,一直也是一个比较窝心的过程:全力开发这些功能,一旦大家决策上判断失误,那么对于公司就意味着大规模浪费和大范围的折腾,而对于客户来说,也没有带来什么益处。不全力开发呢,又像隔靴搔痒,总是搞的心里痒痒的。

 

 

在经过几个Release的实践后,四代终于有了一个相对柔和的做法来试验这些新功能。

 

首先将新功能分级,针对最能体现新功能特点的核心子功能,优先在当前的Release中开发,开发结束以后,推出去让客户体验并收集反馈。

 

在接着的第二个Release中,根据客户的反馈再去调整新功能的实现,并继续开始实现其他的子功能,然后继续推出去让客户体验并收集反馈。

 

这样在经过几个版本以后,这个新功能就能稳定下来并且和大部分客户的期望不会相差太远,客户参与到了系统的开发过程中来。

 

软件开发的起源 – “瀑布模型”

 

四代记得有句话是这么说的“组织总是有通过施行一些政策来显示自己的存在感的冲动”。对于公司来说也一样,“公司总是有想通过实施一些流程来刷新自己的存在感的冲动”。

 

为了显示自己的存在感,公司总是倾向于单方面的制定一些完美的流程来保证每个员工全身心的投入到工作中去,软件公司也不例外。

 

从计算机编程诞生时起,软件公司就有一种经典的做法一直流传至今,那就是要求从业人员每件事必求完美,不完美不进行下一步。

 

这样的做法导致软件的开发总是按先后的顺序进行。先是完美的需求分析,再是完美的架构设计,再是完美的开发,然后是力求完美的测试,最后是精心的部署,一步一步,按部就班,最终拿出一个产品,说到这里,大家都知道说的是“瀑布流程”。

 

 

在这个流程中,越到后面的阶段出现问题,越需要大规模的返工。互联网时代来临之前,包括需求和技术在内的一切事物发展都非常缓慢,在这种环境下,些许返工和延时还可以接受。

 

不过当互联网时代来临之后,一切都发生了翻天覆地的变化,过去那种老黄牛式,不紧不慢的开发方式完全无法适应飞速演变的需求,一些软件一发布就发现不是需求变了,就是需求没了,要不就是早被别人捷足先登了。

 

为了能快速的在需求的有效期内能迅速的开发出产品来满足客户,必然要调整过去那力求尽善尽美的思路,变为早日推出可工作的产品,让它尽快的进入客户的流程,以此来快速的匹配和捕获客户的需求,这样,经过不断的迭代和成长,最终来更好的满足和优化客户的流程。

 

其实如何让产品更好的适应客户的需求,一直是一个争论不休的话题,有的说推出之前精益求精会更好,有的说快速迭代会更好,有的说别谈什么质量了,快速的推出让市场验证才更好。

 

在这里,四代觉得可以推荐一本叫做《精益创业》的书,四代在研发新功能方面的做法就非常贴近精益创业的核心理念。

 

 

精益创业

 

精益创业(Lean Startup)由硅谷创业家Eric Rise2012年8月在其著作《精益创业》一书中首度提出。

 

精益创业的核心理念与软件行业的敏捷开发管理的核心思路可以说是殊途同归,都是通过快速的版本迭代,以及时刻保持与客户的接触并获得反馈来快速验证和完善一个产品。

 

概而论之,四代认为,精益创业就是阐述了三种工具:“最小可用品”、“客户反馈”、“快速迭代”。

 

“最小可用品”是指将创业者或者新产品的创意用最简洁的方式开发出来。

 

它可能是产品界面,也可以是能够交互操作的胚胎原型、甚至可以是几张翻页的纸。不管使用何种方式,只要是能体现了项目创意、能够测试和演示、功能极简、能够直观的被客户感知到,有助于激发客户的意见即可。而且,通常它的开发成本很低甚至是零成本。

 

“客户反馈”是指通过直接或间接的方式,从最终用户那里获取针对该产品的意见。

 

通过客户使用的反馈了解客户关注的方面,比如客户对产品的整体感觉、客户并不喜欢/并不需要的功能点、客户认为需要添加的新功能点、客户认为某些功能点应该改变的实现方式等。对于精益创业者而言,一切活动都是围绕客户而进行,产品开发中的所有决策权都交给用户。

 

“快速迭代”是针对客户反馈意见以最快的速度进行调整,融合到新的版本中。

 

对于互联网时代而言,速度比质量更重要,客户需求快速变化。因此,不追求一次性满足客户的需求,而是通过一次又一次的迭代不断让产品的功能丰满。

 

 

采用精益创业的优点是显而易见的:

 

一是快速。

 

精益创业模式下,所有的创新行为和想法都在最短的时间呈现出来,抛弃一切暂不重要功能,把产品核心的价值直观的展现给客户,无论成败,都能快速验证。

 

二是低成本。

 

过去瀑布流程式的研发,需要花费大量人力、物力和财力,一旦最终结果不是客户需要的,不仅会给企业带来巨大的经济损失,还会极大的打击团队的士气。而精益创业所采用的“频繁验证并修改”的策略,确保不会在客户认可之前投入过高的成本。

 

三是高成功率。

 

按照精益创业的模式,从“最小可用品”出发,过程中每一次迭代都可以寻找客户进行试用,了解客户对产品的看法,寻找产品的不足和客户希望增加乃至修改的功能点,通过持续的“测试-调整”以及快速迭代,产品越来越符合客户想要的效果,创新的成功率能够大大提升。

 

精益创业虽来源于互联网行业,但其背后的“客户验证”思想在大量非IT领域得到应用。

 

 

例如美剧的拍摄,往往都会先拍摄一部几十分钟的先导片,交代主要的人物关系、矛盾冲突、故事背景,然后邀请几十位观众参加小规模试映会,再根据观众的反馈来决定剧情要作哪些修改,是否需要调整演员,以及决定是否投拍。

 

在每一季结束时,制作方又会根据收视率和观众意见,决策是砍掉该剧还是订购新一季内容。这种周拍季播的模式,把所有的决策权交给观众,让制作方的投资以及失败成本降到了最低,是一种典型的精益创业方式。

 

说到精益创业,四代想到近年来经济学上一直在研究的一个问题“日本经济为什么会衰败”,在众多的说法中,有一种说法是“工匠精神毁了日本经济”。因为工匠精神要求精益求精,而精益求精需要大量的时间,而漫长的时间又会错失瞬间即逝的机会,于是在互联网这个快速演变的时代,视质量为生命的日本没落了。

 

 

“工匠精神”这个词我们已经不是第一次提及了,在前面,四代阐述重构的意义的时候,曾经说过工匠精神;不断重构就是工匠精神在软件研发中的体现。四代认为,无休止的精益求精并不是工匠精神的完整解释,四代也从不提倡极致的精益求精,因为精益求精是要付出成本的,成本是否值得付出,需要考虑收益是多少。

 

结合精益思想,四代认为这个时代开发的完整思路就是:快速验证 + “可控”的精益求精。

 

快速验证,因为这个时候你还不知道如何满足客户的这些新的功能,所以这个时候需要的是快速的推出产品,让其快速的试错。这个时候需要的是找到正确的选项,也就是做正确的事。

 

当需求稳定了以后,需要就是精益求精的打造极致的用户体验,这个时候也就是正确的做事了。但是即使是这样的,极致的用户体验也从来都是相对的,没有完美的功能,客户也从来不会满足现有的功能,客户总是会在现有功能的基础上推演出相关的功能,这个时候需要考虑的就是在成本允许的情况下,做到适当的精益求精,其实说白了还是“成本收益原则”,这就是“可控”的精益求精。

 

软件工程不是艺术,不需要无限制的拔高,说白了,软件工程是软件公司成本管理中至关重要的一项。

 

在三国杀的游戏中,有一个非常猛的武将叫“吕蒙”(就是白衣渡江,干翻关羽那位,也是成语中“三日不见应当刮目相看”那位),他的武将技是“克己”,就是说他的回合里没出过杀的话,就不需要弃牌。

 

 

在软件工程中,这个技能同样的对程序员来说也很重要,时刻都需要克己,时刻都要衡量精益求精的成本和收益,这样才能更好的把控软件的研发流程。

 

在不断的尝试和运行中,四代在完善各种规范和流程的同时,PC团队也终于迎来了第四位成员,一位容易激动的同学。那么这位激情四射的同学的到来,到底会给团队带来的是什么呢?