浏览主题

放眼全局,本地编码:分布式与远程团队的秘诀

分布式团队和远程办公室不会消失。但是它们是否能成为新兴敏捷开发文化的一部分?我们认为可以。

作者:Dan Radigan

敏捷开发对我的职业和个人都产生了巨大的影响,因为我了解到,无论是在代码还是在生活中,最好的体验就是敏捷开发。在技术、摄影和摩托车赛的交叉领域,您会经常看到我的身影。

开始使用免费的敏捷路线图模板

简化您的项目,轻松规划、跟踪和管理跨多个冲刺阶段的工作。

敏捷开发最初是为集群团队或实际位于同一办公室的团队设想的。根据“向开发团队传递信息以及在开发团队内部传递信息最高效和最有效的方法是面对面交谈”这一理念,早期的敏捷团队都是在很近的距离内一起工作。

但如今,大多数企业都有几个分布式团队。这不仅仅是一种趋势,也非常实用。分布式团队可以全天候处理项目,还可以在竞争较弱的市场中找到杰出的人才。(更不用说,不存在令人头疼的调任,很容易留住人才。)

但是,分布式团队并非完美。对于许多分布式团队来说,很难采用面对面互动的敏捷开发实践。 分布式软件团队面临的其他挑战:

  • 跨时区协调

  • 当大家不在同一个办公室时建立融洽的关系

  • 在不同的发展文化之间进行协作

  • 当两个团队同时在线的时间只有几个小时(或更短)时,安排会议或非正式对话

这些都是现实问题。但并非无法解决。让我们来探讨一些策略,帮助弥合本地和远程办公室之间的距离差距,以及帮助缓解其他潜在问题的想法。

如何组建全球团队

良好的软件架构决定了模块化设计,因此可以采用同样的方式组织您的团队。每个办公室在开发单一技术方面都应该自给自足,这样可以最大限度地减少与其他时区团队的协作量,并确保整体自主性。如果一个项目确实需要不同地点的团队参与进来,他们可以专注于自己的集成点和 API。

代码审查也起着重要作用。由于人们在不同时间上网,因此通过在办公室之间分发代码知识,支持和维护变得更加容易。如果团队不在线时出现生产问题,另一个办公室可以轻松介入以支持和解决问题,这就要归功于他们从跨团队或跨地点代码审查中获得的专业知识。

建立融洽的关系

在任何项目中,尤其是敏捷开发计划,在整个团队中保持稳固融洽的关系都很重要。人际关系可以建立信任,最大限度地减少错过的期望,简化自我组织并提高士气。在您所在的办公室里,花点时间去认识团队中的每个人。而且,尽可能对远程办公室中的共事人员采取同样的做法。人际关系很重要。人际关系越强,与这些同事的关系和与其他同事的关系同样密切的可能就越大,而不是来到陌生地方、也没有关系良好的同事。

专业提示:

在 Atlassian,每位新员工都会在我们的内部 Confluence 实例(Atlassian 的内容协作工具)上发布一篇“简介博客”。该博客会介绍新员工的职业和个人情况(爱好、兴趣、家庭等),这确实有助于消除办公室之间的隔阂。我们作为个体对彼此的了解越多,那么作为团队合作就越紧密。

最重要的是,没有什么能取代面对面的会议。每个办公室的团队成员都会受益于定期的面对面时间,包括视频会议和访问远程办公室。

Zoom 等视频会议工具有助于弥合团队之间的差距,尤其是对于分布式敏捷开发团队来说。但是,依赖 Zoom 的团队应注意某些限制。

  • 视频会议通常只提供很短的沟通窗口,而在同一个办公室工作,能够很好地了解他人的世界:挑战、成功和机遇。

  • Zoom 在解决间歇性网络问题方面做得很好。尽管如此,有时办公室之间可能会出现网络问题,这可能会使视频和音频不稳定或难以理解。

  • 大多数人仍然认为 Zoom 视频会议是预定时间。营造一种使用视频聊天进行自发随意对话的文化需要时间。另外,使用 Slack 之类的即时消息传递工具快速提问。

为帮助缓解一些视频会议问题,鼓励团队成员每周进行一对一视频聊天。这些聊天无需特别正式,有助于以随意的方式推动知识共享。队友可以利用这些机会建立融洽的关系,更好地协作。

请记住,语气、语音和姿势在沟通中起着重要作用。面对面时间可以帮助团队以更高的保真度认识远程同事,这反过来又能够让未来的视频会议更加有效。

无论是房子还是产品,您都需要定义愿景并勾勒出战略主题。可以将主题视为组织范围内的重点领域。在接下来的一个季度、六个月、一年中,您想关注哪些方面?您想把时间和资源花在哪里?性能、用户体验、安全性、新的竞争特性(有人喜欢吗?),还是所有这些的组合?

我们是怎么做的:

借调是指在新的工作岗位或地点的临时任务,时间从几周到一年不等。它们不仅是在整个团队中建立融洽的关系和传播文化的有效途径,也是员工体验不同文化的好方法。

建立统一的发展文化

团队可以通过四种简单的方法来简化跨地域的工作并共享共同的开发人员文化:

  • 在所有地区过度沟通决策

  • 最大限度地减少设置开发环境的阻力

  • 明确定义完成

  • 为提交有效的缺陷报告创建准则

我们来详细说一下。

首先,从同地办公转向分布式文化,沟通变得更加困难。第一个挑战是培训团队,让他们明白,一旦做出决定,就需要进行沟通。这听起来似乎显而易见,但却很容易被遗忘!很多时候,重要的决策都是在走廊对话、非正式的当地团队会议或由个人做出。另外,人们很容易认为小决策不重要而不予考虑。

事无巨细,件件沟通,直至两个办公室妥善达成一致。 

做出决策时,要让每个办公室的每一位成员都了解具体决策,最好还能清楚决策背后的原因。不要使用电子邮件。这样太容易丢失重要信息。应使用 wiki 之类的内容管理系统,便于团队全体成员轻松浏览更新内容(并通过电子邮件或 Slack 群聊工具获得更新通知)。此外,您还可使用 Slack 为个人和团队创建一些渠道,用于传达和查看更新。如果让团队成员处理过时信息、遇到障碍,然后再提出问题,则会造成延误,由此导致团队付出的代价比主动分享信息要多得多。

专业提示:

在 Atlassian,我们跨团队共享项目和目标的更新。我们会通过每周摘要电子邮件或 Slack 收到更新通知。这有助于我们的团队开诚布公地进行沟通,就工作的相关情况达成共识,从而回答以下问题:

  • 工作内容

  • 为什么?

  • 工作负责人员

  • 工作进展

其次,在整个团队中保持一致的开发环境使协作和跟踪事务变得更加容易。花时间创建一个简单的“入门”指南,并通过尽可能自动化设置来缓解第一天的摩擦。

第三,在办公室之间工作时,围绕“完成”定义的明确标准可以更轻松地管理期望值并在团队之间建立融洽的关系。对完成的严格定义消除了工作中的模糊性。例如,在发布涉及多个团队的版本时,请明确说明完成的含义:已编写代码、已创建拉取请求、已审查代码、已测试代码并已将代码合并到相应分支中。

最后,分布式开发意味着出现问题时,并不是所有人都在线。有了明确的缺陷报告和故障排除方法指南,团队中的任何人都可以更轻松地跟踪事务。代码审查和良好的自动化测试还可以共享有关代码库的知识,使受影响的团队能够进行修复,并验证更改不会产生任何意想不到的副作用。因此,没有一支团队会成为障碍。

最大限度地利用黄金时间

每位摄影师都知道“黄金时间”,也就是日出和日落前后是拍摄精彩风景照片最有效的时间之一。分布式软件团队的黄金时间是本地和远程团队同时在各自的办公室工作。所有团队都在办公室时,现在是例会的好时机。

对于在不同时区共享工作的团队来说,例会是传递接力棒的好时机,这样刚上线的团队就可以从另一支队伍停下来的地方继续。而且,通过视频会议保持例会可以轻松提问和加快速度,这样一来,会议结束后所有人就可以开始工作。

有时办公室相距太远,以至于会议会给一个团队带来某种形式的痛苦。(凌晨 5 点起床和其他团队召开站会?呃...不要,谢谢。)轮流安排会议时间,让大家分担负担,而不是让远程团队继续忍受不正常作息时间—这是摧毁士气的不二法门。开站会时密切关注整个团队的参与度。如果压力过大,或者团队没有从中收获很多,团队成员就会开始不再参与,停止倾听或分享。而且,站会不一定非要每天召开。每周与远程团队开几次会,其他时间就在本地召开站会。同样,站会也不一定非要在早上举行。对于每个参与者来说,不管是一天中的哪个时间,最方便的时间就是最好的时间。

每个团队都是分布式的

在分布式组织中,现实情况是每个团队都是远程的。所有团队都需要适应并学习如何在办公室之间共享工作、有效沟通以及在不同地区培养一致的文化。最有效的团队不只是让远程办公室符合总部的文化,因为他们知道每个办公室都可以从其他办公室那里学到一些东西。他们寻求在所有地点寻找和分享成功实践。他们秉持共同文化的理念,而不是对抗文化。

因为另一个现实是这些团队时不时也会变成分布式团队。成员出差就需要离开办公室,偶尔在家工作可以帮助员工更好地平衡工作与生活。同时兼顾结构和透明度的团队可以更有效地扩展。如果项目扩展到办公室以外,做正确事情的文化就会自然而然地建立起来。

浏览主题

放眼全局,本地编码:分布式与远程团队的秘诀

分布式团队和远程办公室不会消失。但是它们是否能成为新兴敏捷开发文化的一部分?我们认为可以。

作者:Dan Radigan

敏捷开发对我的职业和个人都产生了巨大的影响,因为我了解到,无论是在代码还是在生活中,最好的体验就是敏捷开发。在技术、摄影和摩托车赛的交叉领域,您会经常看到我的身影。

开始使用免费的敏捷路线图模板

简化您的项目,轻松规划、跟踪和管理跨多个冲刺阶段的工作。

敏捷开发最初是为集群团队或实际位于同一办公室的团队设想的。根据“向开发团队传递信息以及在开发团队内部传递信息最高效和最有效的方法是面对面交谈”这一理念,早期的敏捷团队都是在很近的距离内一起工作。

但如今,大多数企业都有几个分布式团队。这不仅仅是一种趋势,也非常实用。分布式团队可以全天候处理项目,还可以在竞争较弱的市场中找到杰出的人才。(更不用说,不存在令人头疼的调任,很容易留住人才。)

但是,分布式团队并非完美。对于许多分布式团队来说,很难采用面对面互动的敏捷开发实践。 分布式软件团队面临的其他挑战:

  • 跨时区协调

  • 当大家不在同一个办公室时建立融洽的关系

  • 在不同的发展文化之间进行协作

  • 当两个团队同时在线的时间只有几个小时(或更短)时,安排会议或非正式对话

这些都是现实问题。但并非无法解决。让我们来探讨一些策略,帮助弥合本地和远程办公室之间的距离差距,以及帮助缓解其他潜在问题的想法。

如何组建全球团队

良好的软件架构决定了模块化设计,因此可以采用同样的方式组织您的团队。每个办公室在开发单一技术方面都应该自给自足,这样可以最大限度地减少与其他时区团队的协作量,并确保整体自主性。如果一个项目确实需要不同地点的团队参与进来,他们可以专注于自己的集成点和 API。

代码审查也起着重要作用。由于人们在不同时间上网,因此通过在办公室之间分发代码知识,支持和维护变得更加容易。如果团队不在线时出现生产问题,另一个办公室可以轻松介入以支持和解决问题,这就要归功于他们从跨团队或跨地点代码审查中获得的专业知识。

建立融洽的关系

在任何项目中,尤其是敏捷开发计划,在整个团队中保持稳固融洽的关系都很重要。人际关系可以建立信任,最大限度地减少错过的期望,简化自我组织并提高士气。在您所在的办公室里,花点时间去认识团队中的每个人。而且,尽可能对远程办公室中的共事人员采取同样的做法。人际关系很重要。人际关系越强,与这些同事的关系和与其他同事的关系同样密切的可能就越大,而不是来到陌生地方、也没有关系良好的同事。

专业提示:

在 Atlassian,每位新员工都会在我们的内部 Confluence 实例(Atlassian 的内容协作工具)上发布一篇“简介博客”。该博客会介绍新员工的职业和个人情况(爱好、兴趣、家庭等),这确实有助于消除办公室之间的隔阂。我们作为个体对彼此的了解越多,那么作为团队合作就越紧密。

最重要的是,没有什么能取代面对面的会议。每个办公室的团队成员都会受益于定期的面对面时间,包括视频会议和访问远程办公室。

Zoom 等视频会议工具有助于弥合团队之间的差距,尤其是对于分布式敏捷开发团队来说。但是,依赖 Zoom 的团队应注意某些限制。

  • 视频会议通常只提供很短的沟通窗口,而在同一个办公室工作,能够很好地了解他人的世界:挑战、成功和机遇。

  • Zoom 在解决间歇性网络问题方面做得很好。尽管如此,有时办公室之间可能会出现网络问题,这可能会使视频和音频不稳定或难以理解。

  • 大多数人仍然认为 Zoom 视频会议是预定时间。营造一种使用视频聊天进行自发随意对话的文化需要时间。另外,使用 Slack 之类的即时消息传递工具快速提问。

为帮助缓解一些视频会议问题,鼓励团队成员每周进行一对一视频聊天。这些聊天无需特别正式,有助于以随意的方式推动知识共享。队友可以利用这些机会建立融洽的关系,更好地协作。

请记住,语气、语音和姿势在沟通中起着重要作用。面对面时间可以帮助团队以更高的保真度认识远程同事,这反过来又能够让未来的视频会议更加有效。

无论是房子还是产品,您都需要定义愿景并勾勒出战略主题。可以将主题视为组织范围内的重点领域。在接下来的一个季度、六个月、一年中,您想关注哪些方面?您想把时间和资源花在哪里?性能、用户体验、安全性、新的竞争特性(有人喜欢吗?),还是所有这些的组合?

我们是怎么做的:

借调是指在新的工作岗位或地点的临时任务,时间从几周到一年不等。它们不仅是在整个团队中建立融洽的关系和传播文化的有效途径,也是员工体验不同文化的好方法。

建立统一的发展文化

团队可以通过四种简单的方法来简化跨地域的工作并共享共同的开发人员文化:

  • 在所有地区过度沟通决策

  • 最大限度地减少设置开发环境的阻力

  • 明确定义完成

  • 为提交有效的缺陷报告创建准则

我们来详细说一下。

首先,从同地办公转向分布式文化,沟通变得更加困难。第一个挑战是培训团队,让他们明白,一旦做出决定,就需要进行沟通。这听起来似乎显而易见,但却很容易被遗忘!很多时候,重要的决策都是在走廊对话、非正式的当地团队会议或由个人做出。另外,人们很容易认为小决策不重要而不予考虑。

事无巨细,件件沟通,直至两个办公室妥善达成一致。 

做出决策时,要让每个办公室的每一位成员都了解具体决策,最好还能清楚决策背后的原因。不要使用电子邮件。这样太容易丢失重要信息。应使用 wiki 之类的内容管理系统,便于团队全体成员轻松浏览更新内容(并通过电子邮件或 Slack 群聊工具获得更新通知)。此外,您还可使用 Slack 为个人和团队创建一些渠道,用于传达和查看更新。如果让团队成员处理过时信息、遇到障碍,然后再提出问题,则会造成延误,由此导致团队付出的代价比主动分享信息要多得多。

专业提示:

在 Atlassian,我们跨团队共享项目和目标的更新。我们会通过每周摘要电子邮件或 Slack 收到更新通知。这有助于我们的团队开诚布公地进行沟通,就工作的相关情况达成共识,从而回答以下问题:

  • 工作内容

  • 为什么?

  • 工作负责人员

  • 工作进展

其次,在整个团队中保持一致的开发环境使协作和跟踪事务变得更加容易。花时间创建一个简单的“入门”指南,并通过尽可能自动化设置来缓解第一天的摩擦。

第三,在办公室之间工作时,围绕“完成”定义的明确标准可以更轻松地管理期望值并在团队之间建立融洽的关系。对完成的严格定义消除了工作中的模糊性。例如,在发布涉及多个团队的版本时,请明确说明完成的含义:已编写代码、已创建拉取请求、已审查代码、已测试代码并已将代码合并到相应分支中。

最后,分布式开发意味着出现问题时,并不是所有人都在线。有了明确的缺陷报告和故障排除方法指南,团队中的任何人都可以更轻松地跟踪事务。代码审查和良好的自动化测试还可以共享有关代码库的知识,使受影响的团队能够进行修复,并验证更改不会产生任何意想不到的副作用。因此,没有一支团队会成为障碍。

最大限度地利用黄金时间

每位摄影师都知道“黄金时间”,也就是日出和日落前后是拍摄精彩风景照片最有效的时间之一。分布式软件团队的黄金时间是本地和远程团队同时在各自的办公室工作。所有团队都在办公室时,现在是例会的好时机。

对于在不同时区共享工作的团队来说,例会是传递接力棒的好时机,这样刚上线的团队就可以从另一支队伍停下来的地方继续。而且,通过视频会议保持例会可以轻松提问和加快速度,这样一来,会议结束后所有人就可以开始工作。

有时办公室相距太远,以至于会议会给一个团队带来某种形式的痛苦。(凌晨 5 点起床和其他团队召开站会?呃...不要,谢谢。)轮流安排会议时间,让大家分担负担,而不是让远程团队继续忍受不正常作息时间—这是摧毁士气的不二法门。开站会时密切关注整个团队的参与度。如果压力过大,或者团队没有从中收获很多,团队成员就会开始不再参与,停止倾听或分享。而且,站会不一定非要每天召开。每周与远程团队开几次会,其他时间就在本地召开站会。同样,站会也不一定非要在早上举行。对于每个参与者来说,不管是一天中的哪个时间,最方便的时间就是最好的时间。

每个团队都是分布式的

在分布式组织中,现实情况是每个团队都是远程的。所有团队都需要适应并学习如何在办公室之间共享工作、有效沟通以及在不同地区培养一致的文化。最有效的团队不只是让远程办公室符合总部的文化,因为他们知道每个办公室都可以从其他办公室那里学到一些东西。他们寻求在所有地点寻找和分享成功实践。他们秉持共同文化的理念,而不是对抗文化。

因为另一个现实是这些团队时不时也会变成分布式团队。成员出差就需要离开办公室,偶尔在家工作可以帮助员工更好地平衡工作与生活。同时兼顾结构和透明度的团队可以更有效地扩展。如果项目扩展到办公室以外,做正确事情的文化就会自然而然地建立起来。

Recommended for you

模板

现成的 Jira 模板

浏览我们适用于不同团队、部门和工作流的自定义 Jira 模板库。

产品指南

Jira 的全面介绍

使用这份分步指南,了解核心功能与最佳实践,以最大限度地提升您的工作效率。

Git 指南

了解 Git 的基础知识

无论您是初学者还是资深专家,本 Git 指南都将通过实用教程与技巧助您掌握基础知识。