当年我在某所推进GJB5000标准的时候,就有这样一个理念:只靠少数几个人建立起一套符合GJB5000标准的软件过程管理体系,然后就让所有软件开发人员照此执行,这样推进GJB5000的实施是有问题的。
原因有二:一是少数人制定的软件过程管理体系未必就是最佳实践的集合,谁能笃定你写的过程就是你们组织的标准过程?二是如果软件开发人员没有一定的软件工程基础,对软件过程管理体系的要求“知其然,不知其所以然”,体系的执行效果也不会好。
所以,我认为在推进GJB5000实施之前应当先对软件开发人员进行培训,提高他们的软件工程能力。
而能完成这一意图的培训,最好就是PSP(Personal Software Process,个体软件过程)培训。
为什么这么说呢?
这要从PSP的诞生说起。
我们知道GJB5000脱胎于CMM/CMMI,而CMM/CMMI它只是描述了过程改进的框架,并没有提供“如何实施”的指南。而PSP正是为了解决这个问题,由Watts S. Humphrey主持开发出来的。
什么是PSP?
PSP是一种控制、管理和改进个人软件开发方式的过程,它包含一套完整的软件开发表格、指南和规程,而不仅仅只是一个框架。PSP能够帮助软件开发人员做出较准确的计划,确定改善软件产品质量所要采取的步骤,建立度量个体软件开发过程改进的基准。
像CMM/CMMI那样,PSP也有一个阶梯式的演化框架,它有4个级别,从PSP0到PSP3,更高级别包含了更低级别的所有元素,并增加了新的元素。就像实施GJB5000A的三级,不仅增加了11个过程域,而且同时也包含了二级的7个过程域的内容。
下面对PSP这4个级别做简单的介绍。
PSP0的目的是建立个体软件过程的基准。软件开发人员通过PSP0的训练,可以学会使用各种表格采集过程的有关数据,用做测量在PSP的过程中进步的基准。在PSP0.1中增加了编码标准、程序规模度量和过程改进建议等三个关键过程域。
PSP1的重点是个体计划。软件开发人员通过PSP1的训练,学会使用自己的历史数据来预测新程序的规模和需要的开发时间,并使用线性回归方法估计策划参数,评价预测的可信程度。PSP1.1增加了对任务和进度的规划。
PSP2的重点是个体的软件质量管理。软件开发人员通过PSP2的训练,学会对设计和代码进行审查的技术,以更早发现缺陷和修复缺陷。PSP2.1介绍了设计方法,并提供了设计模板。
PSP3的目标是把个体软件开发所能达到的生产效率和生产质量,扩展到大型软件。方法就是把大型软件分解成小模块,通过应用PSP2.1高效高质量地开发完成这些小模块,再把这些模块集成为大型软件。
所以,通过PSP培训,可以让软件开发人员理解度量和计划的意义,更好地控制软件质量。这也会帮助我们更好地推进GJB5000A的测量分析过程、项目策划和监控过程、评审过程……
据统计,软件项目开发成本的70%取决于软件开发人员个人的技能、经验和工作习惯。因此,一个组织的软件开发人员如果能接受PSP培训,既能够节约项目成本,实现高效高质量地开发,同时对该组织的提升软件能力成熟度通过GJB5000评价认证也是一个有力的保证。
实际上,我们当时接受PSP培训的软件开发人员在接受GJB5000A评价组访谈时表现都很不错,我们也顺利地通过GJB5000A的三级认证。
可惜的是,后面的新人没有这个待遇,这个PSP培训仅举办了一次……
这正是:
五千仅仅是框架,具体实施PSP
培训过后有能力,开发过级没问题
参考书目:软件过程改进案例教程,作者:韩万江,张笑,陆天波,出版社:电子工业出版社
联系客服