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

作者:Martin Fowler

译者:冬哥

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

四、注意沟通模式 

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

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

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

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

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

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

五、远程和敏捷 

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

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

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

结  论 

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

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

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

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

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

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

 

 

 

你可能感兴趣的:(devops,运维,驱动开发)