(这篇文章是New Relic的6部分mob编程系列的第2部分,我们称之为驯服的暴徒)。

我喜欢mob编程,也喜欢隐喻。我喜欢群聚,因为它可以帮助我的工程团队可靠而一致地交付优秀的软件。我喜欢隐喻,因为它很有趣——即使是在专业环境中——将看似不相关的概念映射到彼此,以帮助沟通复杂的想法。最近,在准备一个关于我的团队实践的演讲时,我寻找了一个恰当的比喻来描述mob编程。我想用一个比喻来强调聚集在一屋子的工程师、工程经理和产品经理的效用,他们中的大多数人可能听说过聚集编程,但可能不欣赏它的好处。

我曾经简单地将mob编程总结为与超过一对程序员的结对编程。另外,我也会将其描述为一种极其字面的原则,即开发团队,而不是独立的工程师,应该是分配给一个任务的单元。这些简单的描述传达了围攻的基本形态,但它们并不能准确地说明这种做法是如何帮助我的团队取得成功的。

Mobbing_Campfire_Building

篝火的比喻

我最喜欢的mob编程的比喻是,它就像一群营员在照料篝火。当营火很旺的时候,营员可以来来回回,但大群的人绝不会让火堆无人看管。同样地,在一个群氓编程会议期间,一个工程师可能会离开群氓,但是群体将继续处理手头的任务。

就像一群人在照料篝火,一群暴徒保持着一种连续性。我们共同关注的焦点使工作之火持续燃烧,并创造出一个共享的空间,让我们能够把工作做到最好。

让火继续燃烧

在工作日,工程师可能会因为各种原因中断工作:他们可能随时待命,需要提出支持请求;他们可能需要和他们的经理进行一对一的交流;或者他们可能需要处理生活中的其他需求。如果这位工程师一直是独自工作,他们所从事的任何工作都会被搁置,直到他们回来。相比之下,暴民肯定会怀念那个人的贡献,但仍然会继续在他们面前的任务上取得进展。群聚可以确保团队的注意力在个人暂时缺席时保持弹性。

当营员不断地在火堆间来回走动时,通常会有很棒的对话发生——营火公牛会议是传奇。在我们的编程群体中,对话并不那么随意,通常围绕着关键问题展开,但仍然是整个过程中不可分割的一部分:

  • 我们取得了预期的进展吗?
  • 如果我们被卷入其他工作,是因为我们的方法不起作用吗?
  • 这项任务比我们预期的更复杂吗?我们需要和我们的工程和产品经理沟通吗?
  • 是时候停止争论我们喜欢的Ruby哈希语法了吗?

像这样的问题帮助我们理解为什么我们可能会在一项任务上失去动力,但更重要的是,它们给了我们一种机制,让我们互相负责地完成任务。当我们牢记这些问题时,我们通常能够将彼此从常见的工程陷阱中拉回来,比如:

  • Bikeshedding:我们花在讨论琐事上的时间是否多于做重要决定的时间?
  • 牦牛剃须:我们是否陷入了小任务的泥沼而无法完成大任务?
  • 掉进兔子洞:我们是否迷失在一系列与我们主要任务无关的弯弯曲曲的切线中?

没有人能完全摆脱所有这些陷阱——软件开发是困难的,没有人是完美的。然而,虽然我看到我们的团队成员连续数分钟受到这些干扰,但我们从未在数天或数周内滥用我们的努力,就像我在个别工程师(包括我自己)身上看到的许多情况一样。

把营火当作共享空间

篝火也是一个安全的地方。它提供了一种原始的安全和舒适的感觉:它发出热来抵御寒冷,发出光来抵御黑暗。Mob编程通过培养团队成员之间的相互信任,为开发团队提供了类似的安全感。由于营员们倾向于聚集在共同的安全环境下,mob编程将工程师们吸引到一起合作,而不是将他们彼此推开。

如果你问一个独自完成任务的工程师他们的进度或注意力,他们可能会做出防御性的反应,或者认为你是在不公平地挑战他们。Mob编程为团队提供了一个共享的空间和结构,可以安全地提出这些问题。

Mobbing_Campfire_Marshmallows

通过在团队中建立信任,我们也更容易在一对一的人际关系中建立信任。有时这对暴徒来说是没有意义的;有时,如果我们几个人都在努力保持专注,我们就需要分开行动——毕竟,没有什么练习能完美地适用于每一项任务。尽管如此,我发现我们对公开对话的奉献精神和集体安全感一直延续到我们单独的工作中,这有助于我们将团队团结在一起,即使我们在做不同的任务。

无论是在群体内还是群体外,群体活动都能帮助我们做到最好。

我和我的团队依赖于这个篝火的比喻。它帮助我们向其他工程师和工程经理解释mob编程的好处。通过不断运用团队最重要的任务,通过保持我们失去或在误导我们的重点,并通过创建一个安全感,我们的团队在一起,暴徒编程帮助我们完成作为一个群体远比我们能从我们个人努力的总和。

不要错过我们的其他帖子驯服的暴徒系列:

观看下面的视频,听New Relic的工程师谈论mob编程的原理,以及它如何影响了New Relic的软件开发过程。

Nate Borrebach是New Relic客户体验团队的高级软件工程师。他目前正在构建账户管理和使用数据的功能,但他一直对帮助他的团队更快地发布优秀软件感兴趣。他热衷于交响乐、俄勒冈户外运动和欢乐时光。查看贴子

有兴趣为New Relic博客写作吗?亚搏体育登入网给我们发一份建议书!