Martin Fowler:数字化时代,远程与本地协同工作孰优孰劣?| IDCF

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Martin Fowler:数字化时代,远程与本地协同工作孰优孰劣?| IDCF相关的知识,希望对你有一定的参考价值。

作者:Martin Fowler

译者:冬哥

原文:https://martinfowler.com/articles/remote-or-co-located.html

远程工作与同地工作之间不是简单的二分法,相反,团队有多种分布模式,每种模式都有不同的权衡和适合的有效技术。虽然没有确凿的证据,但我的感觉是,大多数团队以同地办公的方式工作效率更高。但是您可以通过使用分布式工作模型来建立一个更有效率的团队,因为它可以让您接触到更广泛的人才库。

信息时代最深远的影响之一是能够在无视地理位置的情况下做很多事情。我不再需要去大多数商店、图书馆或旅行社(我期待着不用去看牙医的那一天)。世界上大多数人都看到了这一点,但对软件开发人员来说尤其明显,他们通常处于数字化转型的前沿。

然而,在开发软件时,许多开发人员并没有充分利用连接计算机进行通信的无限可能性。雅虎最近将所有非现场工作人员带回到单一站点办公,这引起了很多媒体的关注。Netflix 和谷歌等领先科技公司非常喜欢将员工集中在一个站点。

这样的举动让我们这个行业的其他人对其指指点点,嘲笑起来。一些名气很响亮的互联网公司,例如 Etsy、Basecamp 和 Github,其中许多员工从未一起在办公室工作过。对于这样的团队,远程工作是未来,那些反对它的人被称为是历史的失败者。

虽然我在行业的这些年里多次参与过关于远程工作的讨论,但我觉得没有太多决定性的因素可以谈论。远程工作对软件开发的影响无法以任何单一有意义的方式整合在一起。

然而,我确实与很多团队交谈过,这些谈话让我得出了一些我将在这里分享的初步意见。

一、远程的许多形态

首先要明确的是,在同一地点和远程团队之间没有简单的二分法。有许多不同的变体,每一个变体都有自己的长处和短处。为方便起见,这里有一些范例。

一个单中心的团队,是一个团队,每个人都共处于同一物理位置。理想情况下,这意味着你们彼此相距仅几步之遥,无需安排任何事情即可快速协作,并且可以轻松查看其他人的动态。许多团队喜欢一个单独的团队房间来做到这一点,因为它最大限度地简化了沟通。甚至隔间的存在也会成为障碍——许多敏捷教练都有关于螺丝刀的故事(意指拆掉格子间)。

一个多站点的队伍由两个或多个不同位置的团队组成一个更大的团队,或许定义了一些子团队的界限和责任。一个很好的例子是墨尔本和西安之间的开发团队(译者注:TW的真实情况)。

当大部分团队成员在同一地点办公,但有少数成员在家中或其他办公室远程工作时,就会出现卫星工作者。

在远程优先的团队中,每个人都在一个单独的位置工作,通常是在家中,因此所有的交流都是在线进行的。大多数开源项目都是远程优先的,这种经验鼓励了许多初创公司使用它。

远程状态因程度而异。人们经常观察到,仅仅将一个团队分散在同一栋建筑的两层楼就足以打破同地办公的感觉。增加更多的距离和时区会加大这种远程性,但许多人认为,最大的差异发生在你与合作者之间不再是短短几步路的距离。关键是你发现发送电子邮件比走过去说话更容易。

二、大多数人在同地办公时工作效率更高

与软件开发中的许多主题一样,我不能拿 100 个软件开发团队来分析远程是否以任何定量的方式影响生产力。人们会发表例证,例如“我觉得在同一个地点的团队中更有效率”,但这不一定是最好的证据。

另一个原因是,还有很多其他因素影响团队的运作。如果有人说他们在单站点团队中更有效,那可能是因为与不同的团队相比,还有其他因素在起作用。减少这个问题的一种方法是特别关注改变了分布模式的团队,例如从单站点拆分到多站点。但其他因素仍然存在,特别是因为团队分布的变化通常意味着人们会离开或加入一个团队,但我认为这至少比比较完全不同的团队会产生更有力的证据。

鉴于此,我(或任何人)所能做的就是听取更多人的意见并做出我所能做出的最佳判断。

我听说过很多关于团队和地点的经历,包括很多团队改变了他们的分布模式(尽管我没有听到很多关于远程优先的消息),使我得出结论,大多数团队在单站点模型中的工作效率更高,原因是沟通方便。

虽然(视频)聊天、屏幕共享等工具已经做了很多工作使得远程工作更容易,但仍然没什么能比转身看到你想与之交谈的人谈话更有效的了。这还引入了大量的带外信息,从而改善了个人关系。结果是改善关系和沟通的良性循环。由于通信是软件开发的核心部分,因此这对生产力有很大影响。

但请注意我说的是更多。人类千差万别,我相信有些人在远程工作时更有效。我的感觉是,这会是少数人。(这里也可能有代际因素,因为年轻人更习惯于远程互动。)

三、远程团队通常更有效率

因此,如果我们不考虑面向远程的少数群体,单站点团队的更高生产力是否意味着我们应该支持单站点模型?事实证明,我们通常不应该这样做。

虽然我广泛听到一个特定的团队在同地办公时更有效,但单一站点对您在团队中可以拥有的人有很大的限制。这样的规则意味着您无法聘请最适合该工作的人,您只能聘请准备搬迁的最佳人选。通过使团队远程化,您可以扩大可以带入团队的人员范围。如果远程团队位于同一地点,则其工作效率可能低于同一个团队,但仍可能比您可以组建的最好的同一地点团队更有效率。

远程不仅避免了永久搬迁的问题,还为个人提供了更多选择,特别是在远程优先模式下在家工作时。人们看重的是接送孩子放学方便,避免了上下班时间和精力的浪费,以及宜人的环境。提供使就业方案更具吸引力的产品。鉴于女性经常承担看护工作,因此更难花时间在办公室,这也可能有助于提高多样性。

这种影响也是跨国家的一个重要因素。随着离岸外包变得流行,大多数人将其视为降低成本的一种方式。在 Thoughtworks,我们认为寻找最优秀人才更为重要。例如,我们的中国办事处在澳大利亚成为特别有价值的支持工作,因为人才库的规模要大得多。

四、注意沟通模式

人们交流的方式是有效软件开发的核心。无论是基于什么原因引入远程工作,您都需要考虑通信模式的限制。特别是我们必须意识到,同地通信的信道比远程在线通信丰富得多——至少对大多数人来说。因此,与远程工作人员之间的情况相比,大多数共处一地的人会更好地沟通并拥有更好的个人关系。这会导致您需要注意的一系列后果。

多站点团队倾向于对其他站点形成“我们”和“他们”的态度。您可以通过定期联系访问和大使来减少这种情况。接触访问是短期的跨团队访问。虽然这些有利于偶尔进行一些更深入的合作,但它们的最佳目的通常是建立人际关系。组织往往会忘记后者的重要性。因此,在进行接触访问时,要更加重视社会性联系(这意味着为有助于建立关系的活动分配时间)。大使是在不同地点待上几个月的人。大使可以做很多事情来促进他们的临时远程团队和他们通常的主队之间的沟通,无论是在远程还是在他们回家时。

如果您要使用远程优先模型,则需要全身投入。所有的交流都应该在线进行,不要在同一个办公室里有共同定位的子组。我甚至听说有些团队强迫在同一个办公地点工作的人在单独的办公室工作,并强制要求与隔壁程序员的任何交流都在网上进行。尽管如此,远程优先并不意味着仅远程。远程优先的组织通常每隔几个月进行一次面对面的聚会,以帮助解决棘手问题并改善人际关系。(例如,Basecamp 每年举行两次聚会,为期一周。)

使用多站点团队,按完全自主的组件划分工作。每个团队都应该是全栈的,并负责将一个组件从创意到生产。不要按层(前端/后端/数据)或活动(分析/开发/测试)划分。层和活动边界之间都需要丰富的通信,请记住康威定律的重要性。

让卫星工作人员发挥作用是非常困难的。由于大多数人在同一地点,大多数沟通将发生在同一地点的团队内。我几乎从来没有听说过这个模型,除非卫星人越来越疏远。如果他们的工作非常自主,那将减少问题的可能性。确保卫星人员定期访问现场团队也是明智之举,至少每月几次。但在大多数情况下,它似乎最好作为一种临时措施。

远程沟通困难的一个特定领域是指导初级员工。一些远程优先的倡导者认为,你应该只让有经验的员工加入远程优先团队。像大多数情况一样,远程指导人们并非不可能,但要困难得多。对于多站点团队,确保每个站点都有经验丰富的导师来指导新人。避免让初级员工成为卫星工作者。小心让初级人员加入远程优先团队,当然不要尝试,直到远程优先团队工作顺利,然后才慢慢加入初级人员。

五、远程和敏捷

我听过一些人争论敏捷软件开发与远程工作不兼容,那是片面的,或者至少根据我对敏捷思维的理解。

当然,敏捷方法鼓励了更大程度的协同。极限编程将“坐在一起”作为其主要实践之一:“面对面的时间越多,项目就越人性化和富有成效”。在敏捷宣言说:“一个开发团队中传递信息最有效的方法是面到面的沟通。”

但所有这一切只是表明一个特定的团队在同地办公时通常会更好地协作。通过支持远程工作模式来获得更好的团队并没有任何争论。敏捷宣言的第一个价值是“个体和交互胜过流程和工具”,我们应该将其理解为鼓励我们优先考虑在团队中招募最优秀的人并帮助他们更好地合作。(Kent 指出“坐在一起”不是 XP 的强制性要求。)虽然我们承认面对面的交流更有效,但这种认识不能忽视个人和互动的重要性。

 结  论

很明显如我希望,没有足够的证据可以对远程工作的功效形成任何有力的结论。以下是我的主要想法:

  • 永远不要忘记团队有不同的分布模式,而不仅仅是简单的远程与同地二分法。多站点团队的优点、缺点和有效技术通常与远程优先团队不同。

  • 由于他们拥有更丰富的沟通,大多数人在同地工作时会更有效,但是不要忘记有些人在远程优先模型中似乎更有效。

  • 尽管我认为大多数团队在同一地点工作会更有效率,但通过采用某种形式的分布式模型,你通常会得到一个更有效的团队,因为它会扩大你可以获得的人才库。

  • 使用远程工作模式时,请注意通信模式的形成方式。投资于改善沟通,包括旅行和技术。

在我从事软件行业期间,您可以通过支持远程工作模式获得更好的团队这一事实变得越来越重要,并且我预计它的重要性会继续增长。我感觉到最好的开发商越来越不愿意接受单站点工作的位置和通勤劣势。随着人们越来越有经验,因此更有价值,这一点越来越真实。您可以尝试忽略这一点并接受将为您搬迁的最佳人选,或者您可以探索如何使远程工作模式更有效。我认为能够使远程工作模式有效的组织将拥有显着且不断增长的竞争优势。

以上是关于Martin Fowler:数字化时代,远程与本地协同工作孰优孰劣?| IDCF的主要内容,如果未能解决你的问题,请参考以下文章

Martin Fowler关于微服务的原文翻译

Inversion of Control Containers and the Dependency Injection pattern (Martin Fowler)

首席科学家马丁?福勒(Martin Fowler)

读Martin Fowler的Yet Another Optimization Article

Inversion of Control Containers and the Dependency Injection pattern--Martin Fowler

读Martin Fowler的Yet Another Optimization Article