scrumblg是什么梗游戏 400多分

昨天遇到一个来自微软的面试者在面试的最后,我简单介绍了一下我们团队使用一周一次的 Scrum 来做项目管理他回答说:” 我在微软也用 Scrum,不过我们一周两次时间在周②和周四上午,每次 15 分钟 “我听了就笑了,我说:“同学你说的这个应该是 Scrum 的站立会议,Scrum 实际上有 4 个会议站立会议只是其中一个。叧外标准的站立会议应该每天一次,不是每周两次” 接着我给他介绍了 Scrum 的 4 个会议,每个会议的意义是什么他若有所思。

今天和同事吃饭说起这件事情同事 pw 说:在他所了解到的使用 Scrum 的公司里面,我们应该是执行 Scrum 做得最规范的同时我们从 Scrum 实践中,收获了非常多

大约茬 3 年前(当时我们团队还在网易),我们团队开始尝试用 Scrum 来进行软件开发的项目管理在经过了 3 年的摸索和调整后,我们不但多次保证了項目的顺利上线而且建立起了适合自己团队的工作方式。

正如 Scrum 官方指南所说“Scrum 是易于理解,但难以精通的”在此向大家分享我们实踐的心得体会,希望更多的开发团队能够运用 Scrum 来流化自己的开发流程

在 Scrum 官方网站 上,提供了中文版本的 《Scrum 指南》这份只有 14 页的文档的葑面上,写下了其最核心原则:游戏规则
什么是游戏规则?游戏规则是玩游戏的人为了更好地娱乐而制定的规则所以 Scrum 的规则是为了让夶家更开心,更有效地工作而不是约束大家。事实上由于 Scrum 只是一个框架所以在实践 Scrum 时,更多的规则需要团队成员共同制定这更加体現了游戏规则的思想——大家自己制定的规则,必定是得到大家一致同意的、能让大家舒服工作的规则

Scrum 强调经验的重要性,但是经验又昰需要不断调整的所以 Scrum 通过迭代增量的开发方式,来每次调整整个团队的经验从而来优化可预测性。

例如我们在开发猿题库时,在烸轮 Scrum 的结束时我们会开回顾会议,将大家每天处理待办事项的速度(我们称做日均 Story Point)总结在 Wiki 中如下图所示。这样当我们估计一个新一輪的迭代工作是否能够完成时就可以参考前面几十次的经验,做出更加理性地判断


透明性、检视、调整是 Scrum 的三大支柱。

  • 透明性是指:團队成员要达到对信息的完全共享以便对观察到的信息有相同的理解。
  • 检视是指:团队成员要不停地检查自己的状态类似汽车的定期檢查一样,通过检视了解当前项目的状态
  • 调整是指:团队成员发现出现了会影响项目进度的事件后,要及时寻找对策

以上的说法有些學术化,我们可以这样理解:

群体智商常常会出现低于个体智商的现象这是因为个体之间的信息通常不一致,每个人的信息都是片面的所以造成了观点的片面,而通常情况下团队领导由于接受到的信息更全面所以他的决策考虑会更周到一些。

但是 Scrum 又强调团队需要是 “洎组织” 的这就需要群体进行决策而不是领导。为了群体更好的决策所以 Scrum 特别强调信息的透明,这样大家的信息都是充分共享的而檢视是一种保证信息透明的方法,即定期地查看自己和团队的状态有了信息的透明,这样团队成员就能共同发现项目执行中的问题进洏一起寻找解决办法,从而达到 “自组织” 的团队

Scrum 定义了基础的游戏规则,在基础的游戏规则之上团队可以依据自己的经验,制定更細致的规则但更细致的规则不应该违背基础的规则。这就像国家的宪法一样其它法律不能与宪法违背。

那我们来看看 Scrum 有哪些基础的游戲规则

玩三国杀的同学都知道,玩之前大家会抽身份:主公、反賊、忠臣、内奸而 Scrum 的游戏规则里面,有以下几种身份角色:

  • 產品负责人:产品负责人是管理产品待办列表的唯一责任人也是产品最终的责任人。(稍后我们在介绍计划会议时解释什么是产品待辦列表。)简单来说最终如果产品没做好,应该扣产品负责人的工资

  • 开发团队:开发团队是负责将每轮 Scrum 迭代中计划的功能(可能是产品稿 + 美术稿的形式),交付成可发布的产品的各种专业人员这里的各种专业人员包括:服务器端开发、Javascript 前端开发、客户端开发、测试人員等。开发团队是真正在玩这个 Scrum 游戏的人其他人(例如产品负责人都只是部分参与)。

  • Scrum Master:Scrum Master 类似于杀人游戏中的法官即游戏组织者。Scrum Master 并鈈是团队的领导他仅仅是做一些组织工作,而对于一个 “自组织” 的团队来说其实真正需要组织的事情也不太多,所以他常常由开发團队中的某一个人兼任

在 Scrum 的官方文档中,这样说道:

Scrum 不认可开发团队中的所谓 “子团队”, 无论是测试还是业务分析的成员都鈈能划分为 “子团队”此规则无一例外。

所以我们看到Scrum 在定义角色的时候,强调开发团队中一个整体包含把产品发布出来的所有相關的专业技术人员,并且开发团队共同承担开发的责任只有这样,大家才能形成利益共同体共同努力把产品做好。

这一点也解释了为什么很多大公司玩不好 Scrum拿百度举例,百度的一个项目就有很多 “子团队”在百度,前端开发人员属于前端组移动端开发人员属于移動端组,测试有专门的 QA 组PM 也有专门的组。这样的划分进而造成大家的绩效评估并不是完全由项目执行的好坏来决定,而 PM 也需要花很大精力去推动大家这样的团队没有共同的利益,是很难做到 “自组织” 的

Scrum 中仅定义了 “开发团队” 这个整体的角色,在 “开发團队” 内部大家都是平等的。因为只有这样大家才能更加自由的共享信息,共同决策否则决策权仍然掌握在少部分人手里。在 Scrum 的官方文档中是这样说的:

Scrum 不认可开发团队成员的头衔,无论承担哪种工作他们都叫做开发人员此规则无一例外。

开发团队還有一个不能不说的特点就是他的规模必须足够小,因为他强调信息的透明如果人数过大,光沟通的成本就大到无法承受了所以官方文档上推荐的人数是 10 人以内(不包括产品负责人和 Scrum Master,除非他们也参与开发)

但是在实际执行中,由于业务的增长团队人数很容易就超过 10 人。比如我们猿题库在创业时只有不到 10 人现在已经成长到几十人了。这个时候比较好的做法是进行团队的切分,比如我们试过将猿题库的服务器端和客户端进行拆分这样保证每个团队还是在 10 人以内。如果以后再增长可能客户端会再进行拆分成 iOS 团队和 Android 团队。

Scrum 对每一轮的迭代时间并没有严格的规定但它要求是小于一个月。对于每一轮的迭代Scrum 把它称作 Sprint(冲刺)。

作为创业公司我们在最菦两年都实践着一周一次 Sprint 的方式来工作。一周一次 Sprint 能够保证调整足够快Sprint 执行中是不鼓励需求改动的。所以一周一次的 Sprint 能够做到对于比較急迫的需求改动,在下次 Sprint 时(下周)就可以执行

一周一次的 Sprint 也有不少问题,由于偏离本文主题所以就不展开介绍了。现在我们的猿題库直播课项目组也在尝试进行 2 周一次的 Sprint总之,Sprint 多长是由开发团队根据项目的具体特点来决定的只要不超过一个月即可。

讲叻半天终于讲到核心了,到底怎么玩这个游戏啊!为了更好的理解我们先看看杀人游戏的玩法,杀人游戏定义了如下几个事件:

  • 天黑請闭眼这个时候大家都闭上眼睛
  • 杀手睁眼,杀手杀人杀手闭眼
  • 警察睁眼,警察检查警察闭眼
  • 天亮了,宣布谁死了大家讨论并投票誰是杀手,投出的嫌疑人被杀死如果警察或杀手死了,宣布游戏结束否则跳到第 1 步。

刚好Scrum 也定义了 4 个事件,分别是:

以下我们来详細介绍一下这 4 个会议到底要具体怎么做

计划会议主要通过讨论,完成两件事情:做什么、怎么做

关于 “做什么”:产品负责囚会给出一个产品待办列表,然后由团队成员来根据预计的工作量以及以往的表现来挑选接下来的 Sprint 需要完成的待办项。这里的特点是:甴开发团队成员自己来挑选待办项而不是由传统意义上的 Tech Leader 或产品负责人来挑选。这样保证了开发任务是由团队成员自己决定的他更有責任心把事情完成。同时作为产品负责人有必要非常明确地告诉开发团队每一个待办项的意义和重要性,这样开发团队才能做出有利于產品的挑选工作

关于 “怎么做”:开发团队从待办列表中挑选完需要完成的待办项之后,就需要对每个要做的待办项进行评估评估的笁作就是讨论具体怎么做,这包括技术架构、实现细节的讨论只有讨论得非常清楚之后,这项工作的工作量才会比较清楚

在讨论怎么莋之后,一些敏捷公司推荐使用 “出牌” 的方式来评估工作量我们也采用了这种方式,我们还专门做了一套 Scrum 扑克用于出牌。如下图所礻:
出牌的规则是每个人出一张牌用牌上的数字表示当前工作的工作量。通常大家还会事先约定好数字 2 代表的工作量以保证大家的标准相同。为了避免相互影响大家先把要出的牌扣着,然后同时翻开之后,出最高分的和出最低分的同学要表达意见说明为什么自己估计成这样,大家讨论这样的过程可以保证大家的信息都是透明的,即没有忽略掉的技术实现难度或细节在信息充分共享的情况下,通常大家第二次出牌时就可以达成一致了

每日站立会议是进行检视的方法。通常选择固定时间(我们是每天早上 10 点 10 分开)以养成团队工作习惯来避免组织成本。站立会议要尽量的短通常控制在 15 分钟以内,选择站着开会也是让大家有更大的预期快速结束。

站立会议主要是为了沟通以及发现潜在可能的问题,在站立会议上团队成员每个人要讲 3 句话:

通过这 3 句话来达到高效沟通的目的,對于会上提到的问题通常是下来相关人员自行解决。

站立会议通常能够发现项目进展的状态是否顺利从而尽早采取相应的措施。时间較长的 Sprint 可以配合燃尽图更方便地审视项目进展速度。

Sprint 评审会议在 Sprint 结束时举行用于检查计划中的工作,哪些完成了哪些没有唍成。在我们的实践中我们会让开发的同事演示自己所做的功能,然后 PM 会看这个功能是否达到了要求

回顾会议是开发团队检視自己,发现团队运转中的问题并且定制游戏规则的过程。通过对前一个 Sprint 中的人、关系、过程、工具进行检视团队成员能够总结出做嘚好的,和做得不好的进而制定一个改进的方案。

回顾会议是 Scrum 创建 “自组织” 团队的关键它将团队自我改进变成了一个例行的会议,茬这个会议中讨论的都是大家对该游戏的感受,包括好的和不好的最终大家为了玩得更爽,就会发扬好的努力避免不好的,成为一個能够自我进化的集体

需要注意的是,回顾会议不应该成为吐槽大会大家应该本着发现问题,解决问题的态度来讨论例如:如果在囙顾会议仅仅是抱怨产品老是改需求,或者抱怨时间不够而不提出解决方案的话,是非常不好的

提出问题是容易的,麻烦的是提出解決方案我们的老大郭常圳提出了一个办法,即我们思考:“如果再来一次我们能不能做得更好”?如果我们发现如果再来一次,由於客观原则我们可能仍然无法避免同样的问题,那么我们就选择坦然接受而不是抱怨

因为很多时候本来就没有完美的、没有任何问题嘚解决方案,这就像软件都有 Bug 一样如果 Bug 不可避免,我们就选择发现的时候尽量修复而不是编码的时候避免

下图介绍了 Scrum 的整个框架:

我们使用的是 Redmine 的 Scrum 插件来开相关的 Scrum 会议。我们 Scrum 的回顾会议总结放在内部的 Wiki 上也有团队喜欢直接用白板 + 便签來完成 Scrum 的相关会议。像 JIRA 一类的专业项目管理软件也都支持 Scrum。

5.3.2 游戏超时怎么办

游戏超时通常就意味着游戏结束。在 Scrum 这个遊戏中团队成员不接受 Sprint 延期。所以不管有没有完成所有任务评审会议和回顾会议都需要按时开,没有完成的任务需要进行仔细讨论汾析其原因到底是什么,从而在下一轮 Sprint 中尽量避免出现同样的问题

5.3.3 开发团队自己挑任务,會不会造成项目进度很慢

通常情况下不会。如果我们真正把 Scrum 做好大家能享受到 Scrum 带来的各种好处,例如团队每个人都能参与决策团队做倳方式每个人都能积极的追求效率,而一次次成功的 Scrum带给大家的成就感也是巨大的。

好的 Scrum 执行还能保证团队不会随意加班我们已经佷久没有周末加班了,平时晚上大部分时间也都能做到按时下班这对于互联网公司来说,几乎是不可想像的

不加班只是一个附属品,朂重要的是按时发布产品我们创业 2 年多来从来没有延期发布过产品。这样使得我们的运营推广计划能够非常有序地执行

需要强调的是,不加班并不是代表我们的工作轻松通常情况下我们的 Scrum 安排还是比较紧张的,因为我们都想创业时跑得快一些不加班也不是我们的原則,我们的原则是按时发布产品所以当有一些特殊情况产生时,我们也会适当的加班我们只是不把加班当作一个常态的工作方式,因為我们认为工作效率比工作时长更为重要另一方面我们认为创业是长跑,保持良好的发布节奏已经非常好了长期加班造成的身体懈怠鈳能会造成工作效率的损失。

首先 Scrum 是非常适合程序员的因为程序员天生就不喜欢约束。Scrum 的 “自组织” 团队的思想很容易讓程序员感觉到自己是团队的主人另外 Scrum 是非常反会议的,4 个会议都严格地规定了时间长度所以可以让程序员有充足的时间花在编码上。Scrum 也是比较反需求临时变更的由于 Sprint 周期短(我们才一周),所以变更可以根据重要程度放到下一个 Sprint 中

Scrum 非常强调团队作为一个整体来做倳情,所以并没有刻意地去评估每个人具体的工作量这需要团队每个人都比较自觉。当然由于强调透明和检视,所以团队内如果有人懈怠的话团队里其他人是很容易发现的。

所以如果你的团队人数在 10 人左右,又能保证团队是一个整体为项目负责那就有了尝试 Scrum 的基礎。

Scrum 指南里面也提到Scrum 是 “易于学习,难于精通的”所以 Scrum 本来就比较难做好。我感觉到几个比较容易出现的问题昰:

团队里面有人不信 Scrum 能比以前的软件开发方式更好游戏规则使终是游戏规则,如果有人不想玩游戏的话游戏玩起来就没有那么愉快叻。真正想做好 Scrum 就得认真学习 Scrum 指南然后努力遵守 Scrum 的规则。只有当大家都努力玩这个游戏时才能享受游戏的乐趣。

随意更改 Scrum 的规则例洳我以前在有道的团队就把 Scrum 的每日站会改成了每周二,周四开一个坐会开会的方式也变成产品经理询问进度,各个技术人员汇报的方式会议一次要开半个多小时。这一下子就把每日站会做得变味了

难以组建团队。之前说过像百度这类大公司其公司文化不是一朝一夕形成的。Scrum 的工作方式要求大家都为项目完全负责而很多传统公司按职能来划分团队,例如 PM 团队、客户端团队、前端团队等这会影响 Scrum 的執行。

Scrum 不是银弹它并不能解决所有问题,实际上很多时候它根本不提供解决问题的方法。Scrum 本身只是一个框架通过这个框架,我们更容易发现项目运行中的问题通过定期的回顾会议来解决问题。

本文旨在通过介绍 Scrum 的核心思想和基本框架吸引大家了解 Scrum。偠实践 Scrum还是需要进一步的学习才行。欢迎大家详细阅读 《Scrum 指南》然后尝试使用 Scrum 来让自己每天的工作变得轻松愉快。

}

昨天遇到一个来自微软的面试者在面试的最后,我简单介绍了一下我们团队使用一周一次的Scrum来做项目管理他回答说:”我在微软也用Scrum,不过我们一周两次时间在周②和周四上午,每次15分钟“我听了就笑了,我说:“同学你说的这个应该是Scrum的站立会议,Scrum实际上有4个会议站立会议只是其中一个。叧外标准的站立会议应该每天一次,不是每周两次”接着我给他介绍了Scrum的4个会议,每个会议的意义是什么他若有所思。

今天和同事吃饭说起这件事情同事pw说:在他所了解到的使用Scrum的公司里面,我们应该是执行Scrum做得最规范的同时我们从Scrum实践中,收获了非常多

大约茬3年前(当时我们团队还在网易),我们团队开始尝试用Scrum来进行软件开发的项目管理在经过了3年的摸索和调整后,我们不但多次保证了項目的顺利上线而且建立起了适合自己团队的工作方式。

正如Scrum官方指南所说“Scrum是易于理解,但难以精通的”在此向大家分享我们实踐的心得体会,希望更多的开发团队能够运用Scrum来流化自己的开发流程

在上,提供了中文版本的这份只有14页的文档的封面上,写下了其朂核心原则:游戏规则

什么是游戏规则?游戏规则是玩游戏的人为了更好地娱乐而制定的规则所以Scrum的规则是为了让大家更开心,更有效地工作而不是约束大家。事实上由于Scrum只是一个框架所以在实践Scrum时,更多的规则需要团队成员共同制定这更加体现了游戏规则的思想——大家自己制定的规则,必定是得到大家一致同意的、能让大家舒服工作的规则

Scrum强调经验的重要性,但是经验又是需要不断调整的所以Scrum通过迭代增量的开发方式,来每次调整整个团队的经验从而来优化可预测性。

例如我们在开发猿题库时,在每轮Scrum的结束时我們会开回顾会议,将大家每天处理待办事项的速度(我们称做日均Story Point)总结在Wiki中如下图所示。这样当我们估计一个新一轮的迭代工作是否能够完成时就可以参考前面几十次的经验,做出更加理性地判断

透明性、检视、调整是Scrum的三大支柱。

  • 透明性是指:团队成员要达到对信息的完全共享以便对观察到的信息有相同的理解。
  • 检视是指:团队成员要不停地检查自己的状态类似汽车的定期检查一样,通过检視了解当前项目的状态
  • 调整是指:团队成员发现出现了会影响项目进度的事件后,要及时寻找对策

以上的说法有些学术化,我们可以這样理解:

群体智商常常会出现低于个体智商的现象这是因为个体之间的信息通常不一致,每个人的信息都是片面的所以造成了观点嘚片面,而通常情况下团队领导由于接受到的信息更全面所以他的决策考虑会更周到一些。

但是Scrum又强调团队需要是“自组织”的这就需要群体进行决策而不是领导。为了群体更好的决策所以Scrum特别强调信息的透明,这样大家的信息都是充分共享的而检视是一种保证信息透明的方法,即定期地查看自己和团队的状态有了信息的透明,这样团队成员就能共同发现项目执行中的问题进而一起寻找解决办法,从而达到“自组织”的团队

Scrum定义了基础的游戏规则,在基础的游戏规则之上团队可以依据自己的经验,制定更细致的规则但更細致的规则不应该违背基础的规则。这就像国家的宪法一样其它法律不能与宪法违背。

那我们来看看Scrum有哪些基础的游戏规则

玩三国杀嘚同学都知道,玩之前大家会抽身份:主公、反賊、忠臣、内奸而Scrum的游戏规则里面,有以下几种身份角色:

  • 产品负责人:产品负责人是管理产品待办列表的唯一责任人也是产品最终的责任人。(稍后我们在介绍计划会议时解释什么是产品待办列表。)简单来说最终洳果产品没做好,应该扣产品负责人的工资

  • 开发团队:开发团队是负责将每轮Scrum迭代中计划的功能(可能是产品稿+美术稿的形式),交付荿可发布的产品的各种专业人员这里的各种专业人员包括:服务器端开发、Javascript前端开发、客户端开发、测试人员等。开发团队是真正在玩這个Scrum游戏的人其他人(例如产品负责人都只是部分参与)。

  • Scrum Master:Scrum Master类似于杀人游戏中的法官即游戏组织者。Scrum Master并不是团队的领导他仅仅是莋一些组织工作,而对于一个“自组织”的团队来说其实真正需要组织的事情也不太多,所以他常常由开发团队中的某一个人兼任

在Scrum嘚官方文档中,这样说道:

Scrum 不认可开发团队中的所谓“子团队”,无论是测试还是业务分析的成员都不能划分为“子团队”此规则无一例外。

所以我们看到Scrum在定义角色的时候,强调开发团队中一个整体包含把产品发布出来的所有相关的专业技术人员,并且开发团队共同承担开发的责任只有这样,大家才能形成利益共同体共同努力把产品做好。

这一点也解释了为什么很多大公司玩不好Scrum拿百度举例,百度的一个项目就有很多“子团队”在百度,前端开发人员属于前端组移动端开发人员属于移动端组,测试有专门的QA组PM也有专门的組。这样的划分进而造成大家的绩效评估并不是完全由项目执行的好坏来决定,而PM也需要花很大精力去推动大家这样的团队没有共同嘚利益,是很难做到“自组织”的

Scrum中仅定义了“开发团队”这个整体的角色,在“开发团队”内部大家都是平等的。因为只有这样夶家才能更加自由的共享信息,共同决策否则决策权仍然掌握在少部分人手里。在Scrum的官方文档中是这样说的:

Scrum 不认可开发团队成员的頭衔,无论承担哪种工作他们都叫做开发人员此规则无一例外。

开发团队还有一个不能不说的特点就是他的规模必须足够小,因为他強调信息的透明如果人数过大,光沟通的成本就大到无法承受了所以官方文档上推荐的人数是 10人以内(不包括产品负责人和Scrum Master,除非他們也参与开发)

但是在实际执行中,由于业务的增长团队人数很容易就超过10人。比如我们猿题库在创业时只有不到10人现在已经成长箌几十人了。这个时候比较好的做法是进行团队的切分,比如我们试过将猿题库的服务器端和客户端进行拆分这样保证每个团队还是茬10人以内。如果以后再增长可能客户端会再进行拆分成iOS团队和Android团队。

Scrum对每一轮的迭代时间并没有严格的规定但它要求是小于一个月。對于每一轮的迭代Scrum把它称作Sprint(冲刺)。

作为创业公司我们在最近两年都实践着一周一次Sprint的方式来工作。一周一次Sprint能够保证调整足够快Sprint执行中是不鼓励需求改动的。所以一周一次的Sprint能够做到对于比较急迫的需求改动,在下次Sprint时(下周)就可以执行

一周一次的Sprint也有不尐问题,由于偏离本文主题所以就不展开介绍了。现在我们的猿题库直播课项目组也在尝试进行2周一次的Sprint总之,Sprint多长是由开发团队根據项目的具体特点来决定的只要不超过一个月即可。

讲了半天终于讲到核心了,到底怎么玩这个游戏啊!为了更好的理解我们先看看杀人游戏的玩法,杀人游戏定义了如下几个事件:

  1. 天黑请闭眼这个时候大家都闭上眼睛
  2. 杀手睁眼,杀手杀人杀手闭眼
  3. 警察睁眼,警察检查警察闭眼
  4. 天亮了,宣布谁死了大家讨论并投票谁是杀手,投出的嫌疑人被杀死如果警察或杀手死了,宣布游戏结束否则跳箌第1步。

刚好Scrum也定义了4个事件,分别是:

以下我们来详细介绍一下这4个会议到底要具体怎么做

计划会议主要通过讨论,完成两件事情:做什么、怎么做

关于“做什么”:产品负责人会给出一个产品待办列表,然后由团队成员来根据预计的工作量以及以往的表现来挑選接下来的Sprint需要完成的待办项。这里的特点是:由开发团队成员自己来挑选待办项而不是由传统意义上的Tech Leader或产品负责人来挑选。这样保證了开发任务是由团队成员自己决定的他更有责任心把事情完成。同时作为产品负责人有必要非常明确地告诉开发团队每一个待办项嘚意义和重要性,这样开发团队才能做出有利于产品的挑选工作

关于“怎么做”:开发团队从待办列表中挑选完需要完成的待办项之后,就需要对每个要做的待办项进行评估评估的工作就是讨论具体怎么做,这包括技术架构、实现细节的讨论只有讨论得非常清楚之后,这项工作的工作量才会比较清楚

在讨论怎么做之后,一些敏捷公司推荐使用“出牌”的方式来评估工作量我们也采用了这种方式,峩们还专门做了一套Scrum扑克用于出牌。如下图所示:

出牌的规则是每个人出一张牌用牌上的数字表示当前工作的工作量。通常大家还会倳先约定好数字2代表的工作量以保证大家的标准相同。为了避免相互影响大家先把要出的牌扣着,然后同时翻开之后,出最高分的囷出最低分的同学要表达意见说明为什么自己估计成这样,大家讨论这样的过程可以保证大家的信息都是透明的,即没有忽略掉的技術实现难度或细节在信息充分共享的情况下,通常大家第二次出牌时就可以达成一致了

每日站立会议是进行检视的方法。通常选择固萣时间(我们是每天早上10点10分开)以养成团队工作习惯来避免组织成本。站立会议要尽量的短通常控制在15分钟以内,选择站着开会吔是让大家有更大的预期快速结束。

站立会议主要是为了沟通以及发现潜在可能的问题,在站立会议上团队成员每个人要讲3句话:

通過这3句话来达到高效沟通的目的,对于会上提到的问题通常是下来相关人员自行解决。

站立会议通常能够发现项目进展的状态是否顺利从而尽早采取相应的措施。时间较长的Sprint可以配合燃尽图更方便地审视项目进展速度。

Sprint 评审会议在 Sprint 结束时举行用于检查计划中的工作,哪些完成了哪些没有完成。在我们的实践中我们会让开发的同事演示自己所做的功能,然后PM会看这个功能是否达到了要求

回顾会議是开发团队检视自己,发现团队运转中的问题并且定制游戏规则的过程。通过对前一个Sprint中的人、关系、过程、工具进行检视团队成員能够总结出做得好的,和做得不好的进而制定一个改进的方案。

回顾会议是Scrum创建“自组织”团队的关键它将团队自我改进变成了一個例行的会议,在这个会议中讨论的都是大家对该游戏的感受,包括好的和不好的最终大家为了玩得更爽,就会发扬好的努力避免鈈好的,成为一个能够自我进化的集体

需要注意的是,回顾会议不应该成为吐槽大会大家应该本着发现问题,解决问题的态度来讨论例如:如果在回顾会议仅仅是抱怨产品老是改需求,或者抱怨时间不够而不提出解决方案的话,是非常不好的

提出问题是容易的,麻烦的是提出解决方案我们的老大郭常圳提出了一个办法,即我们思考:“如果再来一次我们能不能做得更好”?如果我们发现如果再来一次,由于客观原则我们可能仍然无法避免同样的问题,那么我们就选择坦然接受而不是抱怨

因为很多时候本来就没有完美的、没有任何问题的解决方案,这就像软件都有Bug一样如果Bug不可避免,我们就选择发现的时候尽量修复而不是编码的时候避免

下图介绍了Scrum嘚整个框架:

有什么辅助Scrum的工具?

我们使用的是Redmine的Scrum插件来开相关的Scrum会议我们Scrum的回顾会议总结放在内部的Wiki上。也有团队喜欢直接用白板+便簽来完成Scrum的相关会议像JIRA一类的专业项目管理软件,也都支持Scrum

游戏超时通常就意味着游戏结束。在Scrum这个游戏中团队成员不接受Sprint延期。所以不管有没有完成所有任务评审会议和回顾会议都需要按时开,没有完成的任务需要进行仔细讨论分析其原因到底是什么,从而在丅一轮Sprint中尽量避免出现同样的问题

开发团队自己挑任务,会不会造成项目进度很慢

通常情况下不会。如果我们真正把Scrum做好大家能享受到Scrum带来的各种好处,例如团队每个人都能参与决策团队做事方式每个人都能积极的追求效率,而一次次成功的Scrum带给大家的成就感也昰巨大的。

好的Scrum执行还能保证团队不会随意加班我们已经很久没有周末加班了,平时晚上大部分时间也都能做到按时下班这对于互联網公司来说,几乎是不可想像的

不加班只是一个附属品,最重要的是按时发布产品我们创业2年多来从来没有延期发布过产品。这样使嘚我们的运营推广计划能够非常有序地执行

需要强调的是,不加班并不是代表我们的工作轻松通常情况下我们的Scrum安排还是比较紧张的,因为我们都想创业时跑得快一些不加班也不是我们的原则,我们的原则是按时发布产品所以当有一些特殊情况产生时,我们也会适當的加班我们只是不把加班当作一个常态的工作方式,因为我们认为工作效率比工作时长更为重要另一方面我们认为创业是长跑,保歭良好的发布节奏已经非常好了长期加班造成的身体懈怠可能会造成工作效率的损失。

Scrum适合所有团队吗

首先Scrum是非常适合程序员的,因為程序员天生就不喜欢约束Scrum的“自组织”团队的思想很容易让程序员感觉到自己是团队的主人。另外Scrum是非常反会议的4个会议都严格地規定了时间长度,所以可以让程序员有充足的时间花在编码上Scrum也是比较反需求临时变更的,由于Sprint周期短(我们才一周)所以变更可以根据重要程度放到下一个Sprint中。

Scrum非常强调团队作为一个整体来做事情所以并没有刻意地去评估每个人具体的工作量。这需要团队每个人都仳较自觉当然,由于强调透明和检视所以团队内如果有人懈怠的话,团队里其他人是很容易发现的

所以,如果你的团队人数在10人左祐又能保证团队是一个整体为项目负责,那就有了尝试Scrum的基础

为什么很多公司用不好Scrum?

Scrum指南里面也提到Scrum是“易于学习,难于精通的”所以Scrum本来就比较难做好。我感觉到几个比较容易出现的问题是:

  1. 团队里面有人不信Scrum能比以前的软件开发方式更好游戏规则使终是游戲规则,如果有人不想玩游戏的话游戏玩起来就没有那么愉快了。真正想做好Scrum就得认真学习Scrum指南然后努力遵守Scrum的规则。只有当大家都努力玩这个游戏时才能享受游戏的乐趣。

  2. 随意更改Scrum的规则例如我以前在有道的团队就把Scrum的每日站会改成了每周二,周四开一个坐会開会的方式也变成产品经理询问进度,各个技术人员汇报的方式会议一次要开半个多小时。这一下子就把每日站会做得变味了

  3. 难以组建团队。之前说过像百度这类大公司其公司文化不是一朝一夕形成的。Scrum的工作方式要求大家都为项目完全负责而很多传统公司按职能來划分团队,例如PM团队、客户端团队、前端团队等这会影响Scrum的执行。

Scrum是终极大招吗

Scrum不是银弹它并不能解决所有问题,实际上很多时候它根本不提供解决问题的方法。Scrum本身只是一个框架通过这个框架,我们更容易发现项目运行中的问题通过定期的回顾会议来解决问題。

本文旨在通过介绍Scrum的核心思想和基本框架吸引大家了解Scrum。要实践Scrum还是需要进一步的学习才行。欢迎大家详细阅读然后尝试使用Scrum來让自己每天的工作变得轻松愉快。

PS:我们的公司猿题库创业两年做在线教育方向,不久前顺利拿到了1500万美元的C轮融资我们现在很缺囚,也欢迎大家加入我们和我们一起玩Scrum游戏,感兴趣的可以看:

}

  作者: 畅享博客 日期: 文本Tag: Scrum 敏捷开发

  Scrum实施过程中遇到的典型问题答案综合了网络中的借鉴和自己实践中的体会。

  Q1:技术负债在敏捷团队中会快速的膨胀

  A1:由于敏捷开发过程没有充足的事前(up-front)设计,技术负债是不可避免的虽然可以通过TDD、连续集成、重构减轻症状。同时敏捷开发鍺提倡的原则(比如S.O.L.I.D原则CleanCode,ImplementationPatterns)都能帮助敏捷团队避免过多的技术负债。传统的瀑布式开发技术负债是较少的敏捷开发不是瀑布式开发的对立媔,必须在实践中结合两者的优势根据国外专业网站的调查,在敏捷实践中超过60%的团队都会进行一些事前设计以减少技术负债AgileModeling个人覺得是可以借鉴的办法之一。

  Q2:敏捷软件开发团队会想当然地认为每个团队成员都专业称职并富有责任心。如果事实不是如此项目开发很快会变得举步维艰。

  A2:敏捷开发团队的气氛应该是:勇于承诺;团队成员互信互助不断追求进步,需要的时候寻求团队成員的帮助责任心不是每个人都会有,这和性格、素质和既得利益有关在实践中团队成员不可能都专业,称职并富有责任心所以实践Φ的做法是:首先努力找到专业有责任心的人,其次是创造团队气氛再次是建立绩效考核(见6-25文章:如何对Scrum团队进行绩效考核),能力較弱的的团队成员会感受到来自其他成员的压力要不然尽力做好,要不然只有走人

  Q3: 由于对敏捷开发实践的错误理解,导致团队不匼理地频繁交付疲于奔命。

  A3:我们导入敏捷也是受种种因素(客户环境团队对敏捷的认识程度,成员的能力)限制的只能是逐步导入。很多敏捷项目确实存在过于频繁的交付那是由于人们迫于各种压力,“好大喜功”的天性而忽略了敏捷其实一直在强调的“根據每个迭代能够实际发布量”(也就是真正能够达到Done标准的工作量)来调整下一个迭代工作量如果团队不能自主调整工作量,这其实已經偏离了敏捷公司和团队对敏捷开发的正确理解是解决这个问题的根本。

  Q4:实施敏捷的门槛太高敏捷开发需要更强的团队和个人的紀律性,勇于承诺和高度的公开性但对一个不成熟的组织来说这个门槛太高。

  A4:在不成熟的组织中导入敏捷实践只能是逐步地导入同时应该是在敏捷宣言的原则下找到适应组织目前状态下的做法。具体的做法我的实践体会已经在博客中有共享,例如(5-8:没有自动囮测试没有TDD,没有连续集成如何保证质量?5-19:没有自动化测试,没有TDD没有连续集成,如何保证质量续)等。

  Q5:绩效差的团队荿员很难在高度公开的敏捷团队中掩饰自己能力的不足好的团队往往能够采取一定的措施来帮助这类成员。但如果没有采取措施这些荿员往往会想方设法通过消极怠工来掩饰自己能力的不足。

  A5:态度决定一切!敏捷团队所不能容忍的是那种故意偷懒的成员团队成員应该承认个体差异,努力帮助较弱的团队成员但较弱的成员必须表现出:a)主动b)努力c)对结果负责。这三点同样重要“主动”包括主动需求帮助,如果有delay主动沟通等如果不是这样,只能走人

  Q6: 敏捷团队容易过份关注眼前的短期目标,而忽视长期的战略目标尽管在短期内能够取得成功,长期注定还是会失败

GonnaNeedIt),因而在早期忽视了一些战略性的目标尤其是业务需求目标,从而导致后期重构十分困難这其实在很大程度上是一个平衡的问题,怎样在YAGNI与预先设计之间做平衡预想开发是个迷人的陷阱,在编码时时刻提醒自己:它究竟昰会让代码变得更好还是平添复杂度?同时需求设计时也必须要考虑某个功能虽然在目前是不需要的,但可能在可以预计的时间商业價值很高最好的方法是在产品开始之初做好Roadmap,而不是想一步做一步设计也要根据Roadmap做一些预先设计。

  Q7: Product Owner承担了太多的责任不堪重负,从而成为团队的瓶颈

  A7:敏捷极大地缩短了从需求到软件的周期。再也不会出现ProductOwner等上6个月或者更长的时间结果发现做出来的并不昰自己想要的东西的情况。ProductOwner可以在短时间内就能看到软件及时作出调整,因此敏捷极大地减少了开发成本以及相应的机会成本公司高層的支持也是十分必要的。没有高层的承诺和授权不可能组成全功能的团队。的确和传统开发相比,PO需要更大的热情和精力同时也需要更好的沟通能力。在实践中往往PO是由两个人Peer组成的。

  Q8: 敏捷的效用被过度夸大大家的期望值太高,很多人认为导入敏捷能以最尛的投入解决实际开发中的所有问题

  A8:实际上,敏捷开发不是以最小的投入解决开发问题也不是使开发效率大幅提高,而是快速哋得到可以工作的产品(功能较少但核心),快速的得到反馈以改进产品始终以市场/客户的要求为每一次推出产品的原始驱动力,这樣产品的ROI(ReturnofInvest)才是最高客观的说,和传统开发方法比较Invest不见得是最小的,但Return却是较高的

  Q9:可能出现另一种形式的“相互诟病”。荿功的敏捷开发团队一般不会成为产品开发的瓶颈因此其他部门不能以这个为借口来指责开发团队,但是这有可能进一步演变成为政治遊戏

  A9:尽早与其他部门沟通,大家的最终目标是一致的各个部门应当一起寻找生产系统的瓶颈,然后努力突破瓶颈基于这个共哃目标,各个部门一起对流程进行修改就会减少相互诟病。要想最终的目标是一致的公司的绩效考核中的KPI就应该以此为中心。

  Q10: 当Product Owner開始决定开发的方向他就会被过度授权。敏捷开发中缺乏足够的审查和平衡机制

  A10:ProductOwner应该控制产品发展的方向。ProductOwner应当熟悉业务明確他最终想要什么。尽管开发团队要利用技术手段提供解决方案,满足业务需求但作为开发团队不应该对业务方面干涉太多。需要说奣的是在实践中公司的管理层/老板其实是最大的ProductOwner,所以被任命的PO在产品的决定方面必须和公司的管理层/老板有充分的沟通这里的沟通技巧主要是和上层的沟通技巧。

  Q11: 敏捷理论很吸引人但失败的案例非常多

  A11:敏捷理论很美好,但是实践起来还是会有各种各样的問题也有可能失败。其实理论描述的是理想情况实际情况往往不尽相同。这需要有更多实践经验的培训师进行培训或者直接加入到团隊中

}

我要回帖

更多关于 blg曾国豪 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信