《团队软件过程(修订版)》目录—导读

  1. 云栖社区>
  2. 博客>
  3. 正文

《团队软件过程(修订版)》目录—导读

异步社区 2017-05-02 15:16:00 浏览2074


f96912f95d139d13b91ec7e7268dca3afc624030

版权声明
团队软件过程(修订版)
Authorized translation from the English language edition, entitled INTRODUCTION TO THE TEAM SOFTWARE PROCESS, 9780201477191, by Watts S. Humphrey, published by Pearson Education, Inc, publishing as Addison Wesley Professional, Copyright © 2000 Pearson Education, Inc.

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. CHINESE SIMPLIFIED language edition published by PEARSON EDUCATION ASIA LTD., and POSTS & TELECOMMUNICATIONS PRESS Copyright © 2015.

本书封面贴有 Pearson Education(培生教育出版集团)激光防伪标签。无标签者不得销售。

内容提要
团队软件过程(修订版)
《团队软件过程》(简称“TSPi”),是美国Embry-Riddle Aeronautical大学为计算机科学系研究生和高年级本科生开设的一门软件工程课的教科书。这本书系统地论述了如何以开发团队的形式来进行软件的开发,并对开发过程作出了具体而详尽的指导,包括团队成员之间的协调、进度的管理、质量的控制等令读者最感兴趣的方面。

全书内容包括四个部分:第一部分——绪论,包括前两章,是对理论的简单介绍,介绍了什么是TSPi、TSPi的组织结构等内容。第二部分——TSPi过程,包括第3章到第10章,则是整个小组研究周期的详细内容,详细解释了小组软件开发的步骤,并且给出了 TSPi完整形式的例子。第三部分——小组角色,包括第11章到第15章,提供了小组成员角色的细致描述:小组领导者、开发经理、计划经理、质量/进度监督经理,以及技术支持经理。第四部分——使用TSPi,包括第16章到第18章,讲述了在使用本书的过程中需要注意的一些原则。

本书实用性与可读性较强,适用于软件开发项目经理、程序员和一般编程爱好者在开发软件时参考,也可作为高等学校计算机软件工程课程的参考书使用。

给学生的话
团队软件过程(修订版)
为了帮我准备给学生的话,Tom Hilburn教授从他在Embry-Riddle大学的第一届TSPi课程中选了 3 个学生。他们 3 人都是课程中的小组领导,其中两人还曾参与过真实项目的封闭开发。Tom询问了他们关于本课程的意见以及他们想对同学们说的话,下面我就摘录几段。

为什么学习TSPi?在填表比做项目本身花费时间更多的情况下,为何还要使用TSPi?这些问题都有明确的答案。学习新东西时,你肯定不想从明显超出自己能力的大事开始。你得从一些小事开始,以便弄清楚要学什么。这就是学习TSPi的方法。从一个不需要过程就可以顺利完成的小项目开始。一旦掌握了TSPi,你就会发现这是很必要的。尽管在大多数情况下,完成学校作业并不需要TSPi,但是,规模较大的实际工业项目却很需要TSPi。TSPi的用处在于,它能够让每一个人知道该如何完成项目。因此,记住你现在只是在学习过程,只有当你遇到个人无法解决的问题之后,这知识的益处才会显现出来。

大多数计算机科学专业的学生都学过如何独立开发程序。在团队项目中,学生们喜欢用结构化的过程来应对开发任务,并积累团队工作经验。团队交流成为软件过程的一个全新的方面。诸如沟通、信任、激励、承诺、友情、职权、专注质量、平衡工作量、分配角色、解决问题的方法,以及了解同组人并向他们学习等方面,都是团队过程的有机组成部分。TSPi提供了处理这些常见问题的方法和建议。学生们必须适当地修改过程,以适应特殊的团队工作条件,并且学习如何处理其他书本上没有提到的问题。

我们学到了一些关键的事情,在团队成员之间必须要有良好的沟通与信任,每个人都必须学会如何与不熟识的人一起工作,这些是必要的。大多数小组都希望尽早完成开发任务,以便给质量评审工作留出大量的时间。团队成员不仅要主动承担适合自己技能特点的工作任务,还要力所能及地帮助工作量过大的组员。这种团队协作模式激励我们,绝不能让团队陷入困境,不论何时何地,都应该尽可能地相互帮助。在项目的第一个阶段,我们团队更倾向于开发产品,而不是遵循过程。在第二个阶段,工程师们认识到了表格和计划的价值,这就推动我们去遵循过程。

我们很少遇到有关工作动力和承诺的问题,一旦遇到,我们就必须简要地讨论这些问题。最困难的事情莫过于在与其他团队成员一起客观的做决定和处理事物。如果我们交流不足,项目工作可能事倍功半。我们认识到,每个人都必须承担团队协作的责任,了解角色之间的关联性和相互帮助的重要性。同时,我们认识到,如果你自己尽力而为,整个团队都会乐意帮助你。TSPi给学生提供了一个良好的开端,让他们真正了解未来工作中可能遇到的事情。要是有可能,将来的培养计划最好重新组织,以便为学生提供此类课程。

项目管理箴言:TSPi需要出色的管理技巧和能力。TSPi为团队提供了大量工具,但是,需要团队领导为项目建立阶段规划。作为团队领导,我曾尝试过几种项目管理方法,大多数都奏效了,但是也至少有一次没有任何效果。作为领导,你必须乐于投入与一般组员同样多的时间,深入底层工作,并且在必要时给大家帮助。领导必须能够通过语言或行动激励他人。给你的团队足够的工作空间,让他们在设计中有发挥创造力的机会,除此之外,带领大家遵循过程,并且培养大家的团队协作精神,这些工作会在问题频现的项目后期显现巨大的价值。对项目的短期管理也是有效的,保证整个团队都参与计划的制定,争取每一个人能计划他们的每一步工作,跟踪团队的进度,在进度延期时及时采取补救措施。

团队领导必须为防患于未然预先做一些计划。要知道,可能某个团队成员不能完全投入工作,或者因为伤病无法工作。这些情况在我的项目中都曾出现过。这些问题能够分裂一个团队,让团队工作效率低下,也可能帮助他们让整个团队更加团结,并且提高工作效率。究竟会出现哪种情况,就看你如何处理了。面对这些问题的时候,你必须承担起领导责任。享受团队每个人的体验,深入了解整个团队,帮助团队成员去激励他们自己并且激励别人;努力工作,并做计划;在处理数字时,学会使用电子表格节省时间;保持沟通渠道的畅通,经常在一起讨论。记住一点:不管情况有多糟糕,也总会有解决办法的。“永不放弃,就永不失败!”

给教师的话
团队软件过程(修订版)
随着软件开发复杂度的不断增长,业界要求软件工程师更称职、经过更多训练,这意味着软件开发课程必须向学生提供与软件工程实践相关的知识和经验。Embry-Riddle Aeronautical University工业顾问委员会(Industrial Advisory Board)指出,下列问题是训练入门软件工程师的关键:

沟通(包括口头和书面);
作为团队一员进行工作的能力;
胜任软件开发的前端工作(需求和高层设计);
对待工作的专业态度;
应用软件过程的知识和技能;
计算基础;
知识广度(学习新技术的能力)。
在我教授软件工程导论课程的八年中,我努力尝试了向学生提供软件开发全生命周期的概况,也曾试图让他们作为团队一员进行工作。我尝试过真实项目,游戏项目,小规模团队开发,大规模团队开发,大量使用工具的项目,几乎不使用工具的项目,强调产品和强调过程的项目等。直到最近,我才取得一点成功。过去大多数时候,我都试图做太多事情,结果导致学生和老师最终都很灰心和失望。

过去的一年中,我使用了团队软件过程(TSPi)的草拟版本,并取得了授课以来最大的成功。尽管TSPi并不是灵丹妙药,但它在改进软件工程教育方面确实产生了很好的效果。不仅对学生,TSPi还告诉老师该做什么、怎样做以及什么时候做。本书涵盖了TSPi的所有必需材料:脚本、表格以及几乎涉及学生小组软件开发所有方面的指导。它出色地诠释和推动了TSPi活动,并且完整地描述了每个团队角色。它还提供了如何处理团队管理问题的常识性方法。另外,在计划、跟踪以及评估性能和质量方面,它给出了详细的量化技术方法。

虽然本书只给出了两个项目的初步的需求描述,但是TSPi非常灵活,可以应付各种中等规模的项目。TSPi也可经调整后用于维护性项目,需求和设计课程,还可用于任何团队软件活动。例如,我们正在一个为真实客户开发产品的高级设计课程中使用TSPi。TSPi加入了增量式开发方法,该方法提供了完整可靠的软件开发方案,同时也是一种出色的教学方法。在第一个增量(只包含简单需求)中,学生学习TSPi过程,学会与小组一起工作。在后续的一两个增量中,小组就可以基于先前的经验提高性能了。

尽管在软件工程课程中使用TSPi,学生可以学到很多东西,但不管是通过课程学习还是自学,学生首先要有个体软件过程(PSP)的基础。在Embry-Riddle大学,学生可在一年级程序设计课程中学习PSP,从而获得学习和使用TSPi的必要基础。不管是教师还是学生,TSPi课程都需要花费大量的时间。在几次意见调查(每个增量结束)中,学生都非常认同TSPi。最普遍的问题是在于对数据收集与记录方面——尽管大多数学生都知道这一工作的重要性。

总之,如果你曾经为了开设高质量的软件工程课程而苦恼,我强烈建议你试试TSPi。它在为学生讲授软件工程实践,帮助学生打好工作基础方面,提供了有益的指南、指导和支持。

Thomas B. Hilburn, Aboalfazl Salimi, Massood Towhidnejad

Embry-Riddle 航空大学

译者序
团队软件过程(修订版)
人民邮电出版社邀请我们重新翻译《团队软件过程》(Introduction to the Team __Software Process)这本书,我们欣然答应了。该书面向软件工程师和团队管理者而写,将软件工程与管理方法很好地融合在一起,具有很强的实践指导意义。该书集成了软件工程、估算、计划与跟踪、质量管理和自我指导团队的概念,使之更容易结合一个组织机构内的现有实践。TSP适合大多数业务开发和技术,可以在小周期、螺旋增量式周期或者在瀑布模型中迭代实施,敏捷而有规范地管理,正是适合当前的开发模式,也更适应小型软件组织机构开发管理的特点。虽然这本书出版了很多年,但是书中的精髓还没有真正为人们理解和掌握。如今TSP在世界范围越来越广泛地被采用,CMU/SEI每年都举办TSP研讨会,提供一个交流TSP实践方法和概念的场所。2010年年会的主题为“改变软件工程的世界”,不得不使我们要加倍关注它在当今软件工程和管理上的价值。

软件开发是一个极具有挑战性的工作。每个项目都可能面临不断变更的需求,进度永远是紧迫的,资源也总是短缺的。在其他行业,工程师是个令人羡慕的职业。而对软件业来讲,大部分的工程师大都以一个受害者的形象在行业中出现,他们陷入困境不能自拔。该书的作者Watts Humphrey说软件工程师要想摆脱这个局面,需要做到四件事:第一,具有正确的态度;第二,适当的技能;第三,要有改进的勇气;第四,富有可信度。TSP/PSP帮助软件工程师做到了。

本书主要是针对开发软件密集型产品的工程团队而写的指导书。使用团队软件过程帮助软件工程师、项目经理和组织机构建立一个成熟和有规范的工程实践,在最短的时间和较低成本条件下生产出安全、可靠的软件。本书对经过Personal Software Process (PSP,个体软件过程)培训后的工程师和学生特别有用,它介绍了TSP和具体的改进软件团队工作需要的具体步骤。TSP不但提高团队绩效,同时也能提高工程师的个人绩效。TSP已经在世界近百家企业采用,如IBM、微软、oracle、Adobe等。据2008年的统计,特别是微软,已经投资大约300万美元在IT公司引进TSP,已经培训了上千名PSP开发人员,超过200个TSP项目。由于微软已经在质量和进度预测方面得到了改善,预计TSP已经为它们节省8400万美元。墨西哥政府自2000年开始,出资支持企业实施TSP。同时TSP是对CMMI模型的补充,提供了最优实践和操作实例来指导团队获得更优的性能绩效。它可以加速实施CMMI各个等级,特别是高成熟度等级,是高性能实施过程改进的最佳途径。TSP已经应用在各种领域的小型和大型组织机构,都取得了相似的结果。例如在企业生产力方面提升了25%,甚至更多;减少成本和进度偏差至+ / − 10%以下;测试成本和进度减少超过80%。如果希望了解更多有关SEI的TSP发展,可以通过查询以下网址http://www.sei.cmu.edu/TSP/,或跟踪www.sei.cmu. edu/tspsymposium,可以通过这个研讨会网址了解更多会议内容,或是浏览过去的会议资料。

Watts Humphrey曾经说过,软件是大量的知识智力工作,当人们不理解他们正在做的事的话就很难去管理这些人。自1986年,他将全部精力献身于软件工程领域,努力通过实践有效的管理原则来改变软件软件工程的世界。他创造了个体软件过程(Personal Software Process,PSP),来帮助软件工程师通过使用有规范的、数据驱动的方式进行自我管理他们的项目。Humphrey获得了举世瞩目的成就,终于在2005年荣获美国总统颁发的国家技术奖章。

我们将这本书再版翻译出来,推荐给读者,目的是提供更具体详细的关于小组软件过程的方法和实践,期望将这些方法运用到你的组织机构中,对软件开发和改进产生深刻的影响。本书内容丰富,通俗易懂,实用性强,可作为大学、研究生计算机专业教材,更适合企业中的软件开发团队作为实训和培训的指导教材。

在我国,已有一些企业在实施CMMI前或过程中,将PSP和TSP作为建立实践基础的必要阶梯。PSP和TSP的引入和推广,已经成为培养优秀软件工程师的摇篮。

从国内整体来看,软件工程师的从业专业水准还没有与国际接轨,积极推广PSP和TSP是解决软件开发人才短缺、缩短培养周期的主要途径之一,也是为持续过程改进,提高生产率、软件质量和缩短开发工期的长远之计。

在这本书的翻译过程中,从SEI传来了一个不幸的消息,Watts Humphrey于2010年10月28日与世长辞了,我们为失去这位伟大的行业领袖而遗憾,这个译文也是为了纪念他,希望他的遗产能为中国软件产业的发展和改进造福。

最后,由于我们的水平有限,在本书的翻译中难免有错误或不妥之处,恳请读者批评指正。

吴超英 师春泽 汪浩

2011年3月

导读
团队软件过程(修订版)
这本书是为已经学习并使用过个体软件过程(PSP)的学生和工程师准备的。你可能在研究生课程、高级培训课程或者初级导论课程中学过PSP。或者,你可能是工程师,正在探索如何在实际的团队工作环境中应用PSP。不论是哪种情况,只要你学过PSP,你就具备了使用本书中的方法和实践的基础。

学习过PSP之后,你可能需要指导,以便弄清如何将它应用于软件过程的诸多任务上。这就是团队软件过程(TSP)的主旨:为在软件开发领域中应用成熟的工程学方法提供一个框架。

关于团队协作有很多东西可讲,本书只涵盖了最基本的内容。TSPi(团队软件过程导论)介绍了团队的概念,组建团队的基本步骤,以及在团队中工作的方法。但是要注意,本书是为导论课程设计的,并没有涵盖在大规模工业项目中使用TSP的全部资料。

TSPi是如何帮助工程师的
本书向工程师介绍有关软件开发团队协作的内容。TSPi提供了一系列结构化的步骤,告诉工程师每一步该做什么,并且详细阐述了如何将这些步骤连接起来以开发完整的产品。TSPi还提供了两个饶有趣味且相对具有挑战性的项目练习,每个练习都具有适当的规模。既不过大,以保证在几周之内可以完成;也不过小,以保证可以模拟典型的小规模项目。如果有能力的工程师遵循本书的指导,那么他们一定能开发出完整的工作产品。

在本书建议的TSPi策略中,团队在两到三个周期内开发一个产品。在第一个周期内,团队构建工作产品内核。在后续的每个周期内,逐渐向内核加入新功能。这种策略体现了使用历史项目数据来制定新项目计划的好处。另外,由于在每个周期中都有新的角色,工程师们可以在一个项目中就经历两到三种不同类型的工作。经过几个开发周期后,工程师们就会对团队协作方法有一个广泛的了解,这样一来,他们就更有可能在自己将来的工作中继续使用TSPi方法。

为何要学习TSPi课程
经实践证明,在培养软件工程专业的学生方面,项目课程是行之有效的,因此,越来越多的大学开始开设相关课程。这些课程很受学生欢迎,修习人数一般都会超过预期。学生想学习可应用于将来工作的知识,而团队训练课程正好满足了他们的需要。毕业后的学生及其雇主普遍反映,软件项目课程为实际工作打下了良好的基础。

现在,在团队项目课程方面,已经有很多有益的实践。尽管大多数此类课程都是成功的,但普遍有三个问题:第一,学生经常去尝试过大的项目;第二,他们大多只强调产品而忽略了过程;第三,总有一些成员会破坏团队气氛。虽然TSPi不能完全避免这些问题,但它提供了有关避免这些问题或减少这些问题影响的有益指导。

为了高效利用课程时间,团队软件课程应该精心组织,并且要基于经实践证明的项目经验。如果没有明确定义的过程或结构化的团队框架,工程师就必须自己决定该如何完成项目。如果没有过程和框架,工作组就必须自己学习团队建设和团队协作的基本要素,而这一过程通常都会伴随着痛苦的尝试和失败。显然,这样做代价高昂并且没有必要,因为团队协作的原则通常众所周知、简单明了。

TSPi以行之有效的团队协作方法训练工程师,首先帮助他们熟悉团队建设的过程,然后指导他们使用经过明确定义和度量的框架来开发产品。在经过PSP训练的前提下,工程师一般都能遵循TSPi脚本步骤,并使用TSPi支持工具来计划和管理自己的工作。遵循TSPi的指导,项目工作会变得更有效率,工程师也可以更加专注于学习软件工程,而不是在团队建设和团队管理方面花费大量的时间。

TSPi明确定义了团队角色,每个团队成员都要以某种角色进行工作。每个角色都有详细说明,指出这个角色应该做什么,何时以及如何去完成任务。在每个团队成员都知道他们自己和其他人应该做什么的情况下,他们就能更好地作为一个团队高效工作。如果一个团队成员没有完成工作,其他团队成员就会知道相关情况,从而及时地采取措施处理相关问题。如果团队不能独立解决人际关系问题,他们可以求助于教师或管理人员。本书的教师手册给出了处理很多常见的团队协作问题的有效方法。

如果学生团队成员担任明确的角色和职责,并使大家都了解,教师就能给出更加公平和详细的成绩。除了给整个团队打分,还可以给每个人的表现打分。这不仅激励学生表现得更好,同时也是一种更公平的给团队训练课程打分的方式。

本书组织结构
本书是为引导团队学习TSPi过程而设计的。前两章(第一部分)是简介,第二部分阐述了完整的团队开发周期。书中详细解释了过程脚本,并且给出了TSPi表格的完整示例。

第三部分给出了TSPi团队成员角色的详细说明:团队领导、开发经理、计划经理、质量和过程经理,以及支持经理。当阅读有关每个角色的章节后,你可以将TSPi角色脚本作为工作参考。

TSPi课程伊始,每个学生都要填写一个INFO表格(见附录F),这个表格记录了有关学生兴趣和背景的信息。教师根据这些信息将整个班级划分为5人小组,再给每个小组成员分配初始角色。如果个别小组有4或6个人,教师就必须对角色进行适当调整。每个角色都要有人担任,每个工程师必须担任至少一个角色。对于一个4人的小组,支持经理角色的任务要在所有小组成员间分摊。对于一个6人小组,质量和过程经理角色要分割为两个角色:质量经理和过程经理。

选择团队成员并进行角色分配之后,各个团队就启动各自的项目,并定期汇报项目进展。每个开发周期结束时,工程师要评估团队的整体表现和每个角色的个人表现。基于这些信息,教师就能评估每个团队和每个人的工作,并且在后续的开发周期中更好地分配角色。如果有必要,教师可以对团队的人员组成进行调整,但是,除非出现了严重问题,否则团队的人员组成应该在整个课程中保持稳定。

使用标准及预定义的问题
尽管TSPi可以应用于各类项目,但本书只提供了两个标准和预定义的问题,它们是为满足课程多样性的要求而专门设计的。虽然使用真实的客户需求也有好处,但是,因为以下三个原因,我们不推荐这样做。第一,课程有严格的进度要求。虽然多数客户一开始都同意按照固定的时间表推进项目,但是很少有客户真正知道开发软件需要多长时间。另外,因为入门工程师一般不知道如何按照严格的进度来管理项目,所以项目失败的几率是很高的。这个问题的根源在于,实际的客户需求大多既不够清晰也不稳定,导致频繁变更和大量延期。

第二,团队协作课程应该为特定主题而设计。虽然开发工作产品是项目的目标之一,但是本课程的主要目的是展示使用成熟的软件工程方法的好处。对于真实的客户需求,满足客户要求永远都是最高优先级。一旦需求变更或客户插进来回答问题,工作就会延期,进度就会压缩,导致团队经常把精力集中在完成产品上,而忽略了过程。从结果来看,事与愿违,我们从这类课程中得到的主要经验就是如何避免开发软件。

第三,使用标准及预定义的问题,有助于比较各团队的表现。同样的需求有不同的实现方式,所有的团队都可以加入课程评价。每个团队都可以介绍自己的方案,解释有关设计、实现和测试的问题。这个过程能够充分体现出各种开发方案的实际效果,同时也为评价将来的团队提供了参考数据。

虽然使用预定义的标准练习具有很多好处,但是这也让学生没有机会接触某些重要问题。例如,如果没有实际经验,就很难察觉用户需求描述的混乱和模糊。应付模糊和多变的需求是一种重要的经历,但是这可以在专门讲授需求过程的课程中进行详细学习。本书采取这种方案,首先是要讲授高效的团队协作和过程方法,然后,在后续课程中集中研究大规模开发项目中的复杂问题。

给教师的建议
本书可以多种方式使用。最主要的用法就是作为一学期或两学期的团队训练课程的教材。这种情况下,TSPi可用来开发一个单独的产品,例如附录A中介绍的两个产品之一。一学期的课程大概有2~3个周期,而两学期的课程大概有3个或者更多的周期,以开发更大规模的产品或者附录A中产品的完整版本。过程步骤可根据项目工作的规模进行适当增加和减少。表P.1、P.2、P.3给出了3种课程方案。

在表P.1所示的每个开发周期内,团队计划并跟踪每一步工作,最终完成一个完整的小型项目,包括需求、设计、编码和测试。在每个开发周期结束时,团队评估整个团队和每个角色的表现,之后,教师重新分配团队角色。在一个包含3个开发周期的项目中,工程师们实质上获得了3个完整项目和3种不同团队角色的经验。同时,他们也得到了每个开发周期的数据,在每个开发周期中,他们都可以学习如何使用从前面的开发周期中获得的经验。

表P.1 三个周期的TSPi课程


8ac8f52e47203f9792fd590aafee627a8293b361


96d5230312807a1052e94d177d63bb33b3d1b2c7

本书还可在其他课程中作为团队协作练习来使用。小型项目可以在3~7周的单个开发周期中完成,例如,简单的需求开发周期大概需要3~4周,设计开发周期大概需要四周或五周,而最短的完整开发项目可能需要6周或7周。表P.2展示了一个时间跨度为几周的,开发一系列需求的团队项目。类似地,表P.3展示了一个设计项目。本书还可用于半个学期的课程教学,这样一来,完整的3个周期的课程需要15周,两个周期的课程需要11周,单个周期的开发项目只需要7周。

f5786ba17838554a646864376e6e6dc0320a3b0c


0e801287673990a98746741e760ff30070d0a21c

不管采用哪种课程方案,标准TSPi脚本都将指导学生成立团队、计划并实施项目。除非团队已经有过TSPi课程经历,否则任何团队都不太可能在少于3周或4周的时间内完成任何一个项目周期。原因在于,新的团队成员需要时间去学习团队过程,还要学会如何作为一个团队一起工作。这也是第一个TSPi周期需要7周时间,而后续周期只需要4周时间的原因所在。

学习本课程的基础
本课程的主要先修课是PSP课程,无论在研究生课程中或在PSP导论课程学习过都可以。如果学生是在几个学期以前学习的PSP,则要求他们在最近的课程中使用过PSP,否则,他们就需要一到两节课来回顾一下PSP计划、数据收集和质量管理的相关知识。如果学生使用PSP的经验不足或者根本没有用过PSP,那么就需要在整个课程期间对他们进行仔细的指导和帮助。

在尝试团队项目以前,学生应该具有软件设计和软件需求的知识背景,配置管理、项目管理和软件测试的相关知识和经验也会很有帮助。另外,学生还必须熟练掌握一门编程语言,熟练使用编程工具。

致谢
写作本书的过程中,我经常沉迷于具体材料,导致我很难发现那些可能困扰读者的问题。这正是我寻找见多识广的评审人员的初衷。我是幸运的,一方面,很多人乐意给我帮助;另一方面,这些知识渊博的人给出了可行的建议。我特别要感谢Susan Brilliant、Dan Burton、Bob Cannon、Audrey Dorofee、Pat Ferguson、Marsha Pomeroy Huff、Mark Klein、Susan Lisack、Rick Long、Steve Masters、Mark Paulk、Bill Perterson、Bill Pollack、Dan Roy、Jeff Schwalb、Girish Seshagiri、Steve Shook、Laurie Williams、Ralph Young、Dave Zacharias、Sami Zahran等人的帮助和支持。在合并手稿、查找前后不一致等问题的工作上,Julia Mullaney提供了巨大的帮助。我还要感谢我的弟弟Philip Humphrey,他在团队协作方面给了我持续的支持和中肯的意见。

我还要郑重感谢Embrey Riddle航空大学的Tom Hilburn和Iraj Hirmanpour,长期以来,他们一直是PSP和TSP工作的有力支持者。Tom在本书发行前,就曾使用本书手稿开设团队课程,从他的课程中获得的数据为本书提供了很多示例。

在软件工程研究所(SEI),我们获得了PSP和TSP的丰富经验,也越来越清醒地意识到工具支持的重要性。Jim Over开发了一个出色的TSPi工具,还特别应用该工具给本书提供支持。另外,他还针对过程和正文给出了很多有益的意见。对此,我深表感激。

我还要再一次感谢Addison-Wesley出版社的Peter Gordon、Helen Goldstein以及其他专业人员。在出版本书的过程中,他们的帮助和指导是无价的。最后,我必须再一次感谢我的妻子Barbara,她一直支持着我,并以她温厚的方式鼓励着我。

谨以此书献给我的父亲Watts S. Humphrey,他的期望、信赖和热情的支持帮我度过了青少年时期。第一次不及格的经历让我记忆深刻。在那个年代,人们对学习障碍并没有太多了解,但是我的父亲直觉地认为我有学习能力,只是需要适当的引导和教育。他坚持认为不是我不及格,而是学校的教育方法不妥造成的,因此,他把我们家搬到了一个小镇,在这个小镇里,我和弟弟上的学校可以给我单独的指导。能有这样一个父亲,是我此生最大的幸运。我深深感谢他的帮助!尽管他已去世多年,可我一直思念他!

Watts S. Humphrey

Sarasota, Florida

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

目录
前言
第一部分 绪论
第1章 TSPi简介
1.1 TSPi是什么
1.2 TSPi原则
1.3 TSPi的设计
1.4 TSPi的结构和流程
1.5 TSPi过程
1.6 本书结构和流程
1.7 小结
第2章 团队软件过程的基本原理
2.1 项目为何失败
2.2 常见的团队问题
2.3 团队是什么
2.4 建设高效团队
2.5 团队如何发展
2.6 TSPi如何建设团队
2.7 小结
2.8 参考文献
第二部分 TSPi过程
第3章 启动一个团队项目
第4章 开发策略
第5章 开发计划
第6章 定义需求
第7章 与团队一起设计
第8章 产品实现
第9章 集成与系统测试
第10章 结项总结
第三部分 团队角色
第11章 团队领导角色
第12章 开发经理角色
第13章 计划经理角色
第14章 质量和过程经理角色
第15章 支持经理角色
第四部分 使用TSPi
第16章 管理自我
第17章 在团队中工作
第18章 团队工作
附录A TSPi采样练习的要求说明
附录B 软件配置管理
附录C 软件审查
附录D TSPi脚本
附录E 角色脚本
附录F TSPi表格及其使用说明
附录G TSPi标准与规格说明