精益生产(LeanProduction),简称“精益”,是衍生自丰田生产方式的一种管理哲学。精益生产是通过系统结构、人员组织、运行方式和市场供求等方面的变革,使生产系统能很快适应用户需求不断变化,并能使生产过程中一切无用、多余的东西被精简,最终达到包括市场供销在内的生产的各方面最好结果的一种生产管理方式,它的核心是消除浪费,显然软件开发行业也需要这种理念。
不管开发什么产品,都需要首先考虑质量问题。一些软件企业为了降低成本而忽视质量,但质量低下的软件会造成返工的浪费,反而提高成本。相反,在日常工作中投入更多的精力来保证质量,反而能够为企业节约成本。
对流程的认识,有些人是存在偏见的,认为它束手束脚,阻塞了工作效率,特别是在项目规模不大,团队较小的时候。事实上,由于人性的弱点(自律性及不可控性)以及在日益繁忙的现状下,精确及时的沟通仍然是一个很大的难题,而有了流程的管控,事情就相对容易的多。三个和尚是可以有水喝的,只要规定一个简单的流程:第一天和尚A打水,第二天和尚B打水、第三天和尚C打水,依次循环。另外,流程有助于公司降低人力成本和员工的能力提升,这是因为一个能力稍差的人去做一件事时,只要按照固定的流程和每个流程阶段规定的动作做下来,最后达到的效果是差不多的。结合时下主流的开发流程DevCloud提供了两种流程管理服务,如下:
![](http://upload-images.jianshu.io/upload_images/5609636-c7f2372313cb2861.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
软件工程的经典理论告诉我们:假设在分析阶段找到并解决一个错误的成本为1,在设计阶段解决同一个错误的成本就变成10,在实现阶段就变成100,在维护阶段就变成1000。DevCloud中的众多服务正是为了避免低质量和返工的浪费。尽管它们一开始看起来似乎有些麻烦,但它们带来的收益是实实在在的。
另一种常见的浪费则是“为将来准备的投资”。例如为了应付将来可能出现的需求变化而提前引入的灵活设计,如果需求没有发生变化,这些灵活设计就会成为浪费:不仅浪费了将它设计出来的成本,而且浪费了继续维护它的成本。制造业为了降低库存成本而创造出“Just In Time”的生产和决策方法,我们认为这些方法同样适用于软件行业:如何消除预测错误的浪费?避免预测错误的,根本办法就是推迟决策:决策下得越晚,就越不容易因为预测失准而造成浪费。当然也不能晚到错过了时机、耽误了工作才下决策,这就像丰田制造的Just In
Time,决策也要Just In Time。过早的、含有太多预测成分的决策也会造成浪费,其危害丝毫不亚于过晚的决策。同时DevCloud提供社交化协助,让客户及时了解需求的设计可开发情况,从而导致不出现过设计现象,因而避免了这种浪费。
![](http://upload-images.jianshu.io/upload_images/5609636-ee470a88fa8338b1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
中庸之道常常有效的深层原因是边际效用递减律:对一个方面的东西重视到一定程度以后,再加入更多的重视,收到的边际效用递减;同样的重视度放到另一个方面上,能够收到更大的边际效用。让每一分投入收到最大的回报,尽可能地消除浪费,这是精益的追求,也是DevCloud在各个开发阶段都进行深度优化的原因。