写点什么

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

评论

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

JavaScript进阶(二)上

Augus

JavaScript 9月日更

北鲲云超算平台为何能够被高性能计算行业认可?

北鲲云

GitHub上120K Stars!被誉为国内第一的Java多线程PDF到底有什么魅力?

Java GitHub 程序员 面试 计算机

Nocode 进阶 | 迎接 Amazon Honeycode,敲开 NoCode 开发大门(上)

亚马逊云科技 (Amazon Web Services)

人工智能 大前端

国内独家首发版本!龙蜥操作系统(Anolis OS) 8.4 正式发行!

OpenAnolis小助手

Linux centos 开源 开源社区

2021全球高性能云计算创新大赛,9月15日重磅启动!

亚马逊云科技 (Amazon Web Services)

云计算

京东内部“绝密”SpringCloud实战手册,GitHub列为首推

Java 程序员 架构 面试 计算机

NoCode 实战 | 零代码应用开发,轻松搞定任务跟踪管理难题(上)

亚马逊云科技 (Amazon Web Services)

人工智能 android

NoCode 实战 | 想要开发在线选课系统?何必那样大费周章!

亚马逊云科技 (Amazon Web Services)

html html5

跨语言编程的探索 | 龙蜥技术

OpenAnolis小助手

Java c++ 开源社区

NoCode 热身系列:实现一个任务跟踪与管理系统(下)

亚马逊云科技 (Amazon Web Services)

ios android 数据库

NoCode 实战 | 零代码开发:轻松打造会议计划系统!

亚马逊云科技 (Amazon Web Services)

html

数字人民币,支付机构的机会在哪?

CECBC

名震Java界!字节跳动内部顶级数据结构刷题学习笔记根本停不下来

Java 程序员 架构 面试 计算机

GitHub获120w+star的JDK源码剖析手册,竟出自Alibaba高管之手?

Java 程序员 架构 面试 Alibaba

记一次Linux安全提权总结

网络安全学海

Linux 网络安全 信息安全 渗透测试 WEB安全

NoCode 实战 | 零代码应用开发,轻松搞定任务跟踪管理难题(下)

亚马逊云科技 (Amazon Web Services)

Java 人工智能

中原银行分布式批处理调度平台介绍

中原银行

分布式 批处理 中原银行

实时数据引擎系列(五): 关于 SQL Server 与 SQL Server CDC

tapdata

云备份和恢复的优缺点

云计算

全国基于区块链数据知识产权质押贷款落地杭州

CECBC

AI应用说 | 「虫口夺粮」的害虫识别还是牛场24小时无人监控,AI+农业话题咱们唠一唠

百度大脑

NoCode 热身系列:实现一个任务跟踪与管理系统(上)

亚马逊云科技 (Amazon Web Services)

html 自动驾驶 ios

9 个前端性能优化的最佳实践

devpoint

CSS CDN 9月日更

如何获取系统错误报告--Bug Report

Changing Lin

9月日更

Filecoin算力矿池挖矿系统开发案例

薇電13242772558

区块链 IPFS

一文揭示,DevOps与企业数字化究竟有何联系?

飞算JavaAI开发助手

DevOps 自动化 软件工程

计算机网络学习笔记 概述

Regan Yue

计算机网络 9月日更 计网

Flutter IM跨端架构设计和实现

OpenIM

NoCode 热身系列:你准备好了吗?

亚马逊云科技 (Amazon Web Services)

人工智能 数据库

2022高频前端面试题汇总之React篇

buchila11

React

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