这章讲了关于控制进度的一些要点,让我想起了一个在这本书里没有提到的方法,这个方法先是被我实践中摸索出来,然后在一本叫做《商道》的杂上找到了理论依据。先说说《商道》上那篇文章里的例子(原书找不到了,网上没有的卖,我只好凭记忆描述)。
说是有一家工厂,刚刚给某个生产环节做了自动化升级,使得这个环节的生产率大大提高。厂长很高兴的找到他的教授朋友来参观,参观完后教授却说“我觉得你很快就会遇到麻烦”。
果不其然,在接下来的几个月里,工厂的半成品严重积压,现金流紧张,成品产量却下降了,股东们要求厂长在两个月内解决掉问题,否则就要关闭工厂,于是厂长再次找到了他的教授朋友,希望能找到问题所在。
教授:“你觉得你开工厂的目的是什么?”
厂长:“提高生产效率。”
教授:“现在效率提高了么?”
厂长:“没有,反而下降了。”
教授:“说说具体情况。”
厂长:“在效率得到提升的环节,工人非常轻闲,可有的环节工人却忙不过来,但是比较清闲的工人不愿意接受调岗,导致忙不过来的那些工人很沮丧,甚至要罢工。”
教授:“你可以试下降低自动化环节的生产率。”
于是厂长照教授的办法,限时了原本因为自动化分产线的生产率,结果半成品积压的问题立即就解决了,现金流也得到了补充。
在这个例子中,因为成品的产出需要所有环节的人参与,所以整个流程中最低效的的那个环节就决定了整个产出过程的效率。这跟程序开发过程是十分相似的——无论产品设计速度有多快,最终决定能不能做出来、多久能做出来的还是开发环节的效率。
这篇文章给出了几个不同层次的解决方案:
1、根据瓶颈环节的产能安排计划生产。
这是说所有的其他环节的资源配给量都按照瓶颈环节的产能匹配,如果瓶颈环节的生产率没有提升,就不要提升其他环节的生产率。
2、找到不需要使用瓶颈环节资源就能完成的任务,把它们从流程中剥离出来,绕过瓶颈环节。
这是说如果瓶颈环节如果无法通过增加投入提高生产率的话,那就把不是必须通过瓶颈环节的任务提取出来,从而保证瓶颈环节资源的集中使用。
3、把质检环节提到瓶颈环节之前。
按照传统的做法,质检通常是在成品交付时才做的。但是这样就意味着被打回的不合格的产品要再次经过瓶颈环节。如果可以在瓶颈环节之前做一次质检,那么就能保证进入瓶颈环节的半成品都是合格的,从而减少了瓶颈环节的压力。
在软件开发过程中,瓶颈环节在开发,所以应该:
1、将开发资源作为核心资源,其他资源围绕开发资源做配置。
2、提高产品设计的质量标准,把尽可能多的隐患消灭在产品设计阶段。
3、开发过程中可以可以设置数个半成品/试制品的的检测、确认环节,从而减少进入下一个开发环节的结构性、设计性的错误。