InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

“ScrumMaster充当屏蔽者”是值得遵循的模式,还是应该避免的坏味道?

作者 Amr Elssamadisy 译者 张逸 发布于 2008年2月28日

领域
过程 & 实践
主题
敏捷技术 ,
企业级敏捷 ,
敏捷实施 ,
敏捷
标签
最佳实践 ,
采纳 ,
Scrum

如果你所在的开发团队正在采纳敏捷方法,或者正在考虑向敏捷的方向转变。你可以考虑选择Scrum或者其他任何敏捷方法,也可以将它们混合使用。如果你打算从局部开始实践敏捷方法,就可能会与所在的组织格格不入。你或许听说过敏捷方法中有这样一个角色,他的职责是保护团队不受到非敏捷世界的干扰。或者,你所听到的恰恰相反——他是团队不健全的标志,会导致产生我们他们(Us vs. Them)之间的壁垒,形成局部优化。那么,哪一种观点才是正确的?你应该如何执行ScrumMaster或者与之等价的角色的职能?

早在2003年,Scott Ambler就撰写了一篇文章Running Interference,从一开始他就提到:

在理想的世界里,你希望做正确的事情:开发可以工作的软件,它能够以最适当的方式满足利益相关者的需求。你能够与利益相关者紧密合作,创建你认为适用的工件,而不是被迫创建不能增加价值的工件,并且总能在项目开发生命周期里最合适的时间去完成相应的功能。你需要在合适的时间能够找到合适的人员,并有权拒绝别人的“帮助”。换句话说,你能够完全掌控自己的命运。

现在,你可以停止大笑了。

接着,Scott给出了恳切的建议,以指导如何处理不太好的情形:

如果其他人顽固不化,无法将他们的开发方式转变为更为敏捷的一种,甚至在你竭尽所能地对他们进行培训,与他们沟通之后,他们依旧如此,你该如何应对?答案很简单——将他们排除在外。在美式足球队里,前锋线上总会有那么几个大块头,他们唯一的职责就是确保对方成员不能攻垒到四分卫位置(这会阻止球队向前移动)。在软件开发中,屏蔽者(Blocker)扮演的就是与之相似的角色,虽然不是从身体上,但却从方法和态度上阻止其他团队成员干扰自己的开发人员的进度。

一个屏蔽者需要完成官僚们要求的文档,参加他们的会议,并建立一个假象,让它看起来你的项目团队实际上就是在与其它小组一同工作。这样就能防止因为官僚们对开发人员的干扰而造成的进度延迟,使得开发人员能够“两耳不闻窗外事”地安心工作。官僚们总是打着他们“帮助”了团队的旗号,并以此来证明他们的存在意义。

最近,InfoQ就这类屏蔽的危险性采访了Scott:

InfoQ:屏蔽究竟是好,还是坏?

Scott:是的;) 正如我写到的那样,它应该并且只能是最后的选择。你应该设法就你正在使用的技术对其他人进行培训,这与了解他们正要完成的内容一样重要。多次的团队会议和讨论可以解决很多问题。如果这些都不奏效,那么你就可能需要采取屏蔽,这很令人遗憾,但却是使你走向成功的唯一策略。

InfoQ:ScrumMaster应该成为屏蔽者吗?

Scott:团队中的每个人都可以担负屏蔽者的职责。这个角色可以由每个人轮流担任,但通常都是由高级人员/负责人担任。

InfoQ:这难道不是创造一个我们与他们壁垒分明的心态吗?你是否同意这种心态通常会阻碍项目的成功通过?

Scott:是的,这样做确实带来很大的风险,可能不是一件好事情。我们需要齐心协力去理解每个小组试图达到的目标。我发现有许多敏捷开发者已经沉沦到为“邪恶官僚”粉饰太平的地步,这通常是因为他们并没有真正理解项目的远大前景。敏捷运动在为开发者提供指导原则方面贡献颇多,但是从另一方面来讲,它加剧了对开发新手的偏见,无视他们的价值。

InfoQ:那么,要用什么方式来代替呢?一个团队应该如何发展,才能够采用敏捷增加其价值,同时还能处理好与采取不同方式做事的其他人之间的关系?

Scott:答案就是明确各个小组的目标。如果你能够现身说法,通过敏捷方式可以达到这些目标,那么通常你就能够继续前行。也许你就会发现他们询问你的内容实际上是有意义的。

这不是第一次就屏蔽者的问题展开讨论。这是一个争论不休的问题,相关内容可以查看我们之前在InfoQ上讨论的内容

因此,如果你在一个非敏捷环境中采用敏捷,你可能需要一个屏蔽者——但必须谨慎。需要注意到“我们”与“他们”之间产生的壁垒,会滋生一种坏气味。要聆听非敏捷者的声音——他们同样在努力地干好工作,并为整个组织作出了贡献。

查看英文原文:Is the ScrumMaster-as-Blocker a Pattern to Follow or a Smell to Avoid?

译者 张逸 是一个怀揣梦想的架构师,沉迷于设计之美,著译作包括《软件设计精要与模式》、《WCF服务编程》等。

深度内容

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。

解析JDK 7的动态类型语言支持

随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8可以顺利实现Lambda表达式做技术准备。在这篇文章中,我们将去了解JDK 7这项新特性的出现前因后果和它的意义。

Java Remoting远程服务(下)

随着互联网应用的发展,Java分布式远程服务技术受到越来越多的关注,本文将对各种相关实现以示例的形式逐一介绍,并总结其中的优缺点,使读者能够在技术选型时有所准备。这是文章的下篇。