使用Mob编程开发的经验教训 - Jasmin Fluri


我一直想在一个真实的项目中进行Mob编程,直到在一年前的一个为期三天的黑客马拉松中进行了实验 - 它的表现非常出色。几周前,我终于有机会与我的工程团队一起开发新的Kotlin / SpringBoot应用程序。这是我在前几届会议后的想法和经验教训。

什么是Mob-Programming?
Mob编程是一种软件开发方法,整个团队在同一时间,同一空间和同一台计算机上工作。-  维基百科

理论上说:一个人写代码(驱动编程),其他人告诉他写什么(导航员)。

Mob-Programming的想法是,三/四/五个头脑比一个头脑好!当我们讨论各种可能的实现并一起找到解决方案时,我们可以成为更好的程序员 ,就​​像我们在Pair-Programming中一样。Mob-Programming的一个概念是,可以与编码直接的利益相关者可参加会议讨论需求。

即使我们的Mob-Programming练习中不只是一台计算机,但我们都关闭了电脑上相互通信应用程序。这样我们只有一个人编码,我们其他人通过口头告诉他/她如何做。

我们手头的任务是什么?
我们(五位数据工程师)正在构建一个绿地Kotlin / SpringBoot应用程序。我们两个人,包括我在内,对Kotlin / SpringBoot有所了解,其他三个人的目标是学习这些知识,但几年内没有对任何Java(或类似的)进行编程。我们都非常了解要求和领域。此外,我们希望从一开始就遵循TDD方法。

那么Mob-Programming会议的设置是什么?

  • 一个(安静的)房间,我们可以坐在一起。理想情况下,使用白板或/和活动挂图在讨论要求时做笔记。它有一个大屏幕或投影仪,每个人都可以看到驱动编码的IDE。
  • 没有活跃的通信应用,这可能会转移我们的兴趣。

Mob-Programming会议的议程是什么?
在我们第一次会议开始时,我们很快讨论了第一组需求以及功能是什么,需要首先实施。因此,我们对我们想要实现的目标和新应用程序的要求都有相同的理解!我们列出了这些任务的列表,确定了它们的优先级,并从第一个任务的实现开始。

经过四个小时的编码和一次短暂的休息,我们惊讶于时间已经到了。
接下来的每个会议都是在前一天我们实施的功能的简短总结开始的。我们养成了为每个环节设定目标的习惯。因此,在开始时总是会对实施要求进行简短的讨论。

到目前为止,我从Mob-Programming会议中学到了什么?

  • 保持编程间隔短。编码时其他人给出指令需要很多关注,并且可能非常耗费精力。我们通常在30-40分钟之后切换驱动编码(与其他人建议相比已经很长时间了 - 更短的会更好)!
  • 休息一下!打破有助于在编程期间保持专注,并且通常是新想法的来源!中断也像某个编码会话的反馈循环进行。
  • 做好准备并准备开发环境以进行编码。没有什么比Mob-Programming会议更令人沮丧的了,一般开始时人们正在设置他们的IDE或修改构建工具。
  • 保持冷静!与观众进行编码对您的同事来说可能比您想象的更加紧张!此外,通常很难理解同事在解释时提出的建议。双方,司机和航海家应尽可能保持冷静。
  • 不要互相打扰。让每个人解释他们的想法。讨论主要是非常有效,并导致编写更好的解决方案。

我将来何时会再次使用Mob-Programming会话?
  • 当功能的实现可用于在整个团队中传播知识!
  • 我可以想象,重构将是Mob-Programming的一个有趣案例。所有与会者都会立即知道代码的更改方式。但这仍然是未来的一项实验......

我什么时候不用?

  • 对于繁琐的任务,如调试,错误修复或重复性工作,不需要任何创造力或非常调查。

结论
与他人讨论解决方案可防止多次被问题卡住!大多数人都有马上解决手头问题的想法。TDD方式确保我们的产品的代码都有很好的测试。在会议期间也可以不时出现业务利益相关者,因此,可以在实施时实时讨论业务需求的变更。
我很高兴看到合作带来了高质量的软件,并期待更多的Mob-Programming会议!