The Conditions for Teamwork(什么是团队)?
♦ 至少两人 ♦ 成员有共同的目标 ♦ 每个成员有具体的角色和职责 ♦ 只有团队成员间的相互依赖才能完成任务
Effective Teams(高效团队的共同特点)
♦ 成员是有技能的 ♦ 团队的目标是重要的、已定义的、直观的、现实的 ♦ 对于所从事的工作,资源是合适的 ♦ 团队成员是积极且承诺满足团队的目标 ♦ 成员相互合作,相互支持 ♦ 成员按规范进行工作 ♦ 团队具有创新能力 (创新不是想到某个聪明的办法,它需要创造性和努力工作)
Building Effective Teams
建立高效团队的条件
♦ 团队成员确立了共同的目标和各自的角色 ♦ 团队在工作方式上达成一致 ♦ 团队成员遵守一个共同的工作过程 ♦ 团队成员参与制订计划,每个成员都知道他在该计划中的角色 ♦ 团队与管理层协商计划 ♦ 管理层评审并接受这个经过协商的计划 ♦ 团队成员按他们计划好的方式进行工作 ♦ 团队成员之间自由并经常性的交流 ♦ 团队成员组成一个整体,成员之间互相协作,承诺满足共同的目标 ♦ 工程师清楚自己的状态,及时从工作中得到反馈,使领导层维持他们的能动性
高效团队的形成需要团队成员真正理解他们要做什么,在如何做工作方面达成共识,并相信制订的计划是可达到的。所有这些条件都是由参与计划的工程师共同确立的。如果这些计划都是由他们建立的,那么他们几乎可以完全让领导层接受这些计划。
尽管对于高效团队来说,上面的条件都是必须的,但是建立这些条件的方法却不是很明确的。组织需要建立这样的高效团队,而TSP提供了这样的指导。
An Operational Team Process
为了做规定好的工作,工程师需要一个戴明所说的“可操作过程”。这些过程精确地定义了如何做工作。大部分的没有很好定义的软件过程是很庞大的,而且是一些复杂的文本描述,这些文本描述被记载在一本厚厚的书中,而可操作过程是一个简单的脚本,设计它们的目的是用于团队成员工作时真正起指导作用的。
TSP提供了已定义好的可操作过程,通过一系列的团队建设步骤来指导工程师和管理者。这个过程规定了为建立高效团队所需要的步骤。如果没有具体的指导手册,工程师们就要自己建立团队工作环境所需要的细节。
虽然团队建设有很多方式,但这些方式都要求多个个体在一起工作来完成某个指定的工作。在TSP中,有一个四天的培训过程,叫做“team launch”。在这个培训中,所有的团队成员参与开发一种用于他们项目的策略、过程和计划。完成这个培训以后,团队就可以按他们自己的定义的过程进行工作了。
由于定义这些细节包括相当多的技能和工作,而且很少有工程师能够有经验或时间来做出所有必须的细节,所以工程团队一般只遵从非正式的团队建设方法和团队工作过程。这样既浪费和时间,而且效果也不好。
如有了一个已定义的过程和以这个过程为依据的计划,那么工程师们的效率就会提高。如果没有这样的过程,他们一定会在每一步都停下来,思考下一步做什么和怎么做的问题。大多数工程过程十分复杂并包括很多步骤。没有具体的指导,工程师们很可能跳过某些步骤,去做一些没有产出的内容,或者在“决定下一步该做什么”上浪费一些时间。TSP提供了一种可操作的过程用于组成工程团队,建立高效的团队环境,以及指导团队做工作。
如图1所示,TSP是一系列方法之一,这些方法能帮助工程团队更高效地开发和支持更复杂的软件系统。CMM为提高软件开发工作的效率提供了总体改进框架。PSP提供了工程规范,即工程人员需要, 始终如一地使用一个已定义、已计划且已度量的过程。TSP提供了将两者结合在一起的原则。CMM和PSP提供了高效团队所需要的内容和技能,而TSP指导工程师在实践中使用它们。所以,TSP需要在PSP和CMM上有所准备,同时也为如何做工作提供了明确的指导。
The Structure of the TSP
TSP的主要元素如图2所示。在参加TSP团队之间,人员必须知道如何做规范的工作。如图所示,PSP的培训为人员提供了使用TSP所需要的知识和技能。PSP培训包括学习如何做详细计划,收集并使用过程中产生的数据,开发挣值计划,使用挣值跟踪项目,度量和管理产品质量,定义和使用可操作的过程。工程师在参与TSP团队建设和遵从已定义的TSP过程之前,必须在这些技能方面得到培训。
虽然团队建设有很多方式,但这些方式都要求多个个体在一起工作来完成某个指定的工作。在TSP中,有一个四天的培训过程,叫做“team launch”。在一个launch中,所有的团队成员参与开发一种用于他们项目的策略、过程和计划。完成这个launch以后,团队就可以按他们自己的定义的过程进行工作了。
如图3所示,TSP团队需要定期进行relaunched。因为TSP过程遵循迭代和进化式的开发策略。周期性的relaunch是需要的,以便每个阶段或循环周期都可以根据上一个周期得到的知识进行事先计划。relaunch也需要更新工程师的详细计划,因为这些详细计划一般来说仅对几个月的时间内是准确的。在TSP lauch中,团队为未来的三或四个月的时间制订一个总体计划和一个详细计划。当所有的成员全部(或大部分)完成了下一个项目阶段或周期扣,如果需要的话,可以修订这个总体计划,并为接下来的三、四个月时间做一个新的详细计划。这是通过TSP的relaunch过程进行指导的。
未完见续