分布式团队最大的挑战是沟通,这对建立协作的基本原则必不可少。从语言障碍,到工作时间不重叠,再到团队融合和激励。但是,最大的挑战是沟通,由此我们得出,工作流程和过程要尽可能得简单。集中团队可以通过面对面的交流来弥补低效的过程。
但是,对于远程或分布式团队,重要的是要确定协作的基本原则。调整工作时间,互相适应,而团队联络员有助于沟通和同步工作。以信任、尊重和开明为基础的团队会鼓励组织中的人们互相帮助,培养一种使团队保持同步的文化。
一、产品经理和利益干系人如何协作来定义、按重要性排序和审批需求
我们有需求质量的问题,任务在产品经理/分析师与开发之间来回好几次,因为当开发人员开始开发新特性时,没有充分研究和足够的数据。在某些产品领域,没有描述标准,你有时候会得到相当模糊或相互矛盾的业务逻辑。你知道,这是一家初创公司,每个人都做许多事,质量就有点受损。
在查问和跟踪我们如何处理需求之后,我们提出了一个单独的方案,将来的特性要和QA及开发团队一起仔细讨论,由利益干系人签字,产品经理按重要性排序。
该项目的流程包括以下几步。
1.初步评估:由产品经理研究几乎所有人都建议的特性。
2.稍后,由大部分利益干系人签字(通常一周一次)。
3.之后,我们和QA、PO、开发团队一起详细讨论用户故事的细节,尽可能在我们开始开发之前更多地发现陷阱。如果需要任何线框图,则UX/UI团队会帮助我们,为我们提供这样的资料。
4.最后,我们准备好了开发桶,等团队把特性拉进来。
这样,我们就能够显著提升需求质量,我们就不用来回多次澄清边缘情况。
二、工作流程
有两个特性团队、一个应急团队和两个服务团队。
特性团队采用Scrum,从产品经理按重要性排好序的全局列表上,把特性项加入他们的冲刺待办事项列表。
应急团队利用看板,由于不可预见,所以紧急Bug不会让你提前进行恰当地计划。应急团队背后的主要思想是,响应紧急问题,使特性团队的工作不被打断。为了防止倦怠,我们会轮转团队。
后两个团队是支持运营的DevOps团队和核心团队。
除DevOps团队之外,大部分团队都使用同样的开发工作流程:待办、进行中、代码评审、测试、完工——通常,看板桶有WIP限制。
我们使用Atlassian Jira任务跟踪器为我们的分布式团队虚拟地反映这个工作流程。
三、工作时间不重叠的分布式团队如何有效沟通、同步工作
每个团队都是独特的,团队成员决定什么最适合他们;他们只需要随着时间推移进行检查和调整。当团队成员彼此之间相距甚远时,没有一个单独的协作模式目录,那减缓了分布式团队的采用。
大多数团队都没有充分的自由可以在现场一起开始项目,因此,我的工作是帮助团队了解各种协作技术,弄清楚哪一种适合他们。
最有效的方式是调整工作时间,互相适应。这样,他们就可以有一段重叠的工作时间。为了和境外的成员保持同步,我们有的团队甚至把回顾和冲刺规划混在了一起。
当你需要连接分布式团队的两个部分,或者联系工作时间内不可达的其他团队时,有一个团队联络员的概念。一名团队成员被选为联络员,在每日例会、 Scrum of Scrums或任何其他公司范围的讨论中,代表他的同事。这是一个轮流担当的角色。
但是,如果没有需求标准、更详细的文档(在
某种意义上,把所有决定都写下来,而且可以在整个知识库中搜索)和简单易用的工作流程,那么上面那些概念都不会有效果。
只有当员工理解并亲自分享时,健康的文化才得以扩展和维持。在完美情况下,文化反映了共同的目标,影响了动机,要做到这一点,就要让员工听进心里,把他们的能力贡献给项目和组织,并获得职业上的发展。
最终,人是主要资产,激励员工,不管是不是分布式,都可以给生活带来令人印象深刻的产品。就像组织本身一样,代表它的文化是动态的,会随着时间的推移而变化。以信任、尊重和开明为基础的团队会鼓励组织中的人们互相帮助,会参与其他团队的活动倾听进行中的工作,说出自己的麻烦,发表有关他们取得的成果的幽默博文,并在聊天中互相赞扬。