团队软件过程(Team Software Process,简称 TSP)
目录 |
团队软件过程是为开发软件产品的开发团队提供指导,TSP的早期实践侧重于帮助开发团队改善其质量和生产率,以使其更好的满足成本及进度的目标。TSP被设计为满足2~20人规模的开发团队,大型的多团队过程的TSP被设计为大约最多为150人左右的规模。
团队软件过程(TSP)加上PSP帮助高绩效的工程师在一个团队中工作,来开发有质量保证的软件产品,生产安全的软件产品,改进组织中的过程管理。通过TSP,一个组织能够建立起自我管理的团队来计划追踪他们的工作、建立目标,并拥有自己的过程和计划。这些团队可以是纯粹的软件开发团队,也可以是集成产品的团队,规模可以从3到20个工程师不等。TSP团队在广泛领域里可能运用XP, RUP或其它方法。TSP使具备PSP的工程人员组成的团队能够学习并取得成功。如果你的组织运用TSP,它会帮助您的组织建立一套成熟规范的工程实践,确保安全可靠的软件。
软件过程控制是软件企业成功的关键,但过去一直缺乏一套可操作的规范来具体指导和规范项目组的开发。PSP和TSP为企业提供了规范软件过程的一整套方案,从而解决了长期困扰软件开发的一系列问题,有助于企业更好地应对挑战。PSP主要指导软件工程师个人如何更好地进行软件设计与编码,关注个人软件工程师的能力的提高,从而保证个人承担的软件模块的质量,对于大型项目中的项目组如何协同工作、共同保证项目组的整体产品质量则没有给出任何指导性的原则。个人能力的提高同时需要一个有效地工作在一个团体(小组)环境,并知晓如何一致创造高质量的产品。为了提高团队的质量及生产能力,更加精确地达到费用、时间要求,结合PSP的原则提出了TSP以提高小组的性能,从而提供工程质量。TSP能够指导项目组中的成员如何有效地规划和管理所面临的项目开发任务并且告诉管理人员如何指导软件开发队伍始终以最佳状态来完成工作。
团队软件过程TSP基于以下4条基本原理:
在软件开发(或维护)过程中,首先需要按照群组软件过程框架定义—个过程。在设计TSP过程时,需要按照以下7条原则:
在实施群组软件过程TSP的过程中,应该自始至终贯彻集体管理与自我管理相结合的原则。具体地说,应该实施以下6项原则:
在TSP的实践过程中,TSP的创始人Humphrey建议在—个软件开发小组内把管理的角色分成客户界面、设计方案、实现技术、工作规划、软件过程、产品质量、工程支持以及产品测试8类。如果小组成员的数目较少,则可将其中的某些角色合并;如果小组成员的数目较多,则可将其中的某些角色拆分。总之,每个成员都要独立相当一个用色。
软件开发小组按TSP进行生产、维护软件或提供服务,其质量可用两组元素来表达;一组元素用以度量开发小组的素质,称之为开发小组素质度量元;另一组用以度量软件过程的质量,称之为软件过程质量度量元。
开发小组素质的基本度量元有以下5项:
应该指出,这5个度量元是针对软件产品的开发来陈述的,对软件产品的维护或提供其他服务,可以参照这些条款给出类似的陈述。
软件过程质量的基本度量元有以下5项:
无论是开发小组的素质,还是软件过程的质量,都可用一个等五边形来表示,其中每一个基本度量元是该等五边形的一个顶。基本度量元的实际度量结果,落在其顶点与等五边形中心的连线上,其取值可以根据事先给出的定义来确定。在应用TSP时,通过对必要数据的收集,项目组在进入集成和系统测试之前能够初步确定模块的质量。如果发现某些模块的质量较差,就应对该模块进行精心的复测,有时甚至有必要对质量特别差的模块重新进行开发,以保证生产出高质量的产品,且能节省大量的测试和维护时间。
TSP由一系列阶段和活动组成。各阶段均由计划会议发起。在首次计划中,TSP组将制订项目整体规划和下阶段详细计划。TSP组员在详细计划的指导下跟踪计划中各种活动的执行情况。首次计划后,原定的下阶段计划会在周期性的计划制订中不断得到更新。通常无法制订超过3到4个月的详细计划。所以,TSP根据项目情况,每3-4个月为一阶段,并在各阶段进行重建。无论何时,只要计划不再适应工作,就进行更新。当工作中发生重大变故或成员关系调整时,计划也将得到更新。在计划的制订和修正中,小组将定义项目的生命周期和开发策略,这有助于更好地把握整个项目开发的阶段、活动及产品情况。每项活动都用一系列明确的步骤、精确的测量方法及开始、结束标志加以定义。在设计时将制订完成活动所需的计划、估计产品的规模、各项活动的耗时、可能的缺陷率及去除率,并通过活动的完成情况重新修正进度数据。开发策略用于确保TSP的规则得到自始至终的维护。图1中描述的只是TSP阶段、活动的标准集合,实际的TSP更像是分成阶段的众多循环构成的。TSP过程遵循交互性原则,以便每—阶段和循环都能在上一循环所获信息的基础上得以重新规划。