读书笔记——沸腾十五年,看板方法,精益创业
沸腾十五年
沸腾十五年这本书介绍了中国互联网1995~2010这15年间,中国互联网公司从无到有,从小到大,各种兴衰成败的故事。
里面有一个比较好玩的段子,讲的是联众(大家应该都知道,就是以前做休闲游戏平台的,后来被腾讯无情超越)刚开始把游戏平台做出来的时候,用户非常少,经常找不到人可以开一桌麻将或者斗地主,用户等着等着不耐烦就走了。联众的几位创始开发看到这种情况急得不得了,本来上线的人就少,经过招呼亲朋好友卖广告什么的好不容易来了点人吧,还经常因为凑不到一桌游戏而让人给跑了。后来他们想了个办法,看到有上线的用户凑不到一桌开不了游戏的,就几个开发人员一起点进去陪用户玩,这样来把用户留住,甚至有的开发一人开了好几个账号同时陪用户玩游戏。靠着这种打不死的精神,后来联众就慢慢做大了。
看完书会让人热血沸腾,恨不得马上投身互联网浪潮,但仔细一想书中介绍的都是成功的互联网企业,在这些光彩夺目的互联网公司的光芒照耀下,让人看不到那些同期出生但又失败的互联网公司,这些公司的数量应该是成功者的N倍。我们要时刻充满激情来对待工作和生活,但在这个浮躁的社会也需要时刻保持一颗冷静的心。
看板方法
有幸参加了David Anderson关于看板方法的培训,回来后把看板方法的书认真研读了一遍,对其中的观点很是赞同。
缩短范围
在项目过程中需要舍弃一些东西进行权衡时,传统的项目经理会选择延期交付、增加资源投入、缩短范围或三者不同程度兼而有之;敏捷项目的明确共识是缩短范围,保障交付时间。
在有些东西要权衡时,为什么敏捷项目只选择缩短范围呢?
- 首先看如果选择延期交付会造成什么后果。由于你无法兑现之前的交付承诺,导致了与业务之间的不信任关系,业务无法相信你下次是否还能按时完成交付。
- 再看增加资源投入。在软件开发中,增加资源投入就意味着加人,但在《人月神话》里面已经说过了,
在一个已经延迟的项目里面增加人手,只会导致这个项目更加延迟
。 - 最后是缩短范围。缩小范围不是将业务的需求全部去掉,而是保留其中业务认为最主要的一部分,缩减业务认为优先级不是特别高的一部分,这样也可以让业务对需求有更清晰的认识。
项目的三要素:时间、金钱和质量,我觉得是三者是一个能量守恒的关系,如果提高其中的两项,那另外一项是要降低的,不可能三者同时提高。业务经常要求功能要多(金钱),上线时间要早(时间),传统项目迫于业务的压力,经常会选择降低质量(质量)来达到业务的前面两个要求,而敏捷项目首先会保持质量这一高标准,然后在保证按时交付的前提下,和业务PK交付的需求。
降低变异性
变异性是导致任务堆积,项目不能按时交付等的风险因素。降低变异性有如下好处:
- 降低变异性可以减少WIP,使得平均前置时间下降。
- 降低变异性能够减少对富余时间的需要(富余时间我理解就是预估工作量的buffer)。
- 降低变异性有利于实现资源平衡,潜在地降低对人数的需求。
什么地方可以体现变异性?
比如手工测试就存在变异性,手工测试会因为某些人为因素而认为测试是失败的,但实际上测试是成功的,结果就造成了开发过程中的浪费,乃至阻碍。可以通过自动化测试消除手工测试的变异性,自动化测试稳定而且准确。
还有比如在编写story的时候,如果story使用不同的方式来描述也会存在变异性,会让开发需要经常切换不同的思维或者角度去理解需求,出错率较高。可以通过编写一套团队认为合适的story模板来消除这种变异性。
其他
- 敏捷开发中有很多对业务没有实际价值的成本,有这么几种:事务成本(搭建环境),协调成本(各种会议),破坏负载(软件缺陷)。敏捷中的会议是协调成本,以精益的角度来将要消除这种浪费。
- 虽然看板中强调前置时间少,交付速率高,但也不能以牺牲可预测性来换取这些指标。可预测在敏捷中很关键,可预测的交付会与用户建立信任关系,牺牲可预测性来提高短期的前置时间和交付速率是不可取的。
精益创业
MVP(最小化可行产品)
MVP是指一个最小化的可以获得用户反馈的产品,可以帮助创业者尽早开启学习认知的历程,它不一定是实实在在的产品,它是用最快的方式,以最少的精力完成’开发-测量-认知’的反馈循环。比如Dropbox在他们还未开发出产品之前,把一段幽默风趣的产品介绍视频作为他们的MVP放到网上,从而吸引了大量公测用户,为他们指明产品的正确方向。
低质量
质量低下的产品可能会造成重新返工、交付延期、用户的流失,每个做产品的人,包括设计、开发、测试,每个人都会以高质量为标准,在敏捷开发中更是要求产品质量必须是高标准,但坚持高质量的前提是我们已经知道产品的哪些功能是用户需要的,如果在用户需要的功能上偷工减料势必会造成用户流失。
但在创业的时候,很多东西都是未知的,用户不知道自己想要什么,创业者可能连哪些人是用户都不知道,在不知道产品有哪些功能的情况下,坚持产品质量的高标准就没有什么必要了。
创业阶段更需要是快速推出一个MVP产品,获得用户反馈,即使质量低下也未必不受用户欢迎。
其他
精益创业的常规工作是对比测试、持续部署和顾客测试,精益创业的技巧包括快速迭代/基于数据制定决策,以及早期顾客介入。
自己写的读书笔记不咋的,这里看到了另外一篇关于《精益创业》的读书笔记,非常完整地概括了这本书的观点,是前JavaEye的创始人范凯写的,点击这里查看。