前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >独家 | 使用Mob进行代码审查

独家 | 使用Mob进行代码审查

作者头像
数据派THU
发布2022-04-08 12:44:34
5500
发布2022-04-08 12:44:34
举报
文章被收录于专栏:数据派THU

代码语言:javascript
复制
作者:Svata Simara翻译:欧阳锦校对:zrx
本文约2000字,建议阅读5分钟本文讨论了使用Mob编程省去代码审查的优点和Mob的使用要求。

标签:代码审查

代码审查的缺点

  • 长反馈回路
  • 等待
  • 多个未完成的任务
  • 书面沟通耗费时间

典型的编程过程对我来说意味着“编写代码 -> 发送至审查阶段”。现在呢?呃……有了另一个任务。这个任务很简单——代码审查,让我们开始第三个阶段。在这阶段,队员会催促审查,提交之后需要等一段时间,接下来自己再次审查……最后——再做一次第二个任务的审查!不,我不同意这种工作模式,我的意思是......在多次审查后的又一个小时,我写完了对论证的总结,第二天我的同事只回答了 OK。什么?仅仅是OK吗?!

代码审查最重要的问题是异步的工作循环。这是低效且让人感到沮丧。

另一种方法是尽可能快地进行代码审查。当我应用这种方法时,我整个星期都在进行代码审查。我做的代码审查越多,我收到的请求就越多,这再次让我感到沮丧。

代码审查的目标

代码审查有什么好处?

  • 分享知识
  • 分担责任
  • 改进代码结构
  • 学习

一个好的代码审查涵盖了所有这些方面。但是代码审查只是一个工具,如果我们能找到更好的工具,我们就可以把代码审查扔在脑后。

Mob编程

Mob编程意味着所有团队成员同时出现在一个屏幕前。或者在共享屏幕上远程工作——这就是我的情况。

我在4人的团队中工作,我们每天以Mob风格工作约5-6小时。起初,我们决定这项任务,并在可能的情况下轮流操作会话。

一个会话意味着有一个主导者(driver)——进行打字/点击按钮,一个导航者——导航者告诉主导者该做什么。其他2名队员则保持注意力,只有当导航者走错方向时,才会打断。导航者只导航3 分钟——是的,只有 3 分钟,然后交替(rotate)到下一个人。

交替(rotation)意味着主导者目前在导航——主导者应该知道下一步,此时导航者休息一下,接下来则是剩下两个队员中的一个成为主导者。3 分钟后,又一次轮换,然后又一次,……

这种交替强度较高。所以每个人都必须时刻保持注意力。因为每个人将不得不在几分钟后进行导航,如果走神,您将不知道接下来该如何导航。

实现代码视图的目标

分享知识和想法是即时的——每个团队成员在项目中都共同经历项目的发展过程,并且知道为什么会这样做。

分担责任——我对我们生产的一切负责,因为我可以随时说“我不同意”或“我有更好的主意”。

所有团队成员都同意代码结构,因此代码结构是一致的,我相信最好的团队成员可以做到。

学习——是即时的、高强度的。如果导航者很在行,他们不仅会告诉你要做什么,还会告诉你如何有效地做。我每天都在学习更好的软件架构、更好的测试策略、如何有效地使用 IDE,……这是因为导航者知道(并分享)我所缺少的知识。

总而言之,在我看来,Mob在各个方面都优于代码审查,以及代码审查带来的工作循环的沮丧。

Mob编程一定是低效的

在最初的几周里,我认为Mob的效率低下。

当团队正在安顿下来或团队成员还没有使用语言和工具的经验时,感受到低效率是很正常的。在这个时期,我们主要使用Mob去学习。

但是一旦团队度过了最初的几周,情况就会变得非常不同。

几乎每天我都会遇到一个问题,当我独自一人时,我至少需要一个小时(或几个小时)才能解决。但是我们有 4 个人,通常其他人会在几分钟内知道如何解决它。我的同事们证实他们也有同样的经历——他们不知道该怎么做,而其他人马上就知道了。

每个团队成员都擅长不同学科。一个队员在数据库中很好,一个队员很擅长解决在我们使用的框架中解决问题,还有一个队员是善于决策。所以当导航者卡住的时候,这个“专家”队员会帮助克服障碍,并且这种帮助通常立刻发生。

使用Mob的要求

Mob编程并不适合所有人。

一开始如果你们不能同时在一起(即使是远程),Mob则行不通。

Mob需要良好的沟通技巧。没有消极、攻击或傲慢的态度。如果你总想证明你比你的同事更好,我不认为你适合Mob编程。

Mob需要耐心和尊重——因为每个人并不总是处于最佳状态。如果您喜欢急于解决,并且您对领导/教导同事不感兴趣,那么Mob将无法工作。你的同事不会变得更好,团队也不会进步。

这就是使用Mob的一些要求。如果你们可以在同一时间(甚至是远程)在一起,你们有耐心,对新方法感兴趣,并且你们的同事有相似的观点,那就去尝试一下吧。Mob就是解决方案!

Mob与代码审查

当我比较Mob和代码审查,我会发现:

在代码审查中,我会画上几个小时努力解决一个问题,然后我会将解决方案发送给代码审查,然后需要等待一段时间,接下来审查者会提出更改建议,我会为我的解决方案进行进一步讨论或继续更改代码。2到5天后,我将准备好合并代码,但随后我必须合并所有不同的地方!

而Mob 编程中则没有这样繁琐的东西。

  • 是否挣扎在一个难题中则受限于团队成员的经验
  • 无需中间等待
  • 即时讨论/代码更改
  • 减少合并不同之处的工作量

Mob有更多的好处,对我来说最重要的是改善我和同事之间的关系。程序员也是社交者,Mob在这方面帮了大忙。

总结一下,Mob编程极大地缩短了反馈循环,并产生了令人惊讶且振奋的结果。

原文标题:

Don’t do Code Review, try Mob instead

原文链接:

https://medium.com/verotel/dont-do-code-review-try-mob-instead-82149ef035df

编辑:于腾凯

校对:林亦霖

译者简介

欧阳锦,一名在埃因霍温理工大学就读的硕士生。喜欢数据科学和人工智能相关方向。欢迎不同观点和想法的交流与碰撞,对未知充满好奇,对热爱充满坚持。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码审查的缺点
  • 代码审查的目标
  • Mob编程
    • 实现代码视图的目标
    • Mob编程一定是低效的
    • 使用Mob的要求
    • Mob与代码审查
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档