公司读书分享会,我被抽中《敏捷项目管理》,花了大半个月大概读完了。不得不说,外国人写的书籍,跟国内的教材差距不是一般的大。国内的教材是按部就班,一步一步来讲的。这本教材却是按照总分总的方式来排版的,你想象一下一棵树,纵向从树根到树叶,横向从左到右,每次都会重复上一章节的内容,只是讲得更细...... 总之,一开始耗费非常多的时间,越到后面越详细,就越来越越容易阅读! 我总结一下《敏捷项目管理》的几个要点吧,其实无非就是两个: 一个项目就是一揽子鸡蛋(功能)。 把鸡蛋(功能)放到不同的篮子(模块),即便有个别篮子(模块)蛋摔破了(没有完成) 依然有部分的篮子(模块)依然具有鸡蛋(价值),不至于竹篮打水一场空! 一边开发功能,一边发布功能,让客户能时不时收到新功能和功能改善,保持客户参与的热度 边炒菜边上菜,不要等菜全都炒好了再上菜,前面炒好的菜都凉了! 搭个比方 现实中的项目非常复杂多变,不可能面面俱到。 当面临抉择时,应该抓住重点,舍弃无关紧要的事项,可以做到事半功倍的效果! 记住!时间是永远不够的! 必须先把最重要的和最紧急的事情做完! 其他不重要的不紧急的事情可以放到以后有时间再考虑! 我分享完敏捷项目管理后,有个同事一直追着我问,说他一直搞不明白为什么敏捷项目管理能够提高工作效率呢? 我非常直白地跟他说, 敏捷项目管理本身并不能提升效率 ,甚至某种意义上,敏捷方法降低工作效率! 敏捷项目管理书中明确指出,传统的项目开发过程存在非常大的风险:敏捷项目管理一书中提出敏捷管理方法,其本质就是化整为零,把风险分散了,就把风险降低了! 然而书中并没有提到,传统项目中存在着时间和资源的巨大浪费: 在瀑布模型中,因为分工合作的缘故,每个阶段的每个步骤都只有专门负责那部分工作的人在工作,而其他人都是闲着没事做,这明显就是巨大的浪费! 按照计算机领域的说法,这样的架构就是同步阻塞模型!当某一模块(部门)陷入阻塞(忙碌)状态时,其他模块(部门)就只能苦苦等待,白白浪费宝贵的时间和资源! 敏捷方法,特别是Scrum,则提倡人人都要做“万金油”,要求人人都要参与项目的每个阶段。 但现实很残酷,“万金油”是样样都会,但是样样都不精通,这意味着工作效率会非常低下! 科学管理学之父——泰勒认为科学管理的根本目的是谋求最高劳动生产率,最高的工作效率是雇主和雇员达到共同富裕的基础,要达到最高的工作效率的重要手段是用科学化的、标准化的管理方法代替经验管理。 敏捷方法Scrum所提倡的工作方法,明显违反科学管理的基本要求,因此工作效率会很低下! 上面说过,在工作中,如果每个部门或者每个人都工作都严格依赖于其他人都工作,而且在其他人忙碌的时候,自身并不会去做其他的事情。这种情况在计算机领域叫作同步阻塞! 同步阻塞是效率非常低下的,那么如果我们把同步阻塞改成异步非阻塞,不就可以大幅度地提升效率了? 然而现实中,项目管理流程:计划->需求分析->设计->编码->测试->运行/维护是严格同步,不可以跳过中间的步骤进行后面步骤,所以我们只能退而求其次,把同步阻塞改成同步非阻塞! 首先来看一下同步阻塞的情况,我们假设项目流程6个步骤中,每个步骤让特定的专业人士去完成需要1天,那么用敏捷方法进行项目管理,6个人完成一个步骤仅需1/6天,完成一个冲刺需要1天!如果采用传统的瀑布模型,每个人一个步骤1天,一个冲刺需要6天。 咋一看,好像敏捷方法的效率非常的高!但是事实上,6个人去做每个步骤的时候,只有一个人是该步骤的专业人士,其他5人是非专业人士,效率应该只有专业人士的1/3。那么6个人一天能完成1+5*1/3=8/3个步骤,一个冲刺需要6/(8/3)=9/4天,完成6个冲刺需要9/4*6=天。那么,采用同步非阻塞的方法进行项目管理,假设有n个步骤和m个冲刺,需要n*2-1+m-n天,把n=6和m=6代入求值,得到11天。 由上面的比较,就可以知道敏捷项目管理的真正难题在于“万金油”的工作方式让工作效率难以提升!更为糟糕的是,“万金油”式的团队对于成员的个人发展和提升都是不利的,长久下去必然会与成员的个人发展意愿冲突,最终留不住人!无论对团队、公司,还是个人来说都是个双输的局面!