Swarming是如何帮助敏捷团队实施交付的

快速且频繁地交付可工作的软件是敏捷开发的目标之一。Swarming就是能够帮助敏捷团队实现这一目标的技术。那什么是Swarming,Swarming有哪些好处,该在何时使用,又该如何使用呢?

Vin D'Amico在《敏捷团队通过Swarming取得巨大成功》一文中解释道,使用敏捷软件开发的团队可以在免去一些计划的情况下,发布更多软件,而且响应更为迅速:

他们快速地执行从计划到设计到编码到测试再到交付的敏捷流程,如此往复,直到软件达到客户预期目标为止。

敏捷团队为何响应如此之快呢?Vin指出:

(...)好的团队都在用Swarming。他们尽量在当下解决问题或者消除障碍。如果做不到,好,把它移到Backlog中,但不到万不得已不要这么做。

在《团队Swarming的7项策略》一文中,David Bernstein解释了Swarming如何帮助我们建立一支专注并且能够解决复杂问题的高效团队:

进行Swarming时,整个团队针对同一问题集中在一起工作。这有助于大家相互了解,进而更好地合作。通常,团队需要经历从形成(了解彼此)、磨合(发现矛盾,化解矛盾)到最终运转(成为一支高效的团队)这几个阶段,所以请给每个人一点空间。

Swarming的工作方式跟结对编程很像,都是让团队成员在同一任务上紧密合作:

跟单枪匹马地工作相比,看看一项任务是否可以由两个甚至三个人来完成。让两个人来做同一件事是有损失,但结对工作所带来的动力往往会将其抵消。记住,高效率的团队几乎总是结对完成任务的。

什么是Swarming?几年之前, Yahoo讨论组上曾有一次关于《Swarming:意义何在?》的讨论,InfoQ也进行了总结。其中解释了Swarming的目的:“使团队专注于完成有业务价值的工作”,“尽可能让整个团队从一开始就参与到同一个用户故事中去,以此提升质量和一致性”。按照Vin D’Amico的说法,“简单来说,Swarming是这样的行为——将大家召集到一起来解决问题或快速完成某个任务”。David Bernstein这样定义,“Swarming就是把整个团队聚在一起,专注地解决同一个问题”。

Oleksi Derkatch描述了Swarming如何工作,以及它能带来什么:

它的理念是让所有开发者工作于同一个用户故事,而不是让每个开发者各自为战。它的目标是彻底完成更多的用户故事。彻底完成80%的功能总比各种功能都只完成80%要好。

Renee Troughton解释了组织应该如何使用Swarming来构建更富创造性的团队。她在博客文章《业务的新时代》中写道:

这正是Swarming的用武之地。大部分组织就是将人员从一个项目抛到另一个项目,很少考虑个人兴趣。除此之外,他们也很少考虑这么做的真正速度以及与投资回报的关系。

为使工作更富成效,我们需要有激情的人,他们对待工作会像对待自己的孩子般专注。(...)应该允许对此有兴趣的员工报名参与,而且要立马放人让他们坚持到底。

你的团队在使用Swaming吗?对于快速频繁地交付软件,它是不是真的有帮助?

查看英文原文How Swarming Helps Agile Teams to Deliver

感谢臧秀涛对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(Swarming是如何帮助敏捷团队实施交付的)