一直认为自己是程序员,也非常热爱编程这件事情,到杭州工作这2年,几乎没有写代码,一直在规划,开会,交流中,也让自己学到很多。最近决定把自己网站重新用Nodejs写一遍,当然是非工作时间,这点价值观还是有的,让自己又有目标了,Happy。这本书以敏捷的方式讲程序员应该有的习惯,提炼了45个习惯,本书采用精读方式,会看2周。
本书重点强调敏捷,敏捷本质上是一种价值观,一种文化。并不是什么方法论与银弹之类的。敏捷主要强调以人为本,提高互动与合作。敏捷的4条宣言,今后再专门记录。推行敏捷主要目的是提高团队成熟度,提升代码质量,提高交付能力,也会提高个体研发水平。不要以为推行敏捷能够解决所有问题,敏捷有些打法如站会,需求评审会,showcase,迭代review等等。有人认为敏捷就是轻文档,轻流程,拥抱变化。这些理解没有问题,但是要明白这些是敏捷要达到的目标,不是一上来就这么干,什么文档都没有,什么流程没有,只有非常成熟的团队才能做到这样。
轻文档。是要把PRD做到产品中,让用户看到产品UI就能理解PRD,做到Don't Make Me Think。设计文档要做到代码中,看到代码就知道系统是如何设计的。如果做不到这一点,请写文档,然后慢慢锻炼,最终做到轻文档或者无文档。
无流程。这是最高境界,但一定要先有流程,再落流程,最终才达到无流程的境界。正确姿势应该是,团队一开始集体确定DOD,各种活动流程与游戏规则,持续集成规则,迭代周期是2w还是3w,一个story不超过3day。然后各个迭代中去执行流程,不断迭代训练磨合,review改进流程。把流程做到组员心里面,做到自动化研发工具(以后会有分享)中,把流程做没。打个比方,功夫最高境界有2个,一个是唯快不破,另一个无招胜有招。无招胜有招是武功最高境界,要花几十年基本功训练,登马步要登10几年。随便一个普通人也无招,这2者能一样吗?不要只学习敏捷的形,一定要懂敏捷的神。
看到敏捷2个字就YY了这么多,书评还没有开始,悲剧了。那就再说说流程吧。流程是一组行为的认同与约束,行为的契约。流程主要目的提高质量,一定会阻碍效率。So,要在不断的实践中进行优化缩短流程,减小对效率的影响,尽可能把流程做无,做到工具中,做到心里面,由行为的契约转换为心理的契约,就是价值观与文化的认同。对一个成熟团队而言,流程是一种束缚,阻碍效率。对不成熟团队而言,流程将帮助他们做正确的事情,然后形成一种良好习惯,习惯会改变行为,最终改变结果与命运。
书中Les Brown的一句话“你不需要很出色才能起步,但是必须起步才能变得很出色”,感触特别深刻。团队中经常有人说,我要当TL,我要当架构师,我要做PD等等,但是平时工作中没有任何改变,经常提醒他们,如果你现在不开始改变,要等到什么时候?如果你认为自己是程序员,那你永远就是程序员,如果你认为是架构师,那就从现在开始做架构师的事情,不要担心自己Low,慢慢来,不要停留在YY。不要永远停留在准备阶段,直到有一天以为自己准备好了,其实离好还差很远。想干什么现在就开始干,还等什么??
最近成功挽留2位同学转岗离开团队,很开心!