如何看待ScrumMaster的屏蔽(Blocking)职责

简介:
我在阅读Ken Schwaber所著的《Agile Project Management with Scrum》一书,就对ScrumMaster的其中一个职责抱有怀疑的态度。Scrum要求ScrumMaster保证开发人员在一个Sprint(冲 刺)过程中,不受到其他无关人员尤其是上司们的干扰。真的能做到这一点吗?即使ScrumMaster通过有效地与Product Owner沟通,确定了Product Backlog;然后我们开启了一个Sprint,并确认了Sprint Backlog;然而,根据客户的需求,一旦需求发生变更,我们还能保证Sprint不受到这一变更的影响吗?

或者,前提是我们有一个高 级的、经验丰富的权威Product Owner,我们或许可以尽量避免需求发生的变更,但在软件开发过程中,变更总是不可避免的。特别是在国内客户普遍不了解软件开发的前提下,我们往往需要 引导客户提出需求,而不是客户为我们提出明确无误的需求。难道敏捷不是能够灵活应对变化的吗?但问题在于,在组织中总存在不了解敏捷思想的上司们,在 Scott Ambler看来,这些上司都是一帮“官僚(bureaucracy)”,他们只在乎客户提出的Deadline,而不会去理会软件开发的基本真理。何 况,客户总是对的,难道不是这样吗?

或许有一些方式可以让ScrumMaster作为一个合格的“牧羊犬”。例如,他必须不厌其烦地为团 队外的其他人阐述敏捷的思想,以及敏捷方法的原则与过程,此时他是培训师或者布道者。他还需要不停地应付“官僚”们要求召开的繁琐会议,并淹没在文档的海 洋中,因为过程管理中必须提交的文档而疲于奔命,此时,他是高明的协调者,玩小球的杂耍高手。ScrumMaster为自己的团队成员建立了高度屏蔽的环境,使得他们能够“两耳不闻窗外事”的安心工作。

然而一个普遍争议是,如此的屏蔽职责会导致在公司内产生壁垒分明的两个阵营。一个阵营是 疯狂的敏捷粉丝,另一个阵营则是抱着传统不放的卫道士。这会否在公司和团队中滋生矛盾情绪,甚至会导致公司建立的企业文化轰然倒塌?那么,作为公司的领导者而言,如果不能处理好两者之间的矛盾,就不得不壮士扼腕,以牺牲小部分人的代价换来整体的发展,就像《集结号》中的团长所做的那样。

我曾经在公司的一个项目中似是而非的应用了Scrum的某些方法。例如站立会议,例如类似于Sprint的迭代周期。当我将开发团队分为几个小组的时候,我 们同时在为选择何种开发方式而犯难。小组的Leader总是要坚持自己熟知的方式,例如FDD或者RUP。作为项目经理的我,选择了貌似妥协的折中办法。 我让每个小组的Leader自己选择自己的方式,唯一要求两点:
1、按照时间表完成规定任务;
2、每日必须参加Team Leader的站立会议。

我 保护了他们自己的一种选择,这或许是一种变相的屏蔽。我不知道这种方法是否妥当,但最后我却成功了。因而我在想,如果一个公司并没有完全建立敏捷环境,除 了不遗余力地推行与培训敏捷,让他们选择各自的方法或许是个不错的选择。但前提条件是必须将他们分为不同的组,最关键的是不要表现出对某一个小组的偏爱, 而是以事实的结果来说服团队成员。此外,一个要点是保证各个小组,特别是小组负责人之间的交流。交流是消除误解的最好方法。

在敏捷开发 中,采用屏蔽方式确实是无奈之举,它存在风险,也会滋生两个阵营的矛盾,但如果处理妥当,通过团队会议与定期的交流,可以在很大程度上消除屏蔽给组织带来 的负面影响。此时,我们需要担任Blocker(屏蔽者,其实我更愿意用阻挡者,就像橄榄球运动中的大个子前锋所做的那样)的ScrumMaster必须 有非常强的控制力。

如果让我投票,我会持保留意见的为Scrum中的“屏蔽”方式投赞成票。

参考:
1、Ken Schwaber《Agile Project Management with Scrum》
2、Amr Elssamadisy《 Is the ScrumMaster-as-Blocker a Pattern to Follow or a Smell to Avoid? 》[中文版: “ScrumMaster充当屏蔽者”是值得遵循的模式,还是应该避免的坏味道? ]

3、Geoffrey Wiseman《Blocking: Useful? Dangerous? Ethical?










本文转自wayfarer51CTO博客,原文链接:http://blog.51cto.com/wayfarer/280172,如需转载请自行联系原作者

相关文章
|
2月前
|
人工智能 达摩院 自然语言处理
类与类之间的协作模式问题之策略模式影响我们在工作中决策过程的问题如何解决
类与类之间的协作模式问题之策略模式影响我们在工作中决策过程的问题如何解决
|
2月前
|
前端开发 JavaScript
[译] 状态管理中的第一性原理
[译] 状态管理中的第一性原理
|
2月前
|
缓存 项目管理
类与类之间的协作模式问题之享元模式在工作中应用的问题如何解决
类与类之间的协作模式问题之享元模式在工作中应用的问题如何解决
|
2月前
类与类之间的协作模式问题之桥接模式在软件开发中应用的问题如何解决
类与类之间的协作模式问题之桥接模式在软件开发中应用的问题如何解决
|
3月前
|
领域建模
领域建模问题之“读模型”在事件风暴中起什么作用
领域建模问题之“读模型”在事件风暴中起什么作用
|
3月前
|
架构师 存储
软件交付问题之在设计领域模型和状态机时,模型和状态机,如何解决
软件交付问题之在设计领域模型和状态机时,模型和状态机,如何解决
|
5月前
|
存储 缓存 算法
带你理清CPU,cache和存储器之间的逻辑运作
带你理清CPU,cache和存储器之间的逻辑运作
570 2
|
5月前
|
Linux 芯片
内核中断体系概括
内核中断体系概括
26 1
|
11月前
|
负载均衡 网络安全 微服务
谈谈用统一网关gate的利与弊
谈谈用统一网关gate的利与弊
84 0
|
12月前
|
测试技术
软件设计原则-单一置原则讲解以及代码示例
单一职责原则(Single Responsibility Principle,SRP)是面向对象设计中的一个重要原则,提倡将一个类或模块只负责一个职责或功能。它最早由Robert C. Martin在其《敏捷软件开发:原则、模式与实践》一书中提出。 单一职责原则的核心思想是:一个类或模块应该只有一个引起它变化的原因。也就是说,每个类或模块都应该只有一个职责或功能,并且该职责或功能应该在该类或模块内部封装起来,而不是分散到多个类或模块中。
75 0