引言
Watts Humphrey 作为8000个工程师的编码主管,在IBM长达27年的工作期间,亲身经历过无数次软件项目开发的成功与失败,总结出一系列宝贵经验。在
美国国防部的赞助下,他 于 1986年开始研究并于1991年提出能力成熟度模型CMM,为软件过程改进制定了基本框架。之后不久,他意识到CMM
只告诉企业 "应该做什么",而没有告诉企业特别是每一个开发人员"应该怎样做"。针对这一欠缺,Humphrey在1994年推出了个体软件过程(Personal
Software Process,PSP)和群组软件过程(Team Software
Process, TSP)。在我国, 周伯生教授于1994年首次在广州对PSP技术作了介绍,又于1999年在广州对TSP技术首次作了全面系统的介绍。
虽然PSP/TSP在国外许多大中型软件企业得到了广泛应用,并取得了令人瞩目的成效,但在我国还属于刚刚起步。那么,PSP/TSP适合中国的国情吗?它们真的那么好吗?它们能给您的企业带来什么?对开发人员又有何利弊?对项目小组有什么作用?项目经理和高层领导能从中得到什么?它与CMMI是什么关系?本文和下一篇文章用实际例子和真实数据来回答这些问题。
PSP-提倡以人为本
多数软件工程师总喜欢把自己当作精英,崇尚个人主义,以编码速度快而自傲。管理人员进行项目管理时,往往会采用统一死板的模式,将规定强加于工程师身上,效果不佳。
PSP过程改进正是针对这一情况,采用以人为本的方针,以自身为出发点,从本人做起。工程师根据自身的情况,亲自搜集有关本人的开发数据,基于这些来制订最适合自己的改进目标和具体的改进措施,并实行自我监督。自觉地、不断地改进和提高。从理论上讲,这种策略最有实效,易于接受。
PSP-使您成为一名更好的专业软件工程师
从我们上第一堂程序课开始,老师只教编程技巧,学生比的是编码速度。然而,在当今社会,要在规定的期限内开发出高质量的产品,对一个开发人员的要求远远不止这些。
PSP
培训就是给开发人员补课,让他(她)们掌握软件过程管理和项目管理方面最先进的技能和最佳的实践,包括:精确地估算软件规模大小
;合理安排自己的项目开发时间;以时间和规模为根据合理地规划项目,准确地预计工期;
减少产品缺陷;
度量和跟踪自己的绩效;使用挣值法跟踪进度;兑现自己所做的承诺;抵制不合理的承诺压力;收集数据来持续地提高自己的生产率、软件质量、以及工期预测能力;客观地发现自己的薄弱环节并及时进行改进提高等。
PSP
不仅帮助您提高编码水准,还指导您更好地进行需求或过程定义、评审、测试、文档编写等。作为一个开发人员,如果您拥有了这些,您无疑已成为一个真正的软件工程师。按照
Humphrey 的观点, 您如果遵从 PSP
的所有规范,您实际上已经在按 CMMI 5
级的要求在进行软件开发了。
学习 PSP
并不难,您只需要 10
天的强化训练,就能掌握所有技巧,并获得由
SEI 颁发的全世界通用的证书。图 1 和图 2
是我们在北京某公司对开发人员进行培训时的部分结果。全班
37 名学员,每人按 PSP 要求,编写 10
个小程序,进行规模和开发时间估算等。从图
1 , 2 看出,在做了 6
个程序之后,大家的估算误差已低于 10
%。项目组在开发项目时,通常大家先各自估算,然后汇总平均,正负误差抵消,这样结果会更好。
图 1, PSP培训时开发时间估算误差
图 2, PSP培训时程序规模估算误差
PSP-额外的工作不会影响编码速度
在引入一个新过程时,开发人员需要处理一些与过程有关的事情,如记录自己的开发时间和缺陷数等。公司领导最关心的事情之一是这些会不会影响工程师的工作效率,如编码速度会不会降低?图
3的数据很好地回答了这一问题。
图 3, 使用或不使用PSP时工程师编码速度对比
这是SEI对886个开发人员的统计结果,质量目标指定为每千行缺陷数低于5,在此前提条件下,程序员未受PSP训练时,编写357个程序的平均速度是28.66行/小时,接受PSP标准训练后,编写1272个程序的平均速度是30.33行/小时,不仅没有下降,反而有所提高。一部分工程师的编码速度仍然高达每小时100多行。有人可能要问,这似乎不太可能,但仔细想想,采用PSP后,工程师做开发时逻辑思路更清晰,计划、设计等更完善,编译时间大大缩短,生产率反而得到提高就不足为怪了。
PSP-真正的免费午餐
PSP始终把产品质量控制放在首位,强调在各开发阶段进行自我评审和同行审查,在各开发阶段就把Bug控制到最低限度。使用PSP/TSP后,
产品缺陷率会成倍地下降(进一步的说明见下文)。图3的数据和SEI多年的研究结果已经证实,使用PSP后代码编写速度不仅不会下降,反而还略有回升,额外收获是我们得到了产品的高质量,
真正的免费午餐。
PSP-经过国内外无数家著名公司的验证
PSP技术从1996年开始在工业界推广,先后被IBM、波音公司、
Advanced Information Services、Teradyne、Motorola、XEROX、Honeywell、ABB等1000多家公司所采纳和接受。去年,微软正式宣布采用PSP/TSP技术进行软件开发并取得了非常好的效果。可喜的是,早在2003年,在赛柏科技,我国已经有了自己的第一位SEI正式授权的PSP正规培训师,目前正在培养更多的PSP培训师和TSP启动教练。相信在不久的将来,该技术将在我国得到更为广泛的推广。 |