写点什么

理解 Mobbing 的科学之处

2016 年 7 月 10 日

探讨和使用 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 )关注我们。

2016 年 7 月 10 日 19:001641
用户头像

发布了 26 篇内容, 共 54357 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

《中国互联网简史》系列笔记之P2P

dongh11

读书笔记

如何通过样本数据推断其分布

张利东

Python

机器学习项目是如何开发和部署的?

陆道峰

人工智能 学习

HTML中实现合并单元格

JDoe

html

做好领路人——写给技术新人的导师建议

南方

管理 新人

重学 Java 设计模式:实战原型模式

小傅哥

Java 设计模式 小傅哥 复杂代码优化 重构

解决版权难题,“豪横”字体自己做

zhoo299

设计 CG

前端工程化之创建项目

春生

前端 前端工程 前端架构 全栈工程师

地铁上看书的老外引发的思考

小天同学

写作 读书 个人感想 日常思考

Eureka 实例注册状态保持 STARTING 的问题排查

张晓辉

spring Spring Cloud netflix

偏头疼告诉我的,我想告诉每一个人

zkback

最香远程开发解决方案!手把手教你配置VS Code远程开发工具,工作效率提升N倍

柠檬橙

Linux 后台开发 vscode 后端

自定义构造python白名单__builtins__

么么哒

Python

不懂送女朋友什么牌子的口红?没关系!Python 数据分析告诉你。

JackTian

Python 程序员 数据分析 python 爬虫 口红

GitHub 上十个好用的软件

彭宏豪95

GitHub 效率 工具

MySQL死锁系列-常见加锁场景分析

程序员历小冰

MySQL

python实现·十大排序算法之基数排序(Radix Sort)

南风以南

Python 排序算法 基数排序

git | IDEA 中如何压缩提交(压缩commit后再push 图文演示)

YoungZY

开发者工具 IDEA 开发工具

团队与领导力健康检查 | 体检表

Bob Jiang

团队建设

写给产品经理的信(5):谈谈项目管理(青铜-王者)

夜来妖

产品 极客时间,项目管理 项目管理 产品经理 项目

为什么要学习 Markdown?究竟有什么用?

JackTian

markdown markdown语法 markdown编辑器

互联网省份数据大揭秘,看看哪些地方是互联网的戈壁滩?

非著名程序员

程序员 互联网 IT

Python deepcopy一个优化

么么哒

Python

时序数据库

pydata

自定义列表样式

寇云

CSS css3

“新基建”方兴未艾,Smartbi Mining如何为产业数字化转型赋能?

infoq小陈

认识数据产品经理(四 与互联网产品经理的区别)

马踏飞机747

大数据 互联网 产品经理 职业规划

纯CSS“返回顶部”特效

寇云

CSS css3

一款开源且具有交互视图界面的实时 Web 日志分析工具!

JackTian

开源 GoAccess 实时 Web 日志分析工具 交互式查看器

为什么第三方联调应该先行?

大伟

只用CSS实现响应式Full-Width img 2种方法

寇云

CSS css3

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

理解Mobbing的科学之处-InfoQ