4.5.5不要让任何人垄断讨论
有时候,团队里会有一名成员的发言比其他人都要多。他总是会**个打断谈话,让评论很快变成个人独白,这种独白通常都很拖拉。这种情况会很难控制主要有以下3个原因:**,在会议的控制过程中,你和团队领导既不能草率,也不能独裁,因为这样做会破坏非正式的、可以自由发挥的环境(而这种环境是团队参与所必需的),这也会导致团队成员不再随意发表自己的观点;第二,要把独裁者隔离开,这很重要,因为他在浪费宝贵的时间,但要做得有技巧,以免挫伤团队其他成员的积极性;第三,这个人是团队的一份子,他的贡献和承诺同样重要。
你和团队领导可以公开或巧妙地来应付这类成员。公开的方式是让团队其他成员来帮助你。当发言者(比女~lJed)刚刚阐述完一个观点,正准备继续往下进行的时候,你插话说,“Jed,多谢。在你继续之前,我还想听听其他人对这个问题的看法。”然后调转话题,讨论团队正在解决的问题,向一些团队成员询问他们的观点。如果Jed想要再次插话,你要礼貌地告诉他你还没有做完,还得再听听下一名成员的观点。不时地让Jed发表言论,间歇打断他的谈话,听听其他人的意见,再回到手头的议题。
这些“Jed”往往不会停顿在一个议题上,这时候我们应该这么说,“Jed,谢谢你。虽然你有意见,但我们还得继续。我先把你的观点写在黑板上,等有时间了再来讨论。”然后,把他的想法记录在房间一边的黑板上,继续启动过程。
另一种更加巧妙的做法是不使用语言的方法。在你或团队领导展开讨论的时候,绕着房间来回动。如果你能有效地领导会议,那么每个人都会和你交谈,而不会私底下讨论。这样,如果在交谈的时候没有眼神的交流,就比较困难。直接站在Jed后面,如果在交谈的时候,他不将身体扭过来就会比较难受。不但他说话困难,团队其他人听起来也会很吃力。在这种情形下,与团队其他成员眼神交流而不理会Jed,也并不会显得不礼貌,这种做法会比较容易。
毕竟,我们也不能失去Jed这样的人。他们也是团队成员,往往也都会做出颇有价值的贡献。通常,他们只是有某种不**的感觉,因而渴望被他人注意。要礼貌地对待他们,不能完全不理会,因为他们也能发挥自己的作用。实际上,我们有时还需要得到他们的帮助,比如让他们记录会议,张贴文件,或者维护一份公开问题清单等。 大多数开发项目都需要团队协作。虽然个人也能处理一些小型任务,但现代系统的规模庞大,而且都需要在短期内交付,一个人根本无法完成全部的工作。开发工作是一项团队活动,团队协作的效率在很大程度上决定了团队工作的质量。反过来,团队工作的质量也影响着整个项目的成功与否。
团队并不仅仅是碰巧凑在一起工作的一群人。团队协作需要有实践配合,需要特殊的技能。团队要有协作的过程、一致的目标以及**的领导。为了提**率,团队成员必须接受培训。开发团队需要有与其他类型的团队同样多的指导和支持。为了满足这种需求,美国卡内基-梅隆大学的软件工程研究所(SEI)开发了一套框架和过程,用于组建和指导开发团队,我们称其为团队软件过程(TSP)①。
虽然本书书名中说的是开发团队,但书中的内容比书名所蕴含的要广泛得多。除了几个例子和一些对质量管理方面的讨论之外,书中所有的内容都可以应用于几乎所有类型的专业团队。例如,测试团队可以使用TSP过程来完成需求方面的工作,高层管理小组可以用TSP过程来运营业务和指导过程改进。
在描述不同培训场景的过程时,书中采用了很多例子。虽然例子中没有提到任何具体组织和个人的名字,但这些例子全都是以真实的TSP团队的实践场景为基础的。这些案例来自曾经与SEI合作过的数百支团队。在合作过程中,他们研究、开发并将TSP方法应用到业界的实践中。希望更多的人在获得这类培训开发团队的经验之后,把自己的经验和体会发表出来,以便创建一个参考文献库,同时也能拓展开发团队的培训领域。
本书面向的读者
本书适用于各种不同类型的读者。对于**经理和主管来说,**部分的4章内容简洁而完整地概述了现代系统开发团队所涉及的问题。考虑使用TSP改进开发组织的管理人员应该阅读第二部分和第三部分的内容。希望成为TSP培训师的读者应该阅读整本书。本书解决了在组织和构建开发团队,激励和引导这些团队以及帮助团队***和团队成员完成**工作等过程中将会面临的许多问题。
虽然本书主要关注的是TSP团队,但阅读本书并不需要具备TSP和个体软件过程(PSP)的知识。书中所描述的方法简单易学,任何没有学过过程和方法的人都能理解。但是,要想*大限度地利用好这些方法,*好首先学习PSP,并使用整套TSP过程指导开发工作。PSP和TSP的其他信息可以在SEI的网站(www.sei.cmu.edu/tsp)上找到。
书中能学到的知识
在开发现代复杂系统的过程中,任何一个错误都会产生严重的后果,因此,开发团队中的每名成员都要完成高质量的工作。只有通过有效的培训和领导,才能使大家一致地完成高质量的工作。本书描述了如何识别高质量的工作,如何引导团队一致地完成这样的工作,还讨论了团队工作不符合预期要求时如何识别以及如何激励开发人员改进工作。
团队培训师监控团队的绩效并辅助团队成员做出改进。本书也向培训师展示了如何齐心协力地支持团队领导,以及如何与领导一起工作来构建、引导和激励整个团队。
本书的内容
虽然从总体上来讲团队协作有许多值得讨论的地方,但本书关注的只是培训在指导开发团队过程中的作用。本书分为5个部分。
**部分团队形成
**部分共4章提供了整本书的背景知识和上下文环境。这一部分主要讨论开发团队、团队行为、培训原则和方法以及团队组建等内容。第4章里的示例LAU脚本阐述了TSP过程的概念和方法。但是,与所有实用的过程一样,随着我们对团队了解得更多以及通过演化TSP过程来充分地利用这些知识,TSP过程也在不断变化。因此,如果要用到TSP脚本一定要找到*新的副本。访问SEI或它的合作伙伴的网站(www.sei.cmu.edu/tsp/)可以查看有关获得这些脚本的信息。
第二部分 启动TSP团队
第二部分描述了如何组建**、高生产率和自主型的开发团队。这样的团队特别适合完成创造性的开发工作。该部分共12章,概述了TSP启动过程,并对在执行卓有成效的团队启动过程中如何培训和支持团队及团队领导提出了建议。
第三部分 TSP项目培训
第三部分关注的是指导团队解决开发工作中面临的一些常见问题。这部分共4章,描述了在TSP启动之后,如何对团队进行培训,团队如何维护计划、管理质量以及处理项目终止后的事情。
第四部分 TSP扩展
团队有很多种类型,改变TSP过程以适应特定的项目和团队非常重要。第四部分共4章,其中讨论了团队类型和团队规模,并解释了如何改变TSP以满足它们。职能型团队一般都要支持如产品维护和系统测试等职能活动。这类团队中的开发人员一般都是独立工作,或者在两三个人组成的小组中工作。在大型项目或者包含硬件、软件、系统或测试等不同科目的项目中,以及需要在多个地方同时进行工作的时候,会出现多项目TSP团队和分布式TSP团队。非常庞大的项目一般都有独特的需求,需要定制的过程。这一部分的*后一章讨论了改变TSP以满足超大规模集成开发项目需求的途径。
第五部分维护TSP团队
这一部分共4章,讨论的是团队组建过程中更微妙的主题,以及培训开发团队的实质和收获。
TSP先决条件
在开发人员实践TSP之前,他们必须接受合理的培训。他们需要了解如何计划和跟踪工作,如何度量和管理质量,以及如何遵循一套已定义的过程。他们必须理解高质量工作的重要性,必须掌握记录任务时间以及引入并清除缺陷的规则。所有这些方法都在PSP课程①里讲述过。因为需要讨论的内容太多,PSP课程一般会在本科高年级或研究生阶段进行讲授,通常需要半个学期或一个学期的时间。PSP课程需要开发人员花100~120小时,课外作业一般耗时超过两周。
尽管PSP培训的强度很高且需要投入大量的时间,但对于一名合格的软件专业人员来说,完成它并非难事。许多开发人员在大学阶段都接受过PSP培训,还有许多人在单位内部以TSP前导课程的形式接受过PSP培训。因为PSP和TSP都独立于语言和工具,所以它们都有长期价值,并且可以与开发人员平常使用的语言和工具一起使用。成千上万名开发人员都接受过PSP培训,这些课程的数据也显示了这种培训会大幅度提升在规定期限内交付高质量产品的能力。SEI已经设立了一套PSP认证项目,可以帮助各种组织识别合格的PSP专家。
致谢
本书源自我在SEI工作中获得的知识和经验。几年前我加入SEI时,就定下了变革软件工程界的目标。虽然有些人认为这个目标太渺茫,但我认为它能让人释放激情,令人兴奋。从IBM退休之后,这个目标一直引导着我的工作。
我会一直追寻这个目标,因为软件密集型系统在现代社会中所扮演的角色越来越重要。软件对于许多产品和服务而言变得非常重要,它甚至已经变成了完成许多业务目标的主要约束。事实上,开发实践的糟糕现状一直限制着许多业务和科学领域的发展。如果我们不能在预定期限内以合理的成本创造出高质量的产品,就会严重地**现代技术服务于人类这个伟大的过程。
尽管尝试改变世界似乎是一个疯狂的想法,但有了SEI和TSP项目型团队的帮助和支持,我们就有了良好的开端。团队协作是一个非常迷人的主题,但这样的主题不能由个人单独来完成。SEI的TSP团队慷慨地贡献了自己的时间和精力,来支持这项工作。我要特别感谢这支团队的成员,感谢他们多年来对我的帮助和支持。他们是DanBurton、KimCampbell、AnitaCarleton、NoopurDavis、MarleneMacDonald、JimMcHale、JuliaMullaney、BillNichols、JimOver、MarshaPomeroy-Huff、JodieSpielvogle和AlanWillett。
非常感谢SEI管理团队,感谢他们无私的支持和鼓励,我还要特别感谢软件过程管理项目的主管BillPeterson、SEI的**执行官ClydeChittester和SEI的主管PaulNielsen。没有他们的帮助和支持,这项工作不可能完成。
在本书的编写过程中,许多人都提供了帮助和鼓励。在这里,我无法一一感谢那些为我提供了精彩示例的每一位团队成员,但我要对那些曾经直接帮助过我完成本书的人们致以谢意。他们是LindaAlexander、DanBurton、BobCannon、DavidCarrington、JohnCiurczak、NoopurDavis、DonMcAndrews、JimMcHale、BillOmmert、JimOver、Hans-PeterPfister、MarshaPomeroy-Huff、DanReese、DanRoy、JeffSmith、RafiSyed、RobTonneberger、JimVanBuren、DanWall和AlanWillett。我还要谢谢我的兄弟PhilHumphrey,感谢他给我提供了许多深刻的见解。
*后,我要把本书献给SEI的PSP项目和TSP项目的领导人JimOver,感谢他的领导和激情。他比其他任何人都有发言权,他把本书中所阐释的思想转变成了现代工业开发团队可以使用的有效且实用的方法。我与Jim一起工作已经超过了15年,他是一个极富见解和同情心的领导,同时也是一个创造力极强的技术专家,他不愧为我的良师益友。