《精益开发与看板方法》—1-3-4 尽快交付(Deliver as fast as possible)
1-3-4 尽快交付(Deliver as fast as possible)
在制造业中交付产品越快的公司必定越受客户青睐,软件业也是如此。但在制造业里对手很快就能掌握到你快速生产的秘诀,所有的厂商都会开始模仿,一下子大家都学会了,你的优势很快就没有了,而软件业就很难做到这一点!这是一种最富有价值的优势!
为什么要快速交付?
客户喜欢快速交付。因为快速可以让他拥有更多的准备时间,也就是延迟决策的机会(你一定想到了,尽快交付原则正是对尽量延迟决策原则的补充,当你能够越快交付,可以得到延迟决策的时间就越长)。对于一些客户而言,快速交付也意味着更快的客户满意。对软件业而言,能带来业务上更高的灵活性,更容易受到客户的信赖,当然也就间接获得客户更高的配合度。
老板、客户都喜欢快速交付,但工程师如何处理呢?如果你一向单打独斗的话,为了做到快速交付,可能必须花上一番功夫来设定一套较完整的交付流程,这是可行的做法,也是很好的练习,但太辛苦了!而且这么做只是治标,对工程师而言是好的练习,但很辛苦(维护就更辛苦了)。如果能从开发方法的角度来看这个问题,实行治本的理论远比治标划算多了,以下便是精益软件开发的做法:采用看板方法来实践拉动系统。
拉动系统(Pull System)
拉动系统是一种通过只补充已消耗的资源来达到控制资源流动的生产管理系统。著名的限制理论(Theory of Constraints,TOC)中的“鼓-缓冲-绳”(Drum-Buffer-Rope)正是拉动系统的最好范例,所以也常常被称为缓冲管理法(Buffer Management),看板方法正是依据拉动系统所设计出来的流程控制法。拉动系统是一种“自动交付”的工作方式,你可以将需求规划成一种事件,由事件来“拉动”工作。而“被动交付”则是一种运用排定日期的工作方式,时间到了就被“推动”去工作的方式,因此被称为推动系统(Push System)。Scrum 的任务板(Scrumban)也是一种拉动系统,只是它并不强调流程的管控。
Windows用户应该十分熟悉这种事件的处理方式,让事件去触发相对应的行为方式称为事件驱动模式,是一种实时性(JIT)的处理方式,系统可以省去一个一个轮流查看是否有工作要处理所耗掉的时间以及 CPU 浪费的效能。在制造业里,由看板来作为启动 JIT 实时生产的自动化机制,这便是看板又被称为信号板(Signal Board)的原因,当有信号进来时就去拉动下一个工作的项目,而无需由工头做决策,下达命令指挥工人该做什么。也就是说,管理者不必吩咐工人该做什么,工作本身就能起到引导作用。复杂的软件开发工作也存在同样的基本问题,项目经理(PM)所依靠的“日常进度表”很难描述许多细微的工作分配,此时拉动系统无疑是最有效的安排,这也是让团队成员自己有效安排时间的好方法。
TIPS
员工知道在上班时间如何有效安排自己的时间表吗?
复杂的软件开发无法像制造业一般采用细粒度的排班表,但对知识工作者而言,在办公时能够采用“自我引导”(自觉)应该是最有效的方法。员工在自我管理的情境下容易为自己的行为负责,也就能主动负责,对项目而言这是达到成功的最佳保障。运用看板实施拉动系统是最能做到这种直观式管理的方法之一,看板上有大家的工作状态,团队工作的进度、效能及瓶颈,每个流程状态大家都一目了然,这样的透明度最适合自我引导的状态。
善用排队理论(Queueing Theory)——看板方法寻找瓶颈的基本技巧
缺人手!你可能缺少分析人员或是找不到人手来帮忙测试……,当资源出现短缺的现象时,排队的状况便会自然发生。它是最浪费时间的东西,看起来是单纯的资源不足所造成的现象,但不容易改进。排队理论的出现是表示有许多地方可以进行改善的一种征兆(资源一定出现了存在有不足的地方),事实上它是我们在运用看板上发现问题跟解决问题的最佳机会。
拿饮水机的例子来做说明。在饮水机前排队去水。排队当然是按照每一个人到达的时间顺序,而不是每一个人口渴程度来调整,所以当散步过来喝水的人排在刚跑完步的人前面时,若依照需要水的程度高低来定义服务的效能,便可以定义它是低效能的,反之则是高效能;这时候当我们考虑增加效能时,就可以让跑步的人先排到前面来。简单的区分可以让服务满足真正的需求,这就是看板想要做到的事:暴露需求或者瓶颈所在,然后修正它来达成真正的需求。(具体作法是,依照对水分补充的急切性,适当的分成二列的排队取水队伍,急需水分的队伍每次可取水二名或调整成更多名的数量,如此便可以用管制数量的方式来协调急需性)
另外要补充的是,在排队时,你总是希望能够尽量缩短等待的时间,毕竟,加入排队是为了达成某种目的。无法让你达到目的的唯一原因是,达到目的所要的资源有限(也就是资源不足),因此便形成排队的现象,增加了时间的浪费。所以资源的限制才是最主要的原因,但有时候也可能是设计者为了保护系统资源而做的限制设计(常见于云端应用程序的设计)。[1]
强调优化组织的最佳途径是强调组织的吞吐量,因为它是获利的关键,而增加吞吐量的方法便是找到阻碍工作进展的瓶颈,并对它进行修正,这一点在网络时代更是明显,因此我们可以预见云端将是这个时代企业的必然战场所在。(看板方法受到限制理论极大的影响,安德森(David J. Anderson)原先把自己的理论称为“鼓-缓冲-绳(Drum-Buffer-Rope)”,直到在微软的项目试行这个理论的成功并逐渐发展出自己的架构后,才改称为“看板方法”。)
是否值得投资购买新的开发工具
篮球赛的抄截快攻是翻转战局最佳的方法,原因是这一来一往的差距是 4 分不是 2 分。
开发人员可能会提出采购一种新的开发工具,因为他们认为可以加速开发的速度,而你会估算一下省下来的开发时间是否值得购买这个工具。这种经济模式的决策,往往都容易忽略无形的、超过成本效益的影响;较正确的做法是,采用风险管理的概念,将不购买新的开发工具所可能造成的延误成本加到损益表内进行评估,这样做更为合理。
投资购买新开发工具的价值,绝对不是它表面上的金额大小,而是它对开发团队的影响,这才是真正的价值所在。
- 点赞
- 收藏
- 关注作者
评论(0)