如何制定一个稳定的精益软件开发流程?
何谓稳定?
稳定就是在长时期内产出始终如一的结果的能力。
我们制定一个软件开发流程,当然希望它是稳定的。一个稳定的流程就意味着无论何时使用这个流程,它产出的结果我们都是可预知的。
流程的稳定性主要通过流程产出的结果来衡量,即以同样的人力和物力生产使用同一流程可以产出同等质量同样数量的产品。
要制定一个稳定的精益软件开发流程,我们需要从以下几个方面着手:
梳理软件开发过程的定义
一个稳定的软件开发流程,它的定义也必然是准确的。流程定义不应使用那些含义模糊、不够清楚的词语。比如:“通常”、“基本上”、“一般”等等。而是应当清楚地把这些词语所代表的环境或条件表述清楚。
识别软件开发过程中的浪费
一个稳定的流程必然要清除掉流程中那些冗余的浪费活动,否则这些浪费活动就会对流程的稳定性造成影响。所以,在对软件开发过程做出了准确的定义之后,就要开始启动试点项目,由专人在现场对试点项目的过程活动进行观察,并记录下每一活动的时间,找出当中最大的浪费活动,以进行整合和消除。
整合和消除开发过程中的浪费
在识别出软件开发流程中的浪费活动之后,就要对它们进行整合和消除。整合和消除开发过程中的浪费活动可以采取以下几种方式:
a) 流程优化,提升效率
有些浪费活动是由于流程设计的不合理造成的。比如,配置管理活动的主要目的是版本控制和对软件变更的控制,我们应当以实现这个目的来设计配置管理流程,而不是从领导的权限来设计流程。如果一个简单的入库流程需要走上两三天甚至更久,那我们不妨考虑一下这个流程优化。
b) 调整开发环境
我们的软件开发环境如果不够先进,也可能会导致浪费。我们要根据组织的实际情况,调整我们的开发环境,消除由开发环境带来的浪费。并且把调整后的开发环境作为组织的标准工作环境进行推广。
c) 对容易导致流程变异的活动加强控制
流程的不稳定,通常是有流程的变异造成的。根据统计数据表明,有20%的活动容易导致流程发生变异。我们通过试点项目要找出这20%的活动,并在流程定义当中加强对它们的监督和控制。
均衡软件开发过程中的工作量
对于一个稳定的软件开发流程来说,在整个软件开发的生命周期过程当中,工作量的分配都是均衡的。所以在流程定义的时候,要注意工作量的均衡分配。
这正是:
稳定流程都需要,如何定义聊一聊
定义准确第一位,消除浪费妙不妙
参考书目:丰田模式(实践手册篇):实施丰田4P的实践指南,作者:【美】莱克(K. Liker, J.),【美】梅尔(Meier, D.),译者:王世权,出版社:机械工业出版社