敏捷革命

志远
2018-03-30 15:23:33

直到2005年之前,大多数软件开发项目都是采用“瀑布法”。作者萨瑟兰在1993年发明了一套新的软件开发方法,即Scrum。 Scrum源自日本的“丰田生产系统”(Toyota Production System)和美国空军的OODA循环理论。 我们之所以都认为工作应该通过某种方式去完成,只是因为别人就是那样教我们的。 艾森豪威尔曾经说过,战斗规划是很重要的,但一旦第一枪打响之后,你的规划就会烟消云散。至少他很聪明,没有使用过甘特图。 Scrum,原本是橄榄球运动的一个专业术语,原意为团队通力合作,在场地内传球。 传统上,任何项目的管理都需要实现两个目标:可控性与可预测性。这样一来,就会出现大量的文件与图表,花费长达数月的时间去规划所有的细节,确保不会出现任何疏漏,不会超出预算,每件事情都能按照计划完成。 但问题是这种美好的设想往往不会变成现实。 每一个项目在开发过程中都需要人们去发现新问题,去激发自己的灵感。试图把人类行为限制在充满彩色编码的图形和曲线里,是一种愚蠢的、注定要失败的做法。 这种传统方法只会导致人们因为无法达到目标而产生挫败感。项目延期,费用超支,甚至完全惨败的例子都是很常见的。对于那些从事创造性工作的团队而言,这种情况尤其常见。 在软件开发领域,有一条根据数十年研究工作总结出来的原则,即在任何一款软件中,80%的价值来自20%的功能。 Scrum的很多理念都受到了大野耐一(Taiichi Ohno)建立的丰田生产系统的启发。 大野耐一提出一个关键概念,即流畅(flow)。他认为,整个生产流程之内的各个环节应该做到无缝衔接、迅速流畅地接续下去,管理团队的一个重要任务就在于确定并消除生产流程中的障碍,任何障碍都是一种浪费。 Scrum是一种迭代式增量软件开发过程。所谓迭代,是指把一个复杂且开发周期很长的开发任务分解为很多短期可完成的任务,这样的一个周期就是一次迭代的过程;同时,每一次迭代都可以生产或开发出一款可以交付的产品。 对于任何一项具有复杂性和创新性的活动而言,传统的管理方法都已经失效了。 PDCA四个英文字母分别代表计划(Plan)、执行(Do)、检查(Check)与行动(Action)。 “行动”意味着根据实际成果与环境去改变原有的工作方法。 Scrum来自日本制造业使用的技术,日本人是怎么学来的?大多数内容都学自一位美国人:戴明(W. Edwards Deming)。 戴明把PDCA循环传授给日本人时,这还是一个刚刚出现的新理念,后来,这种关键理念推动丰田汽车公司发展成了世界一流的汽车制造商。任何类型的“精益生产”(美国用来称呼“丰田生产系统”的一个概念),或是Scrum式的产品开发流程,之所以能不断改进,依据的都是PDCA循环。 阶段—闸门式方案规划流程(phase-gate)是指一个“阶段—闸门”是一个评估流程,用以确定一个项目是否可能会成功。 聚焦团队,而非个人 如果你能把所有的雇员变成天才,效率可能提升10倍。 如果从个人的角度看,如果你能把所有的雇员变成天才,效率可能提升10倍。要是从团队的角度看,即便你能让最差的团队达到中等水准,效率也会有惊人的提升。 如何建立一个具有远大目标、善于自我组织的学习型团队 在那篇描述什么成就了Scrum的论文——《新新产品开发游戏》之中,竹内弘高和野中郁次郎这两位教授描述了世界优秀公司最卓越团队具备的特质: 1.超越寻常。他们具有希望超越寻常的目标。实现这种目标的动力促使他们超越寻常,达到卓越。他们下决心拒绝平庸,出类拔萃,这种决定改变了他们看待自己的方式,扩大了他们的能力范围。 2.自主性。这种团队自我组织,自我管理,有能力决定如何开展工作,并获得了根据自己决定做事的授权。 3.多功能。这些团队具备完成项目的所有技能:计划、设计、生产、销售、分销。具有这些技能的成员相互学习,相互提高。一位设计革命性新款相机的团队成员说:“当所有团队成员都在一间大房子里办公时,某个人的信息就是你的信息,并且得来全不费功夫。你会开始思考对整个团体而言,最优选择或次优选择是什么,而不再仅仅从你个人的角度考虑问题。” 管理者往往并不希望其他管理者、自己的下属或是权力结构中的其他人准确地知道自己正在做什么、完成了什么任务以及完成任务的速度有多快。他们认为,掩盖这些信息才能维持自己的权力。他们考虑的不是更大的集体的利益,而是个人利益,这可以归因于他们的贪婪与野心。 团队只有在维持小规模时,才会焕发出活力。 团队一般是由7个人组成的,可以多两个人,也可以少两个人。有数据显示,如果你的团队规模超过9人,那么运作速度其实会放缓。 在软件开发领域,有一个术语叫“布鲁克斯定律”。这个概念最早是1975年弗雷德·布鲁克斯(Fred Brooks)在一本产生过重要影响的著作《人月神话》中提出来的。简单地说,布鲁克斯定律认为:“为一个延误的IT(信息技术)项目增加人员,将导致更严重的延误。” 要完成同样的工作量,3~7人的团队所需时间只有9~20人的团队所需时间的25%左右。 乔治·米勒(George Miller)。他在1956年开展的一个经典研究认为,普通人在短期记忆中最多能记住7样东西。后来的研究证明米勒的发现是错误的。 2001年,密苏里大学的尼尔森·考恩(Nelson Cowan)不确定神奇的“7位数规则”是否正确,便围绕这个问题开展了研究,结果发现,普通人在短期记忆里记住的东西不是7样,而是4样。 为什么项目中增加人数反而会降低进度 第一,要培养一个新成员,使其跟上其他成员的速度,需要耗费一定的时间。 第二个原因不仅与我们思考问题的方式有关,而且与我们的思考能力有关。团队成员增加之后,沟通渠道就会大幅增加,我们的大脑可能根本无法应付这么多的沟通渠道。 每个人都是制度的产物。 每个人对每件事知道的信息越多,那么团队做事的速度也就会越快。 我们应该如何在自己的团队里创造出那么高的沟通饱和度呢?影响沟通饱和度的因素在于劳动分工的水平,即团队里设定了多少个专业的角色与头衔。如果一个人有某个特定的头衔,那么他就倾向于只做与该头衔匹配的事情,而且会想方设法维护该头衔赋予他的权力,他往往会把特定的知识隐藏起来,不与团队其他成员分享。 同时处理多项任务的能力似乎很有诱惑力,在当前这个信息发达、很多事情必须马上就做的时代更是如此。 不幸的是,我们不能。事实上,我们越是认为自己能做得到,我们就做得越糟糕。 请写下阿拉伯数字1~10、罗马数字I~X,以及英文字母A~L。写的时候,注意计时。你肯定想尽快写完。但是,在这里,我要告诉你第一遍的时候该怎样做:先写下一个阿拉伯数字,接着,在同一行,写对应的罗马数字,然后是对应的英文字母,比如写完1,再写I,然后写A;之后,另起一行,先写2,再写II,接着写B,以此类推。这样逐行逐行写完之后,你的纸上看起来就是这样的: 你现在是一行一行地写,写完一行,再写第二行,并注意计算时间。我现在和你一起写。我总共用了39秒。现在,换个方式,再写一次,不要一行一行地写了,而是一列一列地写,先写完阿拉伯数字的1~10,写完之后,在其右侧另辟一列,写罗马数字的I~X,写完罗马数字之后,再在其右侧另辟一列,写英文字母A~L。在此过程中,同时要注意计时。我也将这么做。我花了19秒。由此得出的结论就是:一次做一项简单的任务,而不是从一个环境转换到另一个环境,就能减少一半的时间。 20世纪90年代,一位名叫哈罗德·帕施勒(Harold Pashler)的科学家证明了这种现象。他还给这个现象专门取了一个名字,叫“双重任务冲突”(Dual Task Interference)。他开展过一些非常简单的实验。比如,让一组受试者做一件相当简单的事情,即灯光一亮,就按下按钮。然后,他让另一组受试者根据亮灯的颜色不同,去按下不同的按钮。结果发现,一旦增加别的任务,不管新增的任务多么简单,需要的时间都会加倍。帕施勒推理说,人类大脑的信息处理能力存在某种瓶颈,人们真的每次只能思考一件事情。他推测,在不同任务间转换的时候,你肯定会花费一定的脑力去“结束”上一个任务,然后从记忆里把另一个任务拉出来,然后你才能开展新的任务。每次转换任务,这个过程就需要花费一定的时间。 因此,你做不到同时执行多项任务,你只能每次完全专注于一件事。 处理问题的最佳时机是你发现问题的时候,而不是发现问题之后很久再着手解决。 公司内部数百名软件开发人员在不同时间修改程序故障所需的时间差异:一种做法是发现故障后立即加以修复;另一种做法是发现故障几个星期之后再加以修复。要知道,软件是非常错综复杂的工程,你觉得在这两个时间点解决故障所需的时间存在多大的差异呢? 事实上,后者是前者的24倍。假如在发现程序故障的当天就进行修改,只需要1个小时就足够了;但如果在发现故障3个星期之后再去修改,那就有可能需要用24个小时。 人类大脑是有局限性的,我们能记住的事情只有那么多,我们一次只能集中精力做一件事情。正是由于这个原因,如果我们没有在发现问题之后立即改正,而是拖延到未来的某个时间去解决,就会花费更多时间。当你在做一个项目的时候,大脑专注于它,你很清楚做某件事的所有原因,这时你的脑子里存在一个与之相关的复杂架构。想在几个星期后重新建立这样的架构十分困难,你必须先想起你在做决定时考虑的所有因素,必须重新建立促使你做出该决定的思考流程,再度成为当时的自己,把自己拉回到已经不复存在的思维里。做这些动作都要花费时间,而且还是更长的时间,是你在发现问题时立即改正所需时间的24倍。 加班加点地工作不是敬业的标志,而是失败的标志。 工作时间太长的人会开始犯错,改正错误可能会比创造新成绩花费更多的时间。 “不确定性圆锥”(cone of uncertainty):实际工作量既可能是之前评估的4倍,也可能是1/4,也就是说,最初评估的最大工作量和最小工作量会呈现出16倍的差异。但随着项目的推进和完成的工作越来越多,评估的工作量会越来越接近于实际所需的工作量,直至评估工作量与实际工作量完全一致。 关于比较大小,我最爱举的一个例子是“犬点”(Dog Points)。我的朋友迈克·科恩是敏捷思维方面的领军人物。几年前,他也在努力寻找让自己的项目能够按时完成、不超出预算的办法。虽然他的妻子禁止他养犬,但他很爱犬。 规模的确重要,但只是相对的。 在斐波那契数列中,不同数字之间的差异足够大,因此,我们能轻易地分辨出一个数字与另一个数字的差异。 当一个团队用这种方式去评估一个任务的难度时,得到的结论比我们单独去评估准确得多。 当我们借助斐波那契数列去评估一个任务的难度时,不必追求绝对的准确,因为没有任何事情的难度正好是5、8或13,但由于每个人都采用同样的评判尺度,我们能够征求他人对这项任务的难度的看法,有利于达成共识。 如果一个人观察到之前众人的行为之后,认为最佳的做法是放弃自己掌握的信息,遵从之前众人的行为,那么这个时候信息瀑布就出现。 人们熟知的另一个问题是所谓的“光环效应”,亦称“成见效应”或“日晕效应”,是指当认知者对一个人的某种特征形成好或坏的印象后,还倾向于据此推论该人其他方面的特征,本质上属于以偏概全的认知错误。 人们可以采取一些聪明的办法去削弱这种效应的影响。“德尔菲法”就是其中之一。 我们可以通过一个工具迅速而精准地进行评估和规划,这个工具就是“计划扑克”(Planning Poker)。 计划扑克说起来也很简单,每个人都有一副牌,上面印着有趣的斐波那契数列数字,也就是1、1、2、3、5、8、13等。每一个需要评估的事项都会被列出来,摆到桌面上。然后,人们根据事项的难度,抽出一张相应的扑克牌放到桌子上,但正面朝下。接下来,听口令一起翻牌。如果数字之间相差的牌数不多于2张(比如一张5、两张8、一张13),只要把这几张牌的数字加起来,然后取一个平均值即可(就本例而言,平均值是8.5),如果翻开一看,数值之间相差的牌数达到了3张或更多,那么数值最大者与最小者就要谈一下自己为什么这么想。 这种简单到令人难以置信的方法有助于避免从众效应和光环效应,防止人们相互参照,使得整个团队能够围绕某个特定的任务分享自己的信息。 只有真正负责做事的团队才知道自己的项目要花费多少时间和精力。也许某位专家的确擅长做某一类事情,但让他做另一类事情时,结果就很糟糕。 不要盲目执行任务,要领会用户故事。 很多时候,你只是被动地从别人那里接受任务,却不知道为什么要这么做。 员工的问题就在于没有得到足够的信息,而上司的问题在于没有为下属提供足够的信息。 人们习惯于用情节、故事去思考问题。大家都是这样来理解世界的。 需求往往会因为人物的不同而改变。 在确定待办事项的优先顺序之前,必须先考虑一下有关的人物、使用者或客户,也就是说你的劳动成果将由谁来使用。 公司不得不解雇一批无法及时做出转变的员工,并不是因为这些员工能力不足,而是因为他们为了自己的利益,为了确保自己的不可替代性,不愿与他人分享自己的知识和信息,不愿意帮助团队和公司。 人们并不是因为成功而快乐,而是因为快乐而成功。 在每个冲刺阶段结束时,每个团队成员都要回答以下几个问题: 1.你对自己在公司的角色感觉如何?请以1~5分加以评价。 2.你对公司整体情况感觉如何?请以1~5分加以评价。 3.为什么会有这种感受? 4.在下一个冲刺阶段中,什么事情会让你感到更快乐? 回顾会议就相当于戴明的PDCA循环中的“检查”(Check)环节,但是进入“行动”(Action)环节,也就是改善环节才是关键,这样才能真正改变流程,使其变得更好。只分享自己的感受是不够的,还必须采取行动。 透明度是Scrum的一个重要元素。所谓透明度,就是指团队内部不应该有秘密的小集团,不应该有秘密的日程,也不应该有其他什么秘而不宣的事情。 要让一个团队的绩效提高一倍,我只需要一个月,但如果让某人的个人绩效提高一倍,我可能需要一年。如果让一大群互不相关的人、整个部门、整个公司的团队绩效提高一倍,可能永远完不成这个任务。 人与人之间的关系越密切,就越快乐,就越有效率和创新能力。 在产品开发中,有一条反复得到证明的铁律,即一个产品80%的价值来自20%的功能。 OODA指Observe-Orient-Decide-Act,意为“观察—导向—决定—行动”。在战争或商业中,这个循环能产生生死攸关的影响。 这种“渐进式发布流程”的好处在于它是迭代式的,可以反复进行。一旦人们用过你的产品或服务,或是发现自己的生活因此而改变,他们就会告诉你下一个最有价值的地方在哪里。然后你开发出20%功能的时候,就再次发布,以此类推。 几年前,我听说过一家采用Scrum方法的软件开发公司的故事,他们取得了一份价值1000万美元的合同,为一家建筑公司编写一款软件。双方约定20个月后交付产品。但Scrum公司在合同中插入了一个条款:如果建筑公司想要在任何时间终止合同,只需支付剩余合同价值的20%。 客户可能一开始会告诉你他们想要什么,但事实上,他们只有在使用过你的产品之后,才知道自己真正需要什么。 守-破-离:Scrum虽然存在一些规则,但你可以在心领神会之后超越规则。

0
0

查看更多豆瓣高分好书

回应(0)

添加回应

敏捷革命:提升个人创造力与企业效率的全新协作模式的更多书评

推荐敏捷革命:提升个人创造力与企业效率的全新协作模式的豆列

了解更多图书信息

豆瓣
免费下载 iOS / Android 版客户端