冯 骏
谈软件过程管理中实施的PSP和TSP
冯 骏
(天津机电职业技术学院,天津市 300131)
软件过程管理可按照一些成熟的过程模型来进行,CMMI就是在软件界应用最为广泛的过程模型。但是它仅提供了一个有力的框架,而未能明确实现过程所需要的具体知识和技能。国外很多软件企业为此推行了PSP和TSP,这一方法体系已日渐成熟。PSP/TSP不仅是卡耐基-梅隆(SEI)等国际知名大学或软件学院中学生的必修课程,同时在各行业中也有广泛的应用。我国也有越来越多的企业实施了PSP/TSP来增强企业的竞争力。
软件过程管理;个体软件过程;群体软件过程;软件能力成熟度模型
从1968年软件工程概念的正式提出到现在,软件工程已有40多年的发展,出现了大量的研究成果,也进行了大量的技术实践。正是由于学术界和产业界的共同努力,软件工程正在逐步发展为一门成熟的专业学科。目前,由SEI开发的软件能力成熟度模型(CMM)被世界公认是当前最好的软件过程,为软件开发总结了开发项目的最佳实践,并且CMM已经成为软件过程工业标准。CMM提供了一个软件能力成熟度模型的框架,它将软件过程改进的进化步骤组织成五个成熟度等级,为软件过程不断改进奠定了一个循序渐进的基础。但是,就实现关键过程所需要的具体知识和技能却未具体指明,为了弥补这个欠缺,SEI特别会员Watts Humphrey决定将单个开发人员的软件开发实践中应用CMM的基本原理。PSP(个体软件过程)就是他努力的成果,为软件开发人员设计的CMM五级过程。
PSP(Personal Software Process)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。美国Carnegie Mellon大学软件工程研究所(CMU/SEl)的Watts S.Humphrey带领团队于1995年开发并推出个体软件过程,在软件工程界引起了极大的轰动,是软件开发过程改进的里程碑,是由定向软件工程走向定量软件工程的一个标志。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则;帮助软件工程师做出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。
个体软件过程注重个人的技能,能够指导软件工程师为保证自己的工作质量而采取相应措施,估计和规划自身的工作,度量和追踪个人的工作表现,管理自身的软件过程和软件产品质量。通过学习PSP的正规训练及实践,软件工程师们能够在他们参与的项目工作之中充分利用PSP,从而保证了项目整体的进度和质量。
PSP可以被应用于软件开发过程的许多方面,包括:
·小型程序开发
·需求分析定义
·文档编写
·系统测试
·系统维护
·大型软件系统的加强
基于CMM中发现的实践,PSP可以指导工程师,帮助他建立开发软件的一套结构化和规范的方法,在软件项目开发的总体成本中往往人员成本占70%,所以工程师的技能与工作习惯很大程度决定了软件开发过程的结果。当软件开发人员在项目中面临各种各样的实际问题并寻求有效的解决问题方案时,就会更深刻地体会到PSP的作用。
TSP(Personal Software Process)是由“软件质量之父”Watts s.Humphrey提出的一种采用广泛的团队过程。TSP即群体软件过程,是为开发软件产品的开发团队提供指导,TSP的侧重于帮助软件项目开发团队改善软件质量和生产率,并使其更好的满足成本及进度的目标。在群体软件过程中,指明了如何创建高效且具有自我管理能力的工程小组,工程人员怎样才能成为合格的项目团队成员,管理人员如何对群组提供指导和支持,如何保持良好的工程环境使项目组能充分发挥自己的水平等软件工程管理问题
Watts s.Humphrey对群体软件过程的改革提出了一整套原则、策略和方法,将CMM要求实施的管理和PSP要求开发人员具有的技巧结合在一起,按时交付高质量的软件,把成本控制在预算的范围之内。
群体软件过程注重团队的高效工作和软件产品交付能力,结合PSP的工程技能,指导软件工程师怎样将个体过程结合到群体软件过程中,并正确引导管理层如何支持和授权项目小组,坚持高质量的工作,依据数据进行项目的管理,确保生产出高质量的软件产品。TSP的根本好处是它指导工程师在成本控制和大胆的进度计划下如何生产高质量的软件产品。
全球最大的软件供应商之一Microsoft,有一个项目试运行了SEI个人软件过程和群体软件过程,使一个软件开发团队改变工作行为、改进开发过程、进而交付更好的软件。按照TSP打造高绩效团队,在使用TSP之前,该团队有10个开发人员,他们对项目工作懈怠,因为该团队的成员各自为战,而不是作为一个整体。在使用了4天后,这组人成为一个真正的团队,很大程度上提高了凝聚力。
2011年11月,白玛群宗勇挑重责,把年幼的孩子送到父母身边,主动担负起驻村任务,在海拔4580米的小村庄,积极为驻村点谋发展、找出路,带动群众摆脱贫穷落后现状。这期间,她争取到资金150万元,为驻村点修建了道路桥梁,添置了村委会设备,并邀请医疗专家为群众进行免费义诊。
在软件开发(或维护)过程中,首先需要按照群体软件过程框架定义一个过程。在设计TSP过程时,需要按照以下原则:
·循序渐进的原则,首先在PSP的基础上提出一个简单的过程框架,然后逐步完善;
·迭代开发的原则,选用增量式迭代开发方法,通过几个循环开发一个产品;
·定期评审的原则,在TSP的实施过程中,对角色和群组进行定期的评价;
·过程规范的原则,对每一个项目的TSP规定明确的过程规范;
·指令明确的原则,对实施TSP中可能遇到的问题提供解决问题的指南;
·质量优先的原则,对按TSP开发的软件产品,建立质量和性能的度量标准;
TSP一般将一个软件项目的开发工作分为4个阶段。任何一个应用TSP的项目即可以包含其中的一个阶段,也可以包含几个连续的阶段。应该遵循一个确定的、可重复的过程并迅速获得反馈,这样才能使软件项目开发的改革具有成效;一个群组是否高效,是由明确的目标、有效的工作环境、有能力的领导层等四方面因素的综合作用所确定的。例如一个项目开发群体分配人力资源的可选方案如下,该项目需要n个人工作k年:
1.n个人被分配负责完成不同的m个功能任务,而且几乎没有合作的情况发生;协调是软件管理者的责任,而他可能同时还有六个其他项目要管。
2.n个人被分配负责完成不同的m个功能任务(m<n),建立非正式的“小组”;指定一个专门的小组负责人;小组之间的协调由软件管理者负责。
3.n个人被分成t个软件开发小组;每一个小组完成一个或多个功能任务;每一个小组有一个特定的结构,该结构是为同一个项目的所有小组定义的;软件开发小组成员和软件项目管理者共同承担协调工作。
虽然对于本例的每一种方法都可以找到其优点和缺点,但越来越多的证据表明群体软件过程是生产率最高的。
美国Carnegie Mellon大学软件工程研究所(CMU/SEI)主持研究与开发的CMM/PSP/TSP技术,为软件项目管理开辟了一条新的途经。CMM是英文Capability Maturity Model的简称,即软件能力成熟度模型.CMM的本质是项目管理工程的一个部分。迄今为止,产业界和学术界公认CMM是当前最好的软件过程,然而它的成功与否和软件研发机构内部有关人员的积极参加和创造性活动密不可分。因为CMM中并未提供关于实现子过程域所需的具体知识和技能,所以进行个体软件过程PSP的研究与实践可以填补这一领域的空白,而且为基于个体软件过程和群体软件过程的优化提供了具体、有效的途径。群体软件过程TSP结合了CMM的管理方法和PSP的工程技能,建立、管理、授权并且指导项目小组在不超过计划成本的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。从公布的TSP实验数据来看,结果是令人满意的。近两年来,CMM在我国获得了各界越来越多关注,业内有过多次关于CMM的讨论,2000年6月国务院颁发的《鼓励软件产业和集成电路产业发展的若干政策》对中国软件企业申请CMM认证给予了积极的支持和推动作用,第17条规定“对软件出口型企业CMM认证费用予以适当支持。”2000年中国村电脑节上开设CMM专题论坛,吸引了众多业内人士参与。华为是典型的CMM成功案例,1999年年初,华为技术公司研究管理部副总裁陈青开始了华为的CMM之路,到2001年12月,华为技术的印度研究所已成为中国第一个获得CMM4国际认证的软件研发机构。
群体软件过程(TSP)和个体软件过程(PSP)结合在一起,能够指导工程师做到:
·确保高质量交付软件
·生产高安全性的软件产品
·改进组织的软件项目过程管理·建立正确目标
·定义团队角色
·进行风险评估
·订制团队计划
图一 PSP/TSP/CMM 关系图
CMM/CMMI和PSP/TSP的创始人都是Humphrey,CMM/CMMI用于建立管理框架,设立过程改进的先后顺序,定义改进的内容等。PSP、TSP和CMM为软件产业提供了一个集成化的、三维的软件过程改革框架,如图一所示。正确指导工程师开发和维护团队的工作。它表明如何建立一个自我导向的团队、具有强大凝聚力的团队及如何扮演一个有效团队成员的角色。它还能引领管理层如何正确指导和支持这些团队,如何维护一个不断提高团队绩效的环境;PSP/TSP指导工程师如何才能完成高质量的工作;如何打造一个配合默契的团队;如何去实现CMMI所定义的目标等。他们相辅相成,互相补充,构成一个有机的整体。从软件企业角度来看,所有经验证明PSP、TSP能加速CMMI在企业范围内的实施,同时也是维持改进的需要。在众多世界知名企业开始实施PSP、TSP的情况下,中国的软件组织要提高自身的国际竞争力,PSP,TSP是必由之路,不仅帮助提升了企业的对外形象和国际认知度,还能为企业带来更大的竞争优势。
[1]Pressman,R.S.软件工程:实践者的研究方法[M].北京:机械工业出版社,2008.
[2]周之英.现代软件工程:基本方法篇[M].北京:科学出版社,1999.
[3]周之英.现代软件工程:新技术篇[M].北京:科学出版社,1999.
[4]周之英.现代软件工程:管理技术篇[M].北京:科学出版社,1999.
[5](美)Watts S.Humphrey.Introduction to the Team Software Process.[M].北京:人民邮电出版社,2001.
On Implementation of the PSP and TSP in the Software Process Management
FENG Jun
(Tianjin Vocational technology College of Mechanics and Electricity,Tianjin300131 China)
Software process management may be carried out through the maturing process model.CMMI is the most widely used process model in the software field.However,it only provides a strong framework without specific knowledge and skills needed in the process.Therefore,PSP and TSP are introduced by the foreign software companies.PSP/TSP is the compulsory course in the world's famous universities such as Carnegie - Mellon (SEI)and some software colleges.In addition,it has a wide range of applications in industries.In China,agrowing number of enterprises implement PSP/TSP to enhance the competitiveness of enterprises.
Software process management;the personal software process;group software process;software capability maturity model
TP311.5
A
1673-582X(2011)11-0096-04
2011-05-31
冯骏(1977-),女,天津市人,天津机电职业技术学院信息技术应用系讲师,从事软件工程、网络安全等理论研究。