PSP/TSP在软件项目管理方面的作用分析?

时间:2022-09-16 08:59:29

PSP/TSP在软件项目管理方面的作用分析?

摘要:个体软件过程(Personal Software Process:PSP)和团队软件过程(Team Software Process:TSP)在国外许多著名软件企业得到了广泛应用,并由此带来了令人瞩目的成效,但他们在我国的实际应用还刚刚起步。作者根据在实际应用中的结果,对PSP和TSP的优缺点以及与CMMI的关系进行了系统地分析,对他们在我国软件项目管理方面的应用前景进行了展望。

关键词:PSP;TSP;CMMI;软件过程;项目管理

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)06-11774-02

1 引言

Watts Humphrey 作为8000个工程师的编码主管,在IBM长达27年的工作期间,亲身经历过无数次软件项目开发的成功与失败,总结出一系列宝贵经验,并于1986年开始研究并于1991年提出能力成熟度模型CMM,为软件过程改进制定了基本框架。之后,他意识到CMM只告诉企业"应该做什么",而没有告诉企业,特别是每一个开发人员"应该怎样做"。针对这一欠缺,Humphrey在1994年推出了PSP和TSP。虽然PSP/TSP在国外许多大中型软件企业得到了广泛应用,并取得了令人瞩目的成效,但在我国刚刚起步。本文用具体实例说明了PSP/TSP能给企业带来的效益,对项目小组的作用及其与CMMI的关系。

2 PSP在软件开发和项目管理中的作用

2.1 PSP能使您成为一名更好的专业软件工程师

在当今社会,要在规定的期限内开发出高质量的产品,对于一个开发人员只有高速的编码技术远远不够。通过PSP培训可让他们掌握软件过程管理和项目管理方面最先进的技能和最佳的实践[1]。具体为:精确地估算软件规模大小;合理安排自己的项目开发时间;以时间和规模为根据合理地规划项目,准确地预计工期;减少产品缺陷;使用挣值法跟踪进度;收集数据来持续地提高自己的生产率、软件质量、以及工期预测能力等。PSP不仅可以帮助开发人员提高编码水准,还可指导他们更好地进行需求或过程定义、评审、测试、文档编写等。Humphrey认为如果开发人员遵从PSP的所有规范,实际上已经在按CMMI5级的要求进行软件开发了[2]。我们对北京某公司37名开发人员培训的部分结果如图1和2所示。每人按PSP要求,编写10个小程序,进行规模和开发时间估算等。从图中看出,每个人在做了6个程序后,他们的估算误差都已低于10%。

2.2 PSP能提高工作效率与编码速度

在引入一个新过程时,开发人员需要处理一些与过程有关的事情,如记录自己的开发时间和缺陷数等。公司领导最关心的事情之一是这些会不会影响工程师的工作效率,如编码速度会不会降低?图3是SEI对886个开发人员的统计结果,质量目标指定为每千行缺陷数低于5,在此前提条件下,程序员未受PSP训练时,编写357个程序的平均速度是28.66行/h,接受PSP标准训练后,编写1272个程序的平均速度是30.33行/h。这主要是由于采用PSP后,工程师做开发时逻辑思路更清晰,计划、设计等更完善,生产率反而得到了提高。

图1 PSP开发时间估算误差 图2 PSP程序规模估算误差

图3 使用与不使用PSP时工程师编码速度对比

3 TDP在软件开发和项目管理中的作用

3.1 TSP使领导对交货日期和开发成本了如指掌

TSP不仅提供了一套完整的过程改进方案,而且还提供了相应的项目管理工具,再结合PSP中的规模估算等技术,开发人员能非常准确地估算和预测项目开发所需的总时数。因而计算产品交货日期和开发成本就变得易如反掌,增加了与客户谈判的砝码[4]。图4是AIS公司使用CMM和TSP后进度预测准确度变化情况。在引入CMM或TSP之前,产品交付日期预测与实际平均相差一倍多。引入TSP后,对项目进度采用挣值法(EV)管理,每天对开发人员的开发进度自动更新,项目组每周进行汇总。项目经理和高层领导能及时掌握项目进展情况,对落后的项目及时采取有效措施,保证了按期交付。

图4 预测进度与实际进度的偏离/天

3.2 TSP使产品交付时每万行代码的缺陷数小于1

TSP特别重视质量管理,其基本策略是在每一个开发阶段采用自我评审,在重要的阶段进行同行审查。力争在项目开发的早期彻底的将缺陷消灭,这样可以大大节约开发、测试、以及维护成本。采用TSP后,许多公司在交付产品时,已经能够将缺陷率控制在每万行低于一个缺陷以内[4]。图5列举了波音公司的数据,在进行第9个时,虽然软件规模增加了2.36倍,由于采用了TSP,总缺陷数反而降低了75%。

图5 大大降低产品缺陷率

3.3 TSP能大大缩短系统测试时间

在通常情况下,测试时间要占系统总开发时间的45%或更多,主要依赖于客户对产品质量的要求。根据经验,采用TSP后,进行测试时缺陷数已非常低,曾遇到验收测试时仅仅发现一个缺陷的情况。这样就大大节省了测试和随后的维护时间,总的生产率一般能提高1倍以上。微软为了保证产品质量,曾投入了大量的人力和时间来进行测试,几乎一半时间用于测试和缺陷排除。他们采用TSP后,验收测试时所发现的缺陷数较以往低得多,将测试时间缩短到总开发时间的11.5%,使项目节省成本35%,产品交付时间大大提前[5]。

3.4 PSP/TSP/CMMI三位一体,使CMMI晋级时间大大缩短

CMM/CMMI和PSP/TSP的创始人都是Humphrey,CMM/CMMI用于建立管理框架,设立过程改进的先后顺序,定义改进的内容等;PSP/TSP指导工程师如何才能完成高质量的工作,如何才能形成一个配合默契的团队,如何去实现CMMI所定义的目标等。他们相辅相成,互相补充,构成一个有机的整体。根据SEI在今年4月的最新研究,PSP/TSP对CMMI的25个过程域覆盖率达90%以上。图6列出了PSP/TSP对CMMI 2级7个过程域的覆盖情况,其它级别的过程域覆盖情况类似。

图6 TSP实践对CMMI二级过程域的覆盖

如果在CMMI项目正式实施之前进行TSP项目,CMMI的效果会更好,而且晋级时间大大缩短。根据SEI对所有实施CMMI项目的统计,从三级到四级的平均时间为36个月。NAVAIR公司实施CMMI时,与PSP/TSP相结合,从一级到四级仅仅用了34个月时间(图7)。

图7 PSP/TSP加速CMMI晋级

4 结束语

就国内十几家企业推广的情况来看,PSP/TSP所取得的效果基本上与国外情况一致,有些方面甚至更好,如CMMI晋级,投入产出比等。在投入方面,公司不用聘请国外的专家和评估师,国内的咨询师完全能满足要求;做项目启动时,只需聘请一次有资质的教练做启动,以后公司可以自己做启动,大大降低了成本。一般能在半年之内将投入全部收回,而公司所得到的回报却是长期的。由于CMMI实施起来较为复杂,投入较大,对咨询师的要求高,如果先用容易实施的PSP/TSP打好基础,再实施CMMI将取得事半功倍的效果。

参考文献:

[1]PSP(sm):A Self-Improvement Process for Software Engineers.Reading,MA: Addison-Wesley,2005.

[2]Humphrey W.S.A Discipline for Software Engineering.Reading,MA:Addison-Wesley,1995.

[3]Humphrey W.S.Winning with Software:An Executive strategy.Boston:Addison-Wesley.2002.

[4]Humphrey W.S.Managing the Software Process.Reading,MA:Addison-Wesley,1989.

[5]Davis N,Mullaney J.2003,Team Software Process (TSP) in Practice. SEI Technical Report CMU/SEI-2003-TR-014, 2003.

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:信息技术环境下学生自主学习的实验与研究 下一篇:《完美世界国际版》武侠的狂魔之路