What’s the Scrum Master Role in a REAL world

Scrum Master

“掐指一算”,使用Scrum作为开发团队的敏捷方法已经有3年多了。我也从没名份到有名份当了3年的Scrum Master。这几年里,我一直在探索最适合我们团队的敏捷开发的方式。在使用Scrum框架的大前提下,寻找适合当前项目和团队的最佳实践。在这个过程中,我们一直努力遵循Scrum的流程和规范。但就我自身而言,其实一直有个问题在实践过程中不断的收到挑战。那就是:Scrum Master,到底应该做什么?

有人可能会觉得很可笑。因为这是一个有着“标准答案”的问题。任何一本讲述Scrum方法的书都会列有Scrum里面那些角色的定义和工作职责。我真的很佩服想出那些定义的人。他们能让一段文字那么的充实但又几乎没有任何实际的指导作用。

我目前是2个开发团队的Scrum Master。我同时也是其中一个团队的Engineering Lead。我能明显和清晰的感觉到,同为Scrum Master,我在这2个团队中所起到的作用是不一样的。我所提供的帮助,也会被以不同的程度吸收。哪个团队的Scrum运行的更好,整体开发效率更高呢?就是我是他们Engineering Lead的那个团队。

在Scrum里有个很神奇的概念——团队是自治的。什么是自治,就是自我管理、自我约束、自我发展、自我提升。很可惜,这是一个乌托邦式的玩意儿。上哪里去找这么个团队?我相信99%的IT公司都没有这样的团队。在传统的企业架构里,一个开发团队总会由一个Engineering Manager/Lead来负责。团队成员向他汇报。但在项目上,团队又是对Project Manager负责。Engineering Manager一般负责人员的调配、资源的保障和团队的发展。但不可忽视的是,Engineering Manager对团队在项目开发中的影响力。而这种影响力,正是Scrum Master在帮助团队更好的完成项目的过程中所需要的。如果一个Scrum Master没有这种影响力,或者有限的影响力被其他力量所抵消,那他在Scrum Master这个角色上一定做的不会成功。

我向来觉得,在传统的企业架构中,Engineering Manager才是最合适当Scrum Master的人。对外,他能起到保护团队的作用,同时由于他在企业中的地位,往往也更容易争取到团队所需要的资源。对内,他有足够的影响力,能够在紧急的情况下做出大家都愿意服从的决定。我曾经写过一篇《在传统组织结构的公司里,谁适合当ScrumMaster》,里面也提到了上述内容。

那么在这种情况下,这个Scrum Master应该做些什么呢?我今天读到的这篇文章很好的解答了这个问题:

  1. 团队管理
    1. 提高团队生产力
    2. 移除开发过程中的障碍
    3. 团队成员的绩效考核
    4. 解决成员、项目间的冲突
  2. 流程管理
    1. 推动各个Scrum会议
    2. 对流程了然于心,能够随时提供指导
    3. 团队与外部的接口
    4. 提高团队对任务(PBI)的计划和预测的能力
    5. 在现有的流程上,持续的优化和改进
  3. 项目管理
    1. 支持Product Owner
    2. 组织结构的转型
    3. 传播消息

可见,一个合格的Scrum Master,除了需要熟知Scrum的流程规范,应该同时具备Engineering Manager和Project Manager的能力。也只有这样的“三者兼备”,才能最大程度的发挥Scrum Master的作用。让其不仅仅是个组织会议的人,更是一个能够确保项目按时按质交付的人。

这个活,不好干啊!

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s