HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

为什么 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:001666

评论

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

Redis:我是如何与客户端进行通信的

碌碌无为小码农

Java 面试 程序人生 编程语言 经验分享

php中序列化与反序列化

喀拉峻

网络安全

【笔记】学《郭东白的架构课》:09|法则四:为什么要顺应技术的生命周期?

术子米德

架构师成长笔记

教程直播第7期|如何对 OceanBase 进行 SQL 诊断和调优

OceanBase 数据库

数据库 直播 课程 OceanBase 开源 OceanBase 社区版

ReactNative进阶(三十二):前端构建工具--Yeoman

No Silver Bullet

React Native 1月月更 Yeoman

阿里最新丰碑:国内第一本凤凰架构,全面构建可靠大型分布式系统

碌碌无为小码农

Java 架构 程序人生 编程语言 经验分享

混沌工程之 ChaosToolkit K8S 使用之删除 POD 实验

zuozewei

k8s 混沌工程 1月月更

【笔记】学《郭东白的架构课》:05|法则二:研发人员的人性需求是如何影响架构成败的?

术子米德

架构师成长笔记

Hoo虎符研究院2022年0124期区块简报

区块链前沿News

Hoo虎符 Hoo 虎符交易所 区块链资讯

【笔记】学《郭东白的架构课》:10|架构设计中怎么判断和利用技术趋势?

术子米德

架构师成长笔记

项目管理的十大领域

石云升

项目管理 项目经理 1月月更

“字节”再次起跳!内部651页剖析HotSpot 源码手册,GitHub开源

碌碌无为小码农

Java 面试 程序人生 编程语言 经验分享

【笔记】学《郭东白的架构课》:06|法则二:拼多多是如何通过洞察用户人性而脱颖而出的?

术子米德

架构师成长笔记

表妹和我纠结,线上系统因为一个ThreadLocal直接内存飙升

碌碌无为小码农

Java 架构 程序人生 编程语言 经验分享

后悔没有再点遇到!字节技术官DDD(领域驱动设计)手册,拆解业务代码首选

碌碌无为小码农

Java 架构 程序人生 编程语言 经验分享

【笔记】学《郭东白的架构课》:12|法则五:如何提升一个架构设计的外部适应性?

术子米德

架构师成长笔记

【笔记】学《郭东白的架构课》:11|法则五:架构师为什么要关注技术体系的外部适应性?

术子米德

架构师成长笔记

参数校验Spring的@Valid注解用法详解

JavaEdge

1月月更

首批+唯一!阿里云实时计算 Flink 版通过信通院大数据产品稳定性测试

Apache Flink

大数据 flink 阿里云 实时计算

如何用 Serverless 让 SaaS 获得更灵活的租户隔离、更优的资源开销

碌碌无为小码农

Java 架构 面试 经验分享 编程语言、

【笔记】学《郭东白的架构课》:13|法则六:如何鉴别文化环境是否有利于架构师的生存?

术子米德

架构师成长笔记

被字节跳动气炸了!

Jackpop

markdown-it 插件如何写(三)

冴羽

JavaScript 前端 vuepress markdown-it markdown-it插件

科技,让春节团圆再无距离

Anthony

『内存中的操作系统』如何高效, 灵活的虚拟化内存(1)

soolaugust

操作系统 内存

(1-20/20) 用技术实现更快、更好的销售

mtfelix

300天创作 2022Y300P

【笔记】学《郭东白的架构课》:07|法则三:架构师如何找到自己的商业模式?

术子米德

架构师成长笔记

架构实战训练营- 模块8 -作业

温安适

「架构实战营」

GitHub上线一天星标99.9K:阿里内部高逼格SpringCloud实战手册

碌碌无为小码农

Java 架构 面试 程序人生 编程语言

24 Prometheus之微服务监控概述

穿过生命散发芬芳

Prometheus 1月月更

【笔记】学《郭东白的架构课》:08|架构师如何在一定时间内最大化自己的增量价值?

术子米德

架构师成长笔记

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