使用乐高讲授技术实践

阅读数:725 2016 年 6 月 11 日

话题:语言 & 开发文化 & 方法

要把工艺技术讲清楚是很难的,特别是在向高级管理者和执行官们解释的时候。因为通常关键是要理解思维转换和技术实践是开发高品质软件的方法,所以对它们的解释就极为重要了。在第 7 次敏捷运动大会上, Mike Bowler召开了一个如何将乐高用于技术实践的研讨会。

敏捷游戏大会 2016于 Cambridge, MA 在四月 28-30 召开。InfoQ 对此活动进行了跟踪报导。这些新闻报导概括了 Mike 推行的主要实践。他热情地回答了一些问题,这些问题关于使用乐高指导技术实践、你希望从此类研讨会中看到什么类型的反馈、它对团队或整个组织有怎样的帮助,以及对他觉得有意思的其他工具和游戏的看法。

Bryan Beecham也曾做过此类研讨会。Mike Bowler 和他通常会一起来呈现这个主题。如果你理解这个实践,那么该研讨会就非常容易推进,它成本低廉(只需要一些乐高)且非常有效:你只需要不到 1 个小时就能完成这些实践,它们包括:

  • TDD
  • 结对编程
  • 重构
  • 技术债
  • 持续集成

这个研讨会不是一种乐高认真玩。你可以在Mike 的网站上找到介绍(除 TDD 之外,它马上就会有了)。

该研讨会像如下方式运行:

先做一个人物和房子来热热身:它是 LSP 的强制部分,有助于创建安全感和约定。

  • 第一个问题是关于这个房子或这个人物的成本:你有多少砖块?实际你需要多少?这部分实际是关于精益思想和“刚够”的。
  • 然后 Mike 介绍TDD + 结对编程:结对,一个负责写测试,另一个负责编码,使测试通过。
  • 下一阶段增加了重构:该对子扔掉最近的测试,然后再把它们做出来,重构使其通过。
  • 关于技术债这部分可能最滑稽了:Mike 一个接一个地胡乱抛出些测试,你必须使这些测试通过,但不能拿掉任何目前用过的砖块。结果……并不好。为理解差异所在,Mike 又做了第二次,这次去掉了限制。下图展示了这两轮的差异。
  • 持续集成部分可能要与三个以上的团队一起做:每个团队所构建的东西必须要把前个团队的工件封装起来。第一个产品肯定不太完善,至少两次才能做得好一些。

InfoQ:Mike,感谢你为本次研讨会所做的一切。为什么你使用乐高来解释技术实践呢?

我最初的目的是向非技术人员介绍技术概念,这意味着不能直接跳到编码去解释。这里需要一些非技术性抽象,以此说明这些概念。Bryan Beecham 已经设计了使用乐高的 TDD 练习,每个人都得到了非常成功地运用,于是我们继续把这种方式运用到了其他所有练习中。乐高激发了每个人爱玩的天性,使大家更乐于学习和尝试。

InfoQ:像此类研讨会的目标受众是谁?任何人都能参加吗?

我们以各种方式进行这种训练。如果是和管理人员交流,我们将只关注乐高和相关概念。如果是教开发人员,我们将把乐高训练和实际编码训练揉合到一起。我们将首先用乐高引出概念,然后再深入到代码中予以强化。

InfoQ:看到首次重构活动之后的构建,我有几分震惊。在期间和研讨会结束时你听到了何种反馈?

我们听到的第一件事是参加者们有多么欢乐。然后,我们将听到他们从这种方式中关于该概念及该课程的收获。几乎每个人至少都有一个能够应用到实际工作中的收获。

InfoQ:这个研讨会很容易运用。它如何为团队或组织提供长期的帮助呢?

它的重点是帮人们理解概念。为长期帮助团队,他们需要把这些概念应用到自己的实际工作中。

我们鼓励大家给做出来的东西拍张照片,部分原因是向朋友们展示时更有趣了,部分原因有个能提醒你记得这个课程的念想。某些东西可以强化这些概念。

InfoQ:有些组织还没做好玩“游戏”的准备。如何在这种情况下说服他们呢?你能提些建议吗?

我不会去讨论如何玩游戏。而是去讨论如何传授概念,实际上这和我用它玩游戏毫不相干。甚至在大多数严肃的组织中,也不会有人看到我带了乐高砖块就让我把它们拿走的。

查看英文原文Using Lego to Teach Technical Practices