写点什么

为什么 Mob 编程会议值得关注

  • 2016-05-05
  • 本文字数:3214 字

    阅读完需:约 11 分钟

_ Mob 编程是一种软件开发的方式,在这种方式中,整个团队会在同一时间、同一空间、同一台电脑上从事同一件事情。_ 这是一种相对较新的方式并且引起了很多的讨论。

第一届 Mob 编程会议将会在 5 月 1 日至 2 日于 Cambridge MA 举行,它是由 Agile New England 主办的。

InfoQ 与这次会议的组织者进行了交流,讨论了 Mob 编程、会议的目标以及到哪里获取更多的相关信息。

InfoQ:你们是第一届 Mob 编程会议的主要组织者,能介绍一下你们自己吗?

Nancy:我是 Nancy Van Schooenderwoert,是一名独立的敏捷教练,主要的工作就是和工程师打交道,这些工程师会构建安全性要求很高的产品,如医疗设备。我之所以提议 Agile New England 举办这个新的会议是因为 Mob 编程模型虽然很简单,但是它有很多深入的内容。我们需要有一个专注于此的活动,从而加深对它的理解。

Eric:我是 Eric Houston,对于 Mob 编程来说,我还是新人,我来这里是学习的。我倡导协作和集体的努力,在 Mob 编程中,我看到了这种理念的缩影。

Woody:我是 Woody Zuill,15 多年以来我一直专注于探索如何提升软件开发业务的方法。我发现敏捷宣言的价值观和原则是很重要的指导,我可以使用它来评估任何我想要尝试的实践。对我来讲,Mob 编程是这种探索过程的自然结果。

Llewellyn (Falco):我接触 Mob 编程开始于 13 年前,我发现了“更强风格的结对”,它遵循这样的规则:“对于某个理念,在它从你的脑子到键盘之间必须要经历其他人的手”。这个规则帮助我更好地理解与我共事的每个人,并将我所学习的领域推进到了超出我预期的程度。

就在前一天,Woody 还在跟我说要成为一个班卓琴的乐手。在节假日,人们通常会聚在一起,玩一些音乐,而程序员则只会聚在一起谈论代码。我们想改变这种情况,并且在当地的聚会上举行一些活动(dojo),在这些活动中,我们会在一起实际编码。这变成了一种很有意思的学习方式,不过 Mob 将其带到了一个全新的水平。我们的 dojo 很像聚会上的果酱会议(jam session),随机找一些人来一起玩音乐。Mob 编程就像一个真正的乐队,人们互相理解和信任彼此,编写出非常棒的软件,它不仅仅是为了片刻的欢愉,更能经受住时间的考验。从那时候开始,我就一直使用 Mob 编程方式,将其用到了团队工作和课堂教学中。

InfoQ:Mob 编程依然是一种很年轻的“方法”。你们能介绍一下它到底是什么吗?

Woody:Mob 编程是一种软件开发方式,在这种方式中,整个团队会在同一时间、同一空间、同一台电脑上从事同一件事情。这类似于结对编程,结对编程中两个人会使用同一台电脑,进行协作,同时编写同一段代码。但是,在 Mob 编程中,我们会将协作扩展至团队中的每一个人,不过,依然会使用同一台电脑来编写代码或做其他的事情。

除了软件编码以外,团队会在一起工作,完成传统软件开发团队所遇到的几乎所有的工作,如定义 Story、设计、测试、部署软件,还包括与客户、业务专家或 Product Owner 的协作。几乎所有的工作都是以“工作会议”或 workshop 的方式来处理,所有与创建软件相关的人都被视为团队成员,包括客户 /product owner。我们每天都会或多或少地按照这种方式进行工作。

换句话说,这种方式对结对编程的极限编程(Extreme Programming)理念进行了演进。我们努力强调并扩大一些理念,如面对面交流、团队共识、协作、全团队参与、持续代码检查以及“自组织团队”。

Llewellyn:很多人将编码视为我们所输入的代码行,Mob 并非如此。Mob 试图最大化地查找深刻见解的数量,并将其体现到代码中。这些见解体现在多个方面。有时,你只需要有人关注着你,从而帮你变得更好;有时,你灵光一现,有了某个想法的火花,但是需要其他思想的火种才能将其变为火焰;有时,你有了一个很棒的想法,但是缺少足够的能力、知识甚至勇气将其变为现实。在 Mob 中,我们可以培育和捕获每个见解,并将其变为最棒的实现,整个团队在任何给定的时间都能体现出最强的能力。

我经常会想到这个难题,“球拍的价格比球贵 1.00 美元,而它们一共需要 1.10 美元,那球的价格是多少呢?”,这样的问题很容易让人感到困惑,不过,如果在 Mob 中,有一个人得到了结果,那么整个 Mob 团队都会很快知道答案(0.05 美元)。

InfoQ:你们组织了史上第一次 Mob 编程会议,那么你们的目标是什么呢?

Woody:我曾经举办过很多的 workshop,有公开的也有内部的,还有一些其他的聚会(如在 Stockholm 的 Ericsson 所举办的几次活动),另外还做过很多演讲、访谈和展示。但是,这次我们想要提供一种不同的体验。

Nancy:Woody、Llewellyn 和我曾经帮助团队学习 Mob 编程,我们意识到后来出现了 Mob 的不同实践和风格——我们想要与来自不同团队的 Mob 参与者聚在一起,对比 / 探索他们特有的实践。我们也看到,有多种不同的方式来引入 Mob 编程。对于那些想提升讲授 Mob 编程水准的人来说,将会在实践中得到学习:他们将会向那些之前也从事这方面工作的人进行讲解,并向他们学习。我们的目标是不管你的 Mob 编程技巧水准如何,都能学到新的知识,其中也包括我们!

Llewellyn:在公司中,我们将每个人都聚集到同一个房间中一起工作,就会发生一些很棒的事情。我们相信如果将具有这种工作风格经验的人聚集到同一个房间中,并分享相关经验的话,会发生同样的事情。

我期望能够发现一些之前所不了解的东西。希望能够学习到一些别人已经掌握的新理念。

InfoQ:这次会议的日程与其他的敏捷活动颇为不同,你们能解释一下吗?

Woody:我们希望能够提供一种环境,让每个人都得到尽可能多的实战经验。我们对演讲的数量进行了限制,所以能够花尽可能多的时间去举行 workshop,在 workshop 中会有导师进行指导,这些导师都是创新者并且是较早采用 Mob 编程方式的人。在整个会议期间,我们还会举行回顾和 Open Space 环节,这样就能进行“优化和调整(tune and adjust)”,从而更好地满足参会人员的需要。

Llewellyn:我们希望获得共享的经验,还想要进行讨论和探索。与常规的会议不同,我们知道整个房间里所有人的知识要比站在房间前面进行演讲的人的知识多得多。我们不想采用学术会议的形式,让参加者只是听演讲,但我们也知道,一开始进行讨论的时候,会有很多的误解。有时候会有谬误:“它需要是 6!”“这不行,它是半打(½ a dozen),否则不可行”。有时候会产生误解:“这就是红色所代表的含义吗?”首先举行 workshop,能够有助于确保参会者使用共同的语言,因为我们具有共同的经验。

InfoQ:这个活动的目标观众是谁呢?

Nancy:敏捷团队中的每个人都是我们的目标观众。各种水平的软件开发人员和测试人员都会觉得这是一个关于 Mob 编程的很好的入门,如果他们已经尝试过 Mob 编程的话,那么他们会了解到将其继续推进的方法,以及如何解决所面临困难。技术领导会发现 Mob 编程能够使他们的团队成员之间保持同步,学习新东西会非常高效。

Llewellyn:Mob 建立在多样性之上,我们希望这次会议能体现这一点。

  • 来自团队中所有组成部分的不同观点 [程序员、测试人员、product owner、UX、BA 等等]。
  • 来自教师、学生、咨询人员以及全职雇员的不同观点。
  • 来自刚刚听说这种方法的人、全职采用这种方法的人甚至该方法发明者的不同观点。

每个人都会为这个拼图做出自己的贡献。

InfoQ:在我参加之前,如果我希望加深对 Mob 编程的认识,你们有什么推荐阅读或视频吗?

Nancy有一个三分钟的视频是关于 Woody 的团队如何实施 Mob 编程的。这个视频展现了一个 100% 的时间都采用 Mob 方法的团队所经历的典型的一天。
参见 Woody 的博客,这里有很多最新的相关信息。

Woody:在 LeanPub 上,Llewellyn 有一本指南性的图书——我也刚发布了“正在进行中”的一本书(也在Leanpub 上): Mob Programming: A Whole Team Approach

Llewellyn:我还要补充 Woody 的 NDC 访谈 Jason 的敏捷 2015 经验报告(Agile 2015 experience report) Aaron 的 Mobbing for Introverts

查看英文原文: Why the Mob Programming Conference Matters

2016-05-05 19:001943

评论

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

网上正规实体现场同步平台

新百盛娱乐yscy898

局域网与Kubernetes内部网络如何互通

程序员半支烟

k8s

数字鸿沟,让气候脆弱者更脆弱

脑极体

AI气象

第二届广州·琶洲算法大赛报名截止 3300多支队伍将展开激烈角逐

新消费日报

数智双擎,算融未来”,2023东湖算力与大数据创新大会圆满召开

彭飞

SpringBoot3数据库集成

Java 架构 springboot SpringBoot3

【我和openGauss的故事】kettle连接openGauss 5.0.0 数据库

daydayup

【我和openGauss的故事】构建openGauss开发编译提交一体化环境

daydayup

Redis Sentinel 初步设计方案

艾瑾行

架构训练营

2023-08-12:用go语言写算法。实验室需要配制一种溶液,现在研究员面前有n种该物质的溶液, 每一种有无限多瓶,第i种的溶液体积为v[i],里面含有w[i]单位的该物质, 研究员每次可以选择一瓶

福大大架构师每日一题

左程云 福大大架构师每日一题

【我和openGauss的故事】openGauss主备集群节点的添加与删除

daydayup

openGauss数据库源码解析系列文章——安全管理源码解析(三)

daydayup

局域网与Kubernetes内部网络如何互通

程序员半支烟

k8s

【我和openGauss的故事】openGauss初体验

daydayup

【我和openGauss的故事】体验openGauss 5.0极简版一主一备部署,延时回放和主备切换功能

daydayup

【我和openGauss的故事】openGauss 3.1.1企业版主备集群升级至5.0.0操作指南

daydayup

【我和openGauss的故事】openGauss5.0企业版集群一主一备安装V1.0

daydayup

一个SAT求解器及其JavaScript实现

Yuet

成为大主播的必懂知识:直播源码推流

山东布谷网络科技

直播推流 直播源码

从 Zebec Protocol 长期布局看,ZBC 通证的潜在应用场景

BlockChain先知

从 Zebec Protocol 长期布局看,ZBC 通证的潜在应用场景

股市老人

从 Zebec Protocol 长期布局看,ZBC 通证的潜在应用场景

鳄鱼视界

局域网与Kubernetes内部网络如何互通

程序员半支烟

k8s

openGauss数据库源码解析系列文章——安全管理源码解析(四)

daydayup

从 Zebec Protocol 长期布局看,ZBC 通证的潜在应用场景

西柚子

15. 系统内置模块

茶桁

Python 模块

网上正规实体平台现场同步yscy898

新百盛娱乐yscy898

上线规则 微咨询 Fil币现在进场合适吗? 简单查询

【我和openGauss的故事】openGauss索引推荐功能测试

daydayup

为什么Mob编程会议值得关注_语言 & 开发_Stéphane Wojewoda_InfoQ精选文章