Scrum源自日本的“丰田生产系统”(Toyota Production System)和美国空军的OODA循环理论。
第一章世界的运作方式已经打破
Scrum能够帮助你的公司改变固有的工作方式、创新方式、规划方式以及思考方式。
缺少的是一个能够有效捕捉或分享信息的机制
究其本质而言,Scrum方法很简单:无论你什么时候启动一个项目,为什么不经常检验一下自己正在做的事情,看看是否朝着正确的方向前进?结果是不是大家真正希望看到的?是否有什么办法能改善目前正在做的事情?如何才能做得更快更好?存在哪些潜在的障碍?
有一条根据数十年研究工作总结出来的原则,即在任何一款软件中,80%的价值来自20%的功能。
《敏捷软件开发宣言》,宣布了以下几种价值:人胜过流程、可以使用的软件胜过面面俱到的文件、客户合作胜过合同谈判、应对变化胜过遵循计划。
Scrum最强大之处是什么呢?他认为,答案就是“展示,即定期展示成果”。每两周,“哨兵”项目团队都会展示他们的成果,并不只是在他们内部展示,而是把成果交给使用者去实际操作。
Scrum所做的事情就是把不同的团队凝聚在一起共创伟业,这需要每个人不仅看到最终目标,还要渐进式地提交自己的成果,逐渐向着目标迈进。
即便每个人都对你说全世界都是这样做的,也不一定意味着这种方法就是正确的。肯定有一种不同的做事方法,一种不同的工作方法。
第二章Scrum的由来
当时的训练教我学会了四件事:观察、导向、决定和行动。具体地讲,我要先观察目标区域,然后确认进入和退出目标区域的最佳路线,在未知事件面前及时地做出调整,最后在本能的驱动下采取果断的行动。迟疑不决会要了一个飞行员的命,但贸然行事也会要了一个飞行员的命。
如何推动一个复杂的自适应系统从一个状态过渡到另一个状态,以及如何确保下一个状态是积极的,而非消极的。
我们当时采用的一些工具在10年之后逐渐演变成了Scrum的元素,其中包括产品负责人(product owner)、Scrum主管(Scrum master)、产品待办事项清单(product backlog)以及每周冲刺(weekly sprint)。
论精确度,这些甘特图的确很完美,但全是凭空想象出来的,因此华而不实。???待考
美国国家航空航天局那种“阶段—闸门式方案规划流程”为代表的“瀑布法”,存在根本性的缺陷。……待考
行动的方法,也是戴明最知名的成就,就是PDCA循环。PDCA四个英文字母分别代表计划(Plan)、执行(Do)、检查(Check)与行动(Action)。
很少有公司能把“瀑布法”执行得这么好。但问题在于,等到18个月后,客户的实际需求已经发生了变化,商业周期变短了,客户需要软件开发公司更好地根据新环境、新需求提供相应的服务。
在武术中,有一种概念称为“守破离”,分别是指三种不同的修炼层次。在“守”的境界中,你懂得所有规则与动作,不断重复动作,以便让身体学会有关的动作,就像你在学习舞步时那样。“守”就是要求你不会出错。
在“破”的境界中,你在完全熟悉有关动作之后开始学着创新,就像在地板上跳舞时在迈出一个舞步之后,自己再增添一个摆动动作。
在“离”的境界中,你可以摆脱形式的束缚,算是真正掌握了要领,可以按照自己的意愿加以创新。因为你已经非常了解合气道或探戈了,所以你的一举一动都能表达出它的精髓。
Scrum与合气道非常类似,也需要实践和专注,只有持续不断地付出努力,才能达到新的状态,即一切事情都会自然而然地流动与发生。
守破离。先学习规则和形式,掌握之后再进行创新。最后,在特别熟练的状态下,就可以摆脱形式的束缚,随性发挥,因为一切知识都已烂熟于心,几乎可以在下意识的状态下做出决定。
第三章聚焦团队,而非个人
团队才是让这个世界运转的主要力量。这也是Scrum赖以落实的基础。
团队之间的差别比个人之间的差别大得多。
世界优秀公司最卓越团队具备的特质:
1.超越寻常。他们具有希望超越寻常的目标。实现这种目标的动力促使他们超越寻常,达到卓越。他们下决心拒绝平庸,出类拔萃,这种决定改变了他们看待自己的方式,扩大了他们的能力范围。
2.自主性。这种团队自我组织,自我管理,有能力决定如何开展工作,并获得了根据自己决定做事的授权。
3.多功能。这些团队具备完成项目的所有技能:计划、设计、生产、销售、分销。具有这些技能的成员相互学习,相互提高。一位设计革命性新款相机的团队成员说:“当所有团队成员都在一间大房子里办公时,某个人的信息就是你的信息,并且得来全不费功夫。你会开始思考对整个团体而言,最优选择或次优选择是什么,而不再仅仅从你个人的角度考虑问题。”
和目标感同样重要,却没那么受到重视的是,用自认为合适的方式开展工作的自由——有独立自主权。在所有出色的团队中,团队成员可以决定如何完成组织领导者设定的目标。
不是真正的管理者或领导者,但起到了一个协助者和组织者的作用,也就是为团队其他成员提供帮助,或者帮其他人做一些事。他的工作是协助团队尽可能地呈现出最好的报道,他无权命令别人做任何事,而是尽量满足他人的要求。
一个优秀的团队必须掌握所有必要技能,能够独立完成所有工作。
要求团队具备多样性,也就是说,团队成员必须掌握一整套的技能,既要无私,又要具有自主性,每个成员都是多才多艺,一个团队就能把所有工作做完。
构成了一个多功能的团队,具备独立完成任务所需的全部必要技能。他们在一起工作,分享所有情报,共同制订锁定和狙击基地组织成员的计划,而不是让专家们分成几个彼此很少分享信息的小组。
当你说起自己时,往往觉得自己正确;说起别人时,却往往习惯于妄加评论。这是人类最容易犯的一个最具有毁灭性的错误。对于这种倾向,甚至有一个专门的名称,叫“基本归因错误”。
它揭示出,每个人都是制度的产物,而Scrum方法会承认和接受这个现实,进而审视导致失败的制度,最后着力改良制度,而不是非要找出一个人来承担责任。
第四章以周期性的视角看待时间
时间只会单向地、无情地流逝,会从根本上塑造我们看待这个世界和自己的方式。
我们的注意力很容易涣散,我们投入办公室的时间远远超出了实际所需,而且我们也不擅长评估完成一项任务所需的时间。
“冲刺”。之所以称作“冲刺”,是因为这个说法能让人产生一种紧张激烈的感觉。我们打算在一段较短的时间内集中全部精力,做出点成果,然后停下来,回头审视一下成果如何。
如同现在的许多优秀团队一样,该团队把每个冲刺的周期定为一周。团队成员每周四都会坐到一起,审视待办事项清单,包括设计新的仪表盘、测试转向灯等。
对于每个冲刺周期而言,还有一个重要元素,即一旦一个团队决定要完成某些任务,那么这些任务就锁定了,团队之外的任何人都不能再给他们增加任务。
Scrum主管,也就是负责执行流程的人,会询问团队成员三个问题:
1.你昨天做了什么去帮助团队完成冲刺?
2.今天你打算做什么来帮助团队完成冲刺?
3.什么因素阻碍了团队的前进之路?
Scrum主管要问的问题就是这么多!整个会议的内容就是这么多!
团队的任务都不是自上而下分派的,团队的一切任务都是自主决定、自主完成的,也不需个团队必须发自内心地希望创造卓越。
Scrum的一个重要意义就是改变你对时间的看法。实行冲刺和每日立会一段时间之后,你就不会再把时间看成一支径直飞向未来的箭,而是从周期性的视角去看待时间。每一个冲刺,都是一个开启全新任务的机会。每一天,都是寻求改善的好机会。任何致力于Scrum方法的人都会珍惜每一分、每一秒,将其视为呼吸和生命循环的一个周期。
第五章浪费是一种犯罪
Scrum流程的核心是节奏,这种节奏对人类很重要。
特别是在企业环境中,我们面临着自我存在感严重缺失的问题。
大野耐一谈到浪费有三种类型。无理(Muri),指超载的设备或是超负荷的工人,通常是工作的节奏比原设计更快、要求更高所致。无稳(Mura),指生产运作的不平衡。例如,生产系统的进度安排不符合客户的需求,而是由生产系统本身决定的;或者不均衡的工作节奏导致操作员有时匆忙,有时空闲。无驮(Muda),指一切不为顾客创造价值但却消耗资源的活动。避免这些浪费的理念与戴明的PDCA循环具有高度一致性,所谓PDCA,就是我之前描述过的计划、执行、检查和行动:计划意味着避免活动安排不合理,执行意味着避免与计划内容不一致,检查意味着避免浪费,行动意味着意志、动机、决心的统一与实践。我将逐个地检查这些步骤并指出需要避免什么——避免库存造成的浪费,避免第一次就把事情搞砸造成的浪费,避免徒劳无功造成的浪费,避免不合理预期造成的浪费。
人们之所以同时执行多项任务,并不是因为他们擅长这样做,而是因为他们容易分心,难以克制自己去做另一件事的冲动。”
同时执行多项任务会让你变愚蠢。如果同时执行两项或更多任务,那么这些任务都会完成得更慢、更糟糕。不要这么做。如果你觉得自己是特例,那么你错了——这条规则肯定适用于你。
半途而废等于没做。一辆半成品的汽车只是消耗了原本可以用来创造价值或节约资金的资源而已。任何在制品都是一样,只会消耗资金和能源,而不会产生任何有价值的成果。
一次性把事情做好。犯错的时候,要立即纠正。停下其他所有事情,集中精力纠正错误。如果留到以后再纠正,你就会多付出20多倍的时间。
工时越长,效率越低。工作太努力不会让你做完更多的事,反而让你做得更少,让你疲惫不堪,从而导致失误,迫使你必须改进自己刚刚完成的工作。不要工作到太晚,周末也不要加班,要让自己的工作节奏具有可持续性。要记得休假。
避免不合理现象。富有挑战性的目标可以起到激励的作用,不可能实现的目标只会让人沮丧。
不要依赖“英雄”。如果你需要一个“英雄”去完成工作,那就说明你的管理方式有问题。“英雄”应该被视为规划的失败。
消除愚蠢的规定。任何看似荒谬的规定都可能是愚蠢的。表格、会议、审批以及标准,等等,都是那么愚蠢!如果你的办公室存在类似于漫画《呆伯特》描述的情景,就纠正过来。
将令人生厌者踢出团队。不要成为这类人,也不要纵容这类行为。任何一个人,如果引起情绪混乱,让别人感到恐惧或害怕,贬低或蔑视他人,都应该被清理出团队。
努力让工作流畅起来。选择流畅性最强、麻烦最少的方式做事情。Scrum就是要尽量帮助你实现这样的流畅性。
第六章务实规划,拒绝空想
提前做规划这个做法太有诱惑力,太吸引人了,以至于很多人把计划放在第一位,把实际情况和行动方案抛至脑后。这是本末倒置的。永远不要忘记:地图不是真实地貌。
我们在便笺纸上写的内容,不仅包括要做哪些事,还包括在什么情况下才算真正完成。我们在项目进展过程中随时注重质量管控,而不是等项目完工之后才发现最终产品不符合联邦监管规定或内部质量标准。
“如果一个人观察到之前众人的行为之后,认为最佳的做法是放弃自己掌握的信息,遵从之前众人的行为,那么这个时候信息瀑布就出现了。”
一个好的用户故事包括三个要素。第一个要素是角色,包括顾客、新娘、读者、员工等,这就要求我们思考:谁要使用这个功能?这项任务是为“谁”而做的?打造这样东西、做这项决策、提交这项成果,我们应该从谁的角度出发?
第二个要素是活动,要求我们思考我们要完成什么样的功能。这通常是我们的出发点,也是落脚点。
第三个要素是商业价值,或者说动机。要求我们思考客户为什么需要这个功能,以及这个功能如何才能给客户创造价值。从某种角度来看,这是最重要的一步。动机重于一切。
团队必须找出真正的用意何在,或许还能借此想到另一种截然不同的方法来完成这件事,或是提供更多连舰长自己也没想过,但却更为符合需求、真正有用的信息。
一个好的用户故事应该满足INVEST标准:
独立性(Independent)——尽可能让一个用户故事独立于其他的用户故事。用户故事之间的依赖使得制订计划、确定优先级和工作量评估都变得很困难。通常我们可以通过组合用户故事和分解用户故事来减少依赖性。
可协商性(Negotiable)——用户故事的内容要是可以协商的,用户故事不是合同。一张用户故事卡片上只是一个简短的描述,不包括太多的细节。具体的细节在沟通阶段提出。如果一张用户故事卡片带有太多的细节,实际上会限制和用户的沟通。
有价值(Valuable)——每个用户故事必须对客户具有价值。一个让用户故事有价值的好方法是让客户来写下它们。一旦一个客户意识到这是一个用户故事,并不是一个契约,而且可以进行协商的时候,他们将非常乐意写下故事。
可评估(Estimable)——开发团队需要衡量用户故事,以便确定优先级和工作量,并便于安排工作计划。
规模小(Small)——一个好的故事要尽量维持小规模,至少要确保在一个冲刺周期中能够完成。用户故事越大,在安排计划、工作量评估等方面的风险就会越大。
可测试(Testable)——一个用户故事要可以测试,以便确定它是可以完成的。如果一个用户故事不能够测试,那么你就无法知道它什么时候可以完成。
知道自己的速度。每个团队都应该准确知道自己在每个冲刺阶段中完成了多少工作,并且应该知道如何以更加聪明的方法去消除障碍,加快工作速度。
速度×时间=交付工作量。知道自己的工作速度之后,就能计算出交付日期。
第七章把快乐转化为更高的绩效
如果以正确的方式实施Scrum方法,就能让员工、客户、管理者及股东都快乐(快乐感通常是按照这种顺序传递的)。
我们的文化不奖励我们享受旅程乐趣,而是奖励我们成功完成某件事情。社会奖励结果,而非过程;奖励到达终点,而非旅程。
在组建第一个Scrum团队的过程中,我意识到真正的卓越根植于快乐之中。人必须先快乐,才能踏出成功的第一步。
所谓持续改善,并不是让生产效率达到某个水平并维持在那里,而是不断地审视你的流程,以便不断地、永恒地加以改善。当然,永远不可能达到完美无瑕的地步,但朝着这个方向迈出的每一步都是重要的。
哪些因素会让人感到快乐呢?其实,让人感到快乐的因素,恰恰也是缔造卓越团队所需的因素,比如自主感、掌控感和目标感。展开来讲,就是要让人们觉得自己能够把握自己的命运,能够越来越好地做一件事情,并且知道自己孜孜以求的目标是高尚的和伟大的,超越了狭隘的个人利益。
我希望大家喜欢上班,那是思维上的一种转变,从“为公司工作”转变为“为我的公司工作”。
这个架构的基石包括透明度、团队精神及合作。
“聪明的傻瓜”会提出令人不舒服的问题,或是会揭穿令人不舒服的真相,你的身边能有一个这样的人是很难得的,因为他们可能被视为麻烦制造者,或者被视为团队异己,但这种人需要多加培养和运用。
还记得基本归因错误吗?如果你的周围环绕着一群坏人,那么你应该做的不是找出这些坏人加以批评,而是要找出到底哪些坏制度鼓励他们这样做,因为人是制度的产物。要达到这个目的,你可以使用快乐指标。
第八章找到最有价值的20%
Scrum的意义不仅仅在于加快团队的工作进度,还在于提升最终的“生产率”。
Scrum的真正强大之处在于它能帮你拟定“待办事项清单”,能帮你明确各个事项的难度,并确定待办事项的优先顺序。
在Scrum中,共有三类角色:开发团队成员,负责开展具体的开发工作;Scrum主管,协助开发团队把事情做得更好;产品负责人,决定应该做什么工作,拟定待办事项清单的内容,最重要的是,确定各个事项的优先顺序。
这里的决策回路就是OODA循环。OODA指Observe-OrientDecide-Act,意为“观察—导向—决定—行动”。
应该尽快把具有基本使用功能的产品展示给公众,以便获取反馈意见,从而改进自己的决定,调整待办事项的优先顺序。
客户可能一开始会告诉你他们想要什么,但事实上,他们只有在使用过你的产品之后,才知道自己真正需要什么。
苹果公司的所有产品都是通过这种方法制造出来的,该公司往往会先做出几种具备基本功能、完全可以使用的原型产品,然后加以比较,选定最佳者。这种方法可以让你的团队同时而迅速地实施不同的想法,又不必进行大规模的投资。
大部分公司的倒闭都是由财务风险引起的,因为它们做出某种很酷的产品后,销量却不理想,无法赢利。关于这方面,一个经典案例就是网络新闻的兴起与传统报纸的衰落。