软件过程改进(Software Process Improvement; SPI)
目录 |
软件过程改进是指在软件过程的实施中为了更有效地达到优化软件过程的目的所实施的改善或改变其软件过程的系列活动。过程改进的实施是在认知现有软件过程的基础之上,利用过程运作和监控中所获得的反馈信息,发现软件过程中存在的问题和缺陷,提出改进的意见,进而实现软件过程的改进和完善。过程改进的实施对象就是企业的软件过程,也就是软件产品的生产制造过程,当然也包括软件维护之类的辅助过程。
根据驱动方式的不同,可以将软件过程改进划分为目标驱动和缺陷驱动两种模式:
1)目标驱动
目标驱动的过程改进模式是指根据一个预先设定的目标,自顶向下指定过程度量或评价模型,有目的地开展过程改进活动的过程改进模式。其特点是目标明确,可以将改进活动控制在预定的范围之内,并尽可能地利用资源以获得满意的改进效果。缺点是如果策划不周,会带来一定的风险。
2)缺陷驱动
缺陷驱动的过程改进模式是指根据过程实施中所产生的关于过程缺陷的反馈信息,来有针对性地进行改进活动的过程改进模式。其特点是过程的改进是基于已发现的缺陷来进行的,因此往往切实有效,并且能够确保每次的改进活动能够得到相对更优的过程模型。其缺点是缺乏整体的规划,可能会导致改进活动杂乱无章和效率低下。
根据两种模式的优缺点,切实可行的办法就是将两者有效地结合起来,以获得高效的改进结果。同时,为了能够使软件过程改进获得成功,实施过程改进时需要遵循如下一些原则:
(1)过程改进的组织应设定一个切实可行的改进目标,并且改进目标应该建立在过程评价和过程度量的基础之上。SPI就是要在实践中发现问题,并在实践中寻找和找到解决问题的办法。
(2)过程改进是一个持续进行的活动,因此在过程改进中需要不断总结阶段性成果,并按照计划、实施、监控这样的循环方式制定一个合适的周期。需要记住:问题的解决是过程改进的核心,实践不仅是SPI组的目标也是它的起点。在过程改进中,达到一个目标你就创造了另一个更高的目标,这个目标对过程和环境都具有重要的意义。
(3)过程改进本身应被当作一个改进项目来执行。在过程改进计划中,对进度、资源分配、风险管理及相关人员责任等都要清楚的描述。
(4)过程改进需要得到组织管理层和各个部门成员足够的重视和支持,并要有适当的监控机制,以便于控制过程改进向有利的方向进行。
(5)过程改进是具有一定的风险的,因此,要注意降低相应的风险,其中主要包括由于改进目标的不适合而带来的风险和由于改进活动的不完备而带来的风险。