探讨和使用 Mob 编程的人不是很多。尽管这样,他们的经验大部分都很有参考价值,因为他们对编程和团队都有不同的见解。
Llewellyn Falco 在第一届 Mob 编程大会上展示了一个有关 Mob 编程的 keynote,叫做《理解 Mobbing 的科学之处》。Mob 编程大会在 2016 年 5 月 1 日 -2 日在马萨诸塞州坎布里奇举行。InfoQ 通过 Q&A 和文章对其进行了跟踪报道。
根据 Llewellyn 所说,Mob 编程不是一项科学,而且计算机科学也几乎不算是一项科学。尽管如此,至于一个团队如何开发软件,在此有一些常用的实践方法:
- 独立编程是现在最常用的实践方法,不管是好的还是坏的,所有的东西都进入到了代码里,
- 结对编程是第二最为人熟知的方法,两个人的更好的想法会进入到代码里,
- Mob 编程可能是最无人知道的开发方式,但是根据 Llewellyn 所说——它不是获取人们的大部分想法,而是选择了最好的想法
其中的科学又在哪呢?Llewellyn 将它与系统理论联系在了一起:一个团队就是一个系统。而且它是一个很复杂的系统。人们很难将其中的一部分独立出来,或引用 Dan North 的一句话就是“一只手击掌会是什么声音?”。
在系统中开始任何东西就像是点燃一团营火。团队中如果全都是独立编程的程序员,即使是最好的程序员,当一个人落后了,他或她(大部分时候)都是独自解决问题,然后还是陷在问题中。为了产生新的想法,一个人需要让想法发散出去,越发散越好。而这正是 mobbing 所做的:让许多人试图一起增强一个已有的思想火花。使用 Llewellyn 所做的另一个比喻,这就是豪斯医生的剧集里(或硅谷第一季最后一集里)正好相反的事情:一个人有一个顿悟,或者引发了一个想法,然后团队的其他人有助于使它成为一个更好的想法。这种影响就像记忆和群体记忆的关系。群体记忆一般都比一个人的头脑更好,mob 编程则可以驱动多人记忆。这和解决问题是一样的:你有一个鼓励 Takeuchi 和 Nonaka 称之为“多元化”的系统状态。而且一旦事情越来越糟时多元化就十分有用。
Llewellyn 提出了下面一个显然很简单的问题:
你如何构建一个团队?
在他的回答里,有两个先决条件:
- 在 mob 中,你不知道想法会从哪里冒出,但是那真的不是重点。相反地,很多时候我们为生存倾向所折磨:一个人在观察带来成功的东西,而那正是你应该逆向分析的地方。举个例子,因为高级管理人员的想法被采用了,所以通常人们会认为他们所说的是更好的想法。然而,大多数时候这和想法本身无关,特别是在一个会议中。这都与 HiPPO 有关:当一个高级人员只是与团队交流而不是与团队一起工作时,成功的机制是不同的。更直接一点地说,如果一个项目是成功的,是多亏了高级人员的想法;否则的话就是归咎于团队。
- 这引发了另一个 Llewellyn 解释的现象:本杰明·富兰克林效应。当我们认为我们对别人很友好、体贴和尊敬时,事实往往相反:其实是那个人对你很友好、体贴和尊敬。
所以这个简单的问题的完整答案是:
作为一个团队一起工作。你和什么样的人待的时间最久,你也会变成这样的人。
现在我们回到人文主义:如果一个团队的样子不仅仅取决于团队成员是什么样的人,并且作为成员的我们会影响到我们周围的人,那我们必须很友好、体贴和尊敬他人。这才能让以身作则的精益原则生效。
Llewellyn 最后与大家分享的一点是技术负债和技术资产的区别。只考虑负债而遗忘资产是不公平的(在你寻求降低成本而不是创造价值时很容易这样)。
很难阻止 10 倍开发者的神话的流传。但是 10 倍开发者看起来是什么样的呢?根据一些基于数学的例子,我没能理解很多,但是 Llewellyn 的结论是通常 10 倍看起来并不像你期望的那样。它和看问题的角度有关,并且 10 倍的速度可能看起来很慢但是可以非常有效。
为了将这一点更加具体,他介绍了两个陌生概念的差别:
- 无限的任务,例如将一块蛋糕分成两半直到时间结束。
- 超级任务,根本上来说是一个在有限的时间内完成的无限任务。例如在两分钟内持续将一块蛋糕分成两半,并不断把留下的部分也分成两半。你将在两分钟内结束切蛋糕的过程。
从这点来说,并且回到执行的角度,没有人可以说引进一个人 1% 的学习时间后是什么样的。另外一个方面,如果你在一个大公司(或古老的公司)工作,你有机会来理解十年不学习会变成什么样!
为了对 mob 编程进行总结,主要的关注点在于文化:为了获得改变,它应该是开放的并且是一个邀请。这真的是对他的演讲作为一个 _ 纹心结构 _ 的总结:你们应该作为一个团队去参加大会,并带着开放和邀请的文化。否则当你带着新概念回来时,你的团队无法与你保持同步(还会在大部分时间推开你)。
查看英文原文: Understanding the Science of Mobbing
感谢夏雪对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论