敏捷革命 scrum 读书笔记
《敏捷革命》书里一开始对比了软件开发项目常用的瀑布法和scrum的优劣。
还提到瀑布法的典型代表--甘特图。一旦将甘特图上的计划与项目的实际进展和成果相比较,你就会发现,这些堪比艺术品的甘特图纯属虚构。更糟糕的是,当你意识到计划与实际情况的差距时,两者已经相距甚远,无从补救。
可以明显发现scrum更灵活,迅捷,能够更省成本和时间。瀑布法常用甘特图作为项目管理工具,但只做出了计划,却难以监督现状,团队成员也不了解其他人的进度,难以提供帮助。
整本书体现了Scrum 的3大特点:高度迭代、强周期性、持续响应客户。
过程太过顺利,没有任何波折,作者一出场,一用scrum就成功,主角光环太过耀眼,以至于像我这样的读者,觉得没有什么可信度。
关于书名“革命”:在一个大企业推敏捷绝对是一场革命。企业体量大了之后跟社会一样产生阶层,利益链不断固化,产生腐败,懒政,效率低下等现象。敏捷思想要推进一定会影响中层算理者的权力和利益,他们管理失利对团队的不利影响会曝光,Scrum team的建立也会剥夺他的的资源调配权。
步入正文
SCRUM 从名称来源理解:是指‘一个小规模团队,通过紧密的团队合作,一步一步推进团队目标’的理念。
Scrum的一个关键原则是承认客户可以在项目过程中改变主意,变更他们的需求,而预测式和计划式的方法并不能轻易地解决这种不可预见的需求变化。同样,Scrum采用了经验方法– 承认问题无法完全理解或定义,而是关注于如何使得开发团队快速推出和响应不断出现的需求的能力最大化。
交付 与 迭代 为核心的方法(注:会包含着确定优先级、最小化可行产品 MVP、获取反馈、调整优化等要素)
Scrum的实用性就在于,它把一个复杂且开发周期较长的任务,分解成了许多个短期可完成的任务。这样以来,一个周期就是一次迭代的过程,就是一个循环。在任务执行过程中,就能及时地收到反馈,并及时根据上一个循环中的发现来调整自己前进的方向。
形式上:
SCRUM是敏捷开发项目中的一种组织形式,是一种方法论,更不能等同于敏捷开发理念本身。是敏捷方法之一。
冲刺周期(对应 Sprint Circle):以周期性来理解时间,以时间的限制来激发行动力。
3种角色:
- Scrum 主管:安排一位能够确保整个工作流程顺利推进的人。「他的工作职责就是召集会议,确保团队运作过程的透明度,而且,最重要的是,帮助团队发现障碍。要做到这一点,关键之处就是意识到一个事实,即在很多情况下,障碍并不是机器运转不良,也不是会计的工作做得一团糟,而是工作流程本身不能顺利推进。Scrum 主管的工作职责就是经常问团队成员:“你们如何才能做得更好?”这种方式可以引领整个团队持续改善自己的工作」(P69)。同项目经理类似的Scrum主管角色负责维护过程和任务
Scrum主管是规则的执行者。
2.产品负责人代表了客户的意愿。产品负责人代表利益所有者,
这保证了Scrum团队在做从业务角度来说正确的事情。产品负责人编写用户故事,排出优先级,并放入产品订单。Scrum主管(或促进者)促进Scrum过程,他的主要工作是解决那些影响团队交付冲刺目标的障碍。Scrum主管并非团队的领导(由于他们是自我组织的),而是负责屏蔽外界对开发团队的干扰。Scrum主管确保Scrum过程按照初衷进行。
3.开发团队是负责交付产品的团队。由5至9名具有跨职能技能的人(设计者,开发者等)组成小团队来完成实际的开发工作。
开发团队包括了所有开发人员。
4种会议:
计划会 Sprint Planning Meeting:
每日立会 Daily Standup Meeting:团队每天进行沟通的内部短会,因一般只有15分钟且站立进行而得名。
评审会 Review Meeting:在冲刺结束前给产品负责人演示并接受评价的会议。
反思会/回顾会 Retrospective Meeting:在冲刺结束后召开的关于自我持续改进的会议。
1.计划会
在每个冲刺之初,由产品负责人讲解需求,并由开发团队进行估算的计划会议。
在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。
一旦迭代开工会完毕, 任何需求都不允许添加进来,并有Scrum Master严格把关,不允许开发团队受到干扰。
冲刺任务的,执行冲刺目标的人需要发言。其他不用。
冲刺(sprint)
你必须拥有预警机制,例如提前了解可能的延迟或偏差。一般来说这个阶段时长是一至四周,以两周为最常见。
2.每日立会
你完成了哪些工作?以后你打算做什么?完成你的目标是否存在什么障碍?(Scrum主管需要记下这些障碍)。会议准时开始。
- “你今天做了什么去帮助团队完成冲刺?”;
- “今天你打算做什么来帮助团队完成冲刺?”;
- “什么因素阻碍了团队的前进之路?”。
3.评审会议
这是你想要的吗?这能帮你解决一些问题吗?我们的方向是对的吗?
4.回顾会议
回顾与检查:凡涉及沟通,总免不了误解;凡涉及协作,也总免不了缺陷。通过回顾和检查,消除误解,弥补已知的缺憾,
每一个冲刺完成后,都会举行一次冲刺回顾会议,在会议上所有团队成员都要反思这个冲刺。举行冲刺回顾会议是为了进行持续过程改进。会议的时间限制在4小时。Scrum提倡所有团队成员坐在一起工作,进行口头交流,以及强调项目有关的规范(disciplines),这些有助于创造自我组织的团队。
通过这种集体参加的小会,来沟通各自工作进展情况,同时以集体智慧去解决那些个人短时间内难以解决的问题(注:有时候 A 觉得很难解决的问题,在 B 那里可能就是很好解决的问题,但前提是,B 得知道 A 遇到了这个问题;有时候,困难问题的解决可能需要借助于并不在公司内部流通的「场外信息」)
工作方法:
- 每过一小段时间就停一停手头的工作,检查一下已经完成了哪些任务,看看这些任务是不是自己应该做的,看看有没有更好的方法
- Scrum灵活点,可以不按照优先级别来做,Scrum这样处理的理由是:如果优先问题的解决者,由于其它事情耽搁,不能认领任务,那么整个进度就耽误了。另外一个原因是,如果按优先级排序的User Story #6和#10,虽然#6优先级高,但是如果#6的实现要依赖于#10,则不得不优先做#10。
- 假设一个团队的人数是 N,那么沟通渠道有多少呢?N(N-1)/2,5 个人对应 10 条渠道;
- 「如果一个人有某个特定的头衔,那么他就倾向于只做与该头衔匹配的事情,而且会想方设法维护该头衔赋予他的权力,他往往会把特定的知识隐藏起来,不与团队其他成员分享」(P87)。这种倾向造就了所谓的「另一种 • 不可替代性」,也造就了一部分「解决一分钟,沟通五小时」的悲壮情景。
- 确定优先级:资源有限,先做效益最好的「头部待办事项」。「在产品开发中,有一条反复得到证明的铁律,即一个产品 80% 的价值来自 20% 的功能」。如此重复,最终在确保方向正确的前提下,交付出最好的产品。
Scrum强调按照价值高低对项目中的各项任务进行排序,促使人们优先完成最有价值的那20%。等到这些任务完成之际,人们可能会发现,另外那80%的任务其实并非实际所需。这就大大降低了项目完成所需时间,极大地提升了敏捷性。 - 不要同时执行多项任务:避免陷入注意力的陷阱。
绝对不要半途而废。因为半途而废等于丝毫没做,你付出了努力,最后却没有收获积极的成果,这将对你的工作效率大打折扣。
当你在做一个项目的时候,大脑专注于它,你很清楚做某件事的所有原因,这时候你的脑子里存在一个与之相关的复杂结构。想在几个星期后重新建立这种结构十分困难,你必须先想起来你在做决定是考虑的所有因素,必须重新建立促使你做出该决定的思考流程,再度成为当时的自己,把自己拉回到已经不复存在的思维里。
一次性把事情做好也是节约时间的好方法。在做事的过程中,及时找出问题并纠正问题,比事情完成后再发现问题进行返工,要高效的多。 - 完成更多的工作并不意味着需要工作更长时间。不要加班:「但是为何一个人工时减少,却能做更多事情呢?表面上看起来毫无道理。马克斯韦尔表示,工作时间太长的人会开始犯错,正如我们先前提到的那样,改正错误可能会比创造新成绩花费更多的时间。工作超出负荷的员工比较不容易集中注意力,而且会影响别人也跟着分心,不久之后他们就会开始做出错误决策」(P116)。
在休假期间还要疲于应付来自办公室的电话或邮件,那你可能会被贴上“无能”的标签。有数据显示,工作时间太长的人会开始犯错,而改正错误可能会比创造新成绩花费更多的时间。 - 指责他人是愚蠢之举。Scrum Master经常会看到团队成员出现问题,就不经意就说出问题来,说法不好 ,很容易给对方造成你是在挑刺,指责他。问题马上就来了,他会很有意见。也可以说是这个不再是问题是非的事情,而是面子的事情。书上说的是,不要一味的寻找“坏人”,而要寻找“坏制度”,也即那些奖励不良行为,奖励笨拙业绩的制度。
不要依赖英雄 - 如果依赖一个英雄去完成工作,那么一定是管理方式出了问题。项目、产品只依赖部分几个人,那么一定会出现,这几个人成了大家的万能钥匙,有问题都会求助于这样的人。专家请假了,项目也会停滞或者大受影响。
- 务实规划,拒绝空想,仅仅规划你需要做的事情。
不要试图规划几个月后乃至几年后的事情,只规划团队能够保持忙碌的事情就可以了。按照书本中“不确定性圆锥”图片显示,最初估算的时间可以是实际情况的4倍,也可以能是1/4,这样就相差16倍,可怕吧。 - 把快乐转化为高的绩效
快乐才是王道 快乐时候才会更充分参与,比如一个引导一个会议,参与的人都精神饱满,与会者才更乐意听引导者讲什么,配合你做完成,会议才会更容易产生积极成果。快乐的人可以做出更明智的决策,更容易完成或者取得出人意外的成绩。真是快乐在于过程,而非结果,所以我们应该奖励的是努力奋斗的过程,而非重点奖励结果。快乐 - 出问题的大部分是规则。
印象比较深的是一个丰田的故事,说通用汽车与丰田汽车在加利福尼亚州联合投资了一个制造工厂,这个工厂1982年被通用关闭了,原因是觉得这里的工人糟糕透了,上班喝酒,不去上班或搞破坏,当1984年丰田接手重开这个工厂后,通用告诉丰田管理层这里的工人糟透了,管理人员都很优秀,建议保留管理层重新招工人,但相反,丰田婉拒,没有留用管理人员,而是重新聘用了工人们。甚至送这些工人去丰田总部进修,学习丰田生产系统。该工厂的精密度和瑕疵率很快就达到了日本工厂的水平
所以说,没有差员工,只有差制度,我见过握着好好一堆高材生团队的好牌,打的稀碎的公司,所以很有共鸣啊。原因很简单,丰田车的任何一个流水线工人都有能力停止生产线,以便于第一时间纠正生产过程中出现的问题。而德国车却是在完工之后再做检测和修理。 - 信息瀑布
在这本书里,我第一次看到这个词“信息瀑布”,很好奇它的意义,信息瀑布就是人与人之间对一件事的看法的彼此影响。
一个人写的文章如果在第一家出版社被拒绝,那么他很容易在第二家、第三家被拒绝,原因很简单,因为第一家拒绝了他,而后面的每一家都会在做决定的时候受之前信息的影响,这就是所谓的信息瀑布。
人们认为如果其他所有人都赞同某一件事,那么自己的保留意见则是愚蠢的或者误导性的,他们不想在其他人面前出丑。这种弱点不是个体性的,而是全体人所共有的。如果一个人观察到之前众人的行为之后,认为最佳的做法是放弃自己掌握的信息,遵从之前众人的行为,那么这个时候信息瀑布就出现了。
从这点上看,也就自然解释了我们小时候读到的那则关于《皇帝的新衣》的故事背后的原因了,那么,在工作中,我们如何才能有效的利用信息瀑布呢,这是值得不断去思考的问题。 - 效率为先
无论是管理者还是执行者都很清楚一个道理,那就是工时越长,效率越低。当我们精力耗尽的时候,很容易做出荒谬的决定,书中提到了四种浪费会延长人们的工作时间,加重工作负担。1、目标荒谬 2、期待过高 3、负担过重 4、情绪浪费 。
这里最重要的就是将令人生厌者踢出团队,避免在工作者因为生厌者而带给团队的无谓消耗。
启发与行动:
在自我管理方面,我们可以设置一个待办事项,在办事项和完成事项的表格,放在书桌或贴于墙面,时刻了解进度。为自己目前的工作或学习设置一个冲刺时间,一周或一个月,按照这个周期自查,时刻保持紧迫感。最后每个冲刺阶段结束后都要及时展示成果,激励自己。