跳到主要内容

由于俄罗斯入侵乌克兰,我们已经暂停所有购买和培训进出俄罗斯。

结对编程对软件团队的惊人好处

2023年1月11日

结对编程可以提高创造力并帮助团队交付价值

几年前,我是一个技术产品团队的Scrum Master。团队的两位开发人员告诉我,他们想尝试结对编程。

那时,我还不知道结对编程是什么。开发人员解释说,结对编程是一种软件开发技术,两个程序员在一个工作站上一起工作。一个程序员编写代码,而另一个程序员在第一个程序员创建代码时检查每一行。这两个程序员经常互换角色。

对我来说,这似乎是在浪费时间,但我建议开发人员在Sprint回顾会上提出这个问题,看看团队中的其他开发人员是怎么想的。因为没有人——甚至是Scrum master——告诉开发人员如何完成Sprint的工作,所以由开发人员来决定他们是否想尝试结对编程。

该团队决定在下一个Sprint中进行尝试,并列举了以下几个原因:

  • 提高生产率:结对编程可以提高工作效率,因为两个人一起工作可以更快地解决问题。

  • 改进的代码质量:在编写代码时让两个人检查代码可以及早发现错误,从而减少bug,并获得更高质量的最终产品。

  • 加强学习:结对编程是初级开发人员向更有经验的同事学习的极好方式,反之亦然。

  • 促进团队合作:结对编程的协作可以带来更积极的工作环境。

在Sprint计划会议上,团队选择了Sprint中最具挑战性的产品待办事项项之一:减少特定批处理作业的运行时间。这里讨论的批处理作业非常关键,也非常复杂。它往往会意外地失败,其运行时间有时会超过该特定作业所允许的时间,从而导致一系列级联故障。

团队决定使用结对编程来交付这个PBI。

当时,Scrum团队在一个共享的空间中工作,其中包括在长桌子上并排排列的桌面工作站。在Sprint期间,我会看到成对的开发人员并排坐在一起。一名开发人员打字,另一名开发人员定期指向屏幕,评论或与合作伙伴讨论想法。他们显然对自己的工作很投入,很兴奋,我想也许结对编程还是有一些东西的。

在每日Scrum中,成对的开发人员兴奋地谈论他们正在进行的改进。在Sprint评审中,他们公布了惊人的结果。他们不仅减少了批处理作业的运行时间,而且还将一个8小时的作业减少到15分钟!他们还创建了一个更加健壮的解决方案,不再每隔一个晚上就失败一次。产品负责人和利益相关者都很兴奋。

在Sprint回顾会上,Scrum团队开会讨论Sprint期间哪些方面进展顺利,并确定对他们工作方法的改进。参与结对编程实验的两位开发人员都对他们使用该技术所取得的成就感到欣喜若狂。他们明确同意,独立工作是无法取得成果的。结对编程帮助他们释放了通过合作实现惊人成果的创造力。

基于Sprint回顾,开发人员决定扩展结对编程的使用。虽然单个开发人员将继续交付较小的、较少涉及的pbi,但当工作项更复杂或需要创造性方法时,他们将转向结对编程。

随着时间的推移,开发人员更频繁地使用结对编程,我们意识到一个意想不到的好处。它开始改善团队在Sprint期间的工作流程。

团队发现,结对编程通过提供一种内置机制来审查和测试正在编写的代码,从而限制了团队正在进行的工作(在看板中称为WIP)。这种做法减少了代码中缺陷的数量,导致正在进行的任务更少,因为开发人员不需要在以后修复它们。他们能够更快更有效地完成工作。

通过限制在制品,同时集中精力完成更少的pbi,团队开始交付更多的并提高了他们工作的质量,从而增加了他们交付Done增量的能力,在每个Sprint结束时满足Sprint目标。

结论

对于软件开发团队来说,结对编程是一种有价值的工具,可以在Sprint期间提高生产力、改善代码质量、增强学习、促进协作和减少在制品以改善工作流。

要了解更多关于看板实践的知识,例如限制在制品,请注册Rebel Scrum的实时虚拟带有看板的专业Scrum课程。如果你是一名Scrum Master,希望带领你的团队进入下一个阶段,那么注册Rebel Scrum专业Scrum Master课程。对于高级Scrum大师,请注册Rebel Scrum专业Scrum Master II课程。

加入我们,在这激动人心的一天里学习如何在你独特的情况下应用Scrum美国Scrum日,计划于2023年9月14日在美国威斯康星州麦迪逊举行,由叛军Scrum

Scrum日主讲人聚焦



你觉得这个帖子怎么样?


博客评论
Baidu