本节我们要学习的是,如何营造协作的项目团队环境,从而为打造高绩效团队打下坚实的基础。
项目是由项目团队交付的。为了使得团队交付更有价值的成果,需要从多个方面提供保障措施,从而更好地激发团队能力,让团队自我管理,减少过程阻碍,让团队总是做优先级别较高的事情,提升团队的协同,而项目团队成员间具有相互协同工作的能力可以更有成效地实现共同目标。
营造协作的项目团队环境,需要尽量降低协作的复杂度,提升团队的灵活性。而降低复杂度和提升灵活性,都需要在以下方面进行考虑。
(一)建立团队共识
团队共识就是团队能够共同理解和遵循的准则、行为限制、工作规范,可以是显性的规定,也可能是隐性的团队认知。
建立团队共识,有利于我们在共同的上下文语境上理解问题,会降低团队协作的复杂度,使得项目团队聚焦项目内容本身。
项目共识由项目团队制定,并通过个人和项目团队的共同遵守发挥作用。随着项目的进行,团队共识会不断演变,所以要不断检视。
比如在项目过程中,明确DOD的定义。DOD是“Definition of Done”,也就是完成的定义,或者叫作“完成标准”。比如在互联网软件开发项目中,针对一项开发任务,怎么才算任务完成,团队成员间每个人可能理解不同,有的认为编码完成,就表示任务完成了;有的认为还需要简单自测一下,确保功能可以正常使用;还有的认为需要把自动化用例写完并测试通过才算完成。
DOD可以分好多种,比如每日DOD,典型条款有:
(1)下班前必须检入当天编写的代码,check in的backlog要填写清晰。
(2)当天的代码必须在当天或者第二天邀请同伴进行代码评审。
(3)检入的功能代码必须要有对应的单元测试。
(4)每天晚上触发静态代码检查、自动化回归测试。
(5)当天持续集成、构建环境中产生的问题,请当天解决。
DOD需要大家共同理解,共同遵守。有了DOD这种共识,会有效提升大家的协同。但团队都不是一成不变的,在随着时间的推移、经验的积累、成员的变更、项目的变更,我们的团队共识也会有很大的不同,所以我们也需要定期地检查和改进。
(二)优化组织结构
在组织结构方面,要设定能够提升协作水平的组织结构,要注意的点包括:
1.确定角色和职责
团队职能应该包含不同的角色,承担不同的职责,这一点很明确。需要强调的是,团队成员可以同时承担不同的角色,但当承担不同角色时,一定分清不同职能的区别。
无论谁应为特定项目工作承担责任,无论谁负有开展特定项目工作的职责,协作的项目团队都会对项目成果共同负责
2.将员工和供应商分配到项目团队
无论是员工还是供应商,在项目期间,要建立起团队归属感,并且共同理解团队共识,这样才能降低协同复杂度。
3.有特定目标任务的正式委员会
项目各种任务,都有明确的委员会帮助决策和解决问题,有助于营造协同的项目团队环境,降低协同复杂度。
4.定期评审特定主题的站会
站会意味着简单有效的沟通。为干系人安排特定主体的站会,能有效提升团队的协同,促进达成理解一致,有助于降低协同的复杂度。
(三)让团队自己定义过程
项目团队自行能够定义可以完成的任务及自行掌握合理分配工作的过程。如果能够明确项目团队的职权范围,使得项目团队能够清晰明确团队的自主决策范围,将有助于营造协作的项目氛围,能够提升团队的灵活性。
比如如果团队迭代的安排按照Scrum方法进行推动,则需要建立稳定的迭代周期、迭代计划事件、迭代站会、迭代回顾、迭代Review,和按照迭代节奏明确优先级别的产品待办列表(Product Backlog)和迭代待办列表(Sprint Backlog),这些过程有助于项目团队建立自己的团队文化,最有效地实现项目目标。
总之,协作的项目团队环境可促进信息和个人知识的自由交流,进一步又在交付成果的同时促进共同学习和个人发展。协作的项目团队环境使每个人都能尽最大努力为组织交付期望的成果。对组织而言,将从尊重和增强其基本价值观、原则和文化的可交付物和成果中受益。