【敏捷革命】从方法到思想

一个优秀的团队必须掌握所有必要技能,能够独立完成所有工作。


更新历史

  • 2022.06.23:完成初稿

读后感

敏捷的精髓是在我看来就是三个词:透明、交流、守破离。具体的方法真的不重要,和团队一起摸索出来好的落地方式,才最重要。

读书笔记

世界的运作方式已经打破

  • Scrum方法充分考虑到了可能出现的不确定性因素,同时具有鲜明的创造性。它的结构是围绕着学习过程建立的,这样一来,团队既可以评估已经取得的成果,同样重要的是,也可以评估取得这些成果的方法。这种架构能够为团队提供更加高效的工作方式,帮助他们更好地自我组织,提高工作速度,改进工作质量。
  • 究其本质而言,Scrum方法很简单:无论你什么时候启动一个项目,为什么不经常检验一下自己正在做的事情,看看是否朝着正确的方向前进?结果是不是大家真正希望看到的?是否有什么办法能改善目前正在做的事情?如何才能做得更快更好?存在哪些潜在的障碍?
  • 在Scrum中,我们把这些循环称为“冲刺”。在每次冲刺之初,都会举行一次会议,产品负责人讲解需求,并由开发团队规划冲刺内容,即在未来两周内能完成多少工作。
  • 在每一次冲刺结束之前,研发团队成员还要聚在一起开个评估会,给产品负责人演示他们在这个合作阶段之内取得的成果,并接受评估意见。他们会评估一下列表上的工作任务已经完成了多少,自己是在这个阶段的冲刺中认领了太多任务,以至于没有做完,还是工作任务认领得太少了。这样做的重要性在于大家对于自己完成任务的速度有了基本的认识。
  • 除了明确团队的速度以外,他还想知道哪些障碍拖累了进度。他之所以这样做,就是想找到一种更好、更聪明的工作方式,而不是靠延长工作时间,帮助团队提升工作效率和进度。(我稍后会讨论为什么延长工作时间的做法是徒劳无益的,最后只会拖累进度。)
  • Scrum最强大之处是什么呢?他认为,答案就是“展示,即定期展示成果”。
  • 重要的从不是那些在一旁指手画脚的人,不是那些对别人的失败品头论足的人,更不是那些指责别人如何可以做得更好的人。荣耀属于那些真正站在竞技场里打拼的人:他们满面灰尘,浸透着汗渍和血迹;他们英勇无畏;他们一遍又一遍地犯错跌倒,因为这路上一定伴随着打击,即便如此他们依然奋力向前;他们理解何为执着和专注;他们献身于崇高的事业;在最好的情况下,他们最终品尝了伟大的胜利和成就;在最坏的情况下,即使他们失败了,至少他们也是伟大地倒下,因为那些自始至终从不知道胜利或者失败的、冷漠和胆怯的灵魂远远不能与他们相提并论。
  • 规划是有用的,而盲目遵循规划则是愚蠢的。绘制无穷无尽的图表,的确具有很大的诱惑力。一个大项目中所有需要做的工作都可以逐一列出来,供人审视,但当详细的规划与现实相遇时,它们往往会失败。你要在自己的工作方法中假定会出现变化,要注意发现,注重新理念。
  • 检查与调整。每过一小段时间就停一停手头的工作,检查一下已经完成了哪些任务,看看这些任务是不是自己应该做的,看看有没有更好的方法。
  • 要么改变,要么倒闭。固守老派的工作方式、过于注重“命令与控制”、刻意追求可预测性,注定会导致失败。同时,那些愿意实现自我变革的竞争对手会把你远远地甩在后面。
  • 失败得快,才能迅速改正。公司文化往往更加注重形式、程序和会议,而不是在短期内创造出可供用户检验的价值。无法创造价值的工作是疯狂的愚蠢之举。把项目分解为多个小循环,可以让早期用户及时提供反馈,你就能立即避免浪费精力。

Scrum的由来

  • 行动的方法,也是戴明最知名的成就,就是PDCA循环。PDCA四个英文字母分别代表计划(Plan)、执行(Do)、检查(Check)与行动(Action)。几乎做任何一件事情时,你都可以运用这个循环,包括制造汽车、开发视频游戏,甚至制作纸飞机。
  • 如同合气道或者探戈舞一样,Scrum也只能在不断的实践中去学习,你的身、心、灵可以通过不断改善达到三者合一的境界。在武术中,有一种概念称为“守破离”,分别是指三种不同的修炼层次。
  • 在“守”的境界中,你懂得所有规则与动作,不断重复动作,以便让身体学会有关的动作,就像你在学习舞步时那样。“守”就是要求你不会出错。
  • 在“破”的境界中,你在完全熟悉有关动作之后开始学着创新,就像在地板上跳舞时在迈出一个舞步之后,自己再增添一个摆动动作。
  • 在“离”的境界中,你可以摆脱形式的束缚,算是真正掌握了要领,可以按照自己的意愿加以创新。因为你已经非常了解合气道或探戈了,所以你的一举一动都能表达出它的精髓。
  • 迟疑是致命的。观察、导向、决定、行动。了解身处何地,评估备选方案,做出决定,然后行动!
  • 根据外部环境寻找答案。从外部寻找解决方案。复杂的自适应系统都遵循少数几个简单的法则,而这些法则是自适应系统根据周围环境学到的。
  • 出色的团队。多功能,有自主权,得到授权,有崇高目标。
  • 不要猜测,要规划、执行、检查、行动。先规划要做什么,然后执行。检查成果是否符合预期,然后根据检查结果调整做法。重复这种循环,就能实现持续改善。
  • 守破离。先学习规则和形式,掌握之后再进行创新。最后,在特别熟练的状态下,就可以摆脱形式的束缚,随性发挥,因为一切知识都已烂熟于心,几乎可以在下意识的状态下做出决定。

聚焦团队,而非个人

在那篇描述什么成就了Scrum的论文——《新新产品开发游戏》之中,竹内弘高和野中郁次郎这两位教授描述了世界优秀公司最卓越团队具备的特质:

  1. 超越寻常。他们具有希望超越寻常的目标。实现这种目标的动力促使他们超越寻常,达到卓越。他们下决心拒绝平庸,出类拔萃,这种决定改变了他们看待自己的方式,扩大了他们的能力范围。
  2. 自主性。这种团队自我组织,自我管理,有能力决定如何开展工作,并获得了根据自己决定做事的授权。
  3. 多功能。这些团队具备完成项目的所有技能:计划、设计、生产、销售、分销。具有这些技能的成员相互学习,相互提高。一位设计革命性新款相机的团队成员说:“当所有团队成员都在一间大房子里办公时,某个人的信息就是你的信息,并且得来全不费功夫。你会开始思考对整个团体而言,最优选择或次优选择是什么,而不再仅仅从你个人的角度考虑问题。”

一个优秀的团队必须掌握所有必要技能,能够独立完成所有工作。

  • 她要求团队具备多样性,也就是说,团队成员必须掌握一整套的技能,既要无私,又要具有自主性,每个成员都是多才多艺,一个团队就能把所有工作做完。
  • 为了判断一个团队是否走上了正确道路,她会通过下面的方法加以检验。比如,她会问一个网络工程师:“你在哪个团队?”如果对方的答复提及他所在团队的研发产品,而不是自己的专长,那么她就会点点头,表示赞同。如果对方只是提到了自己的专长,而不是自己正在研发的产品,她就知道自己还有些工作要做。
  • 他们构成了一个多功能的团队,具备独立完成任务所需的全部必要技能。他们在一起工作,分享所有情报,共同制订锁定和狙击基地组织成员的计划,而不是让专家们分成几个彼此很少分享信息的小组。
  • 在此之前的情况却相反:搜集情报的人员锁定目标后,让特种部队去负责实际行动,特种部队再把自己搜集到的情报转交给另一个小组进行分析。如同数十年前试图效仿美国航空航天局采用“阶段—闸门”方法的富士施乐公司一样,转交情报的人发现,只要资料在不同团队之间移交,就有发生灾难的可能。这也是我们最初创立Scrum的主要原因之一。美国《联合部队季刊》(Joint Force Quarterly)曾经发布过一篇题为《情报、监视与侦察之应用:特种作战部队最佳做法》的文章,其中写道:
  • 在伊拉克,来自多个部门的人组成的团队使得盟军内部可以更加密切地配合,可以目不转睛地盯紧重要目标……假如任务在不同单位或组织之间转交来转交去,恐将制造出谁都不会管的真空地带,这样一来,不但有可能削弱行动的力度,目标还可能趁机逃走。
  • 虽然组建多功能团队非常重要,但你不能像挪亚建成方舟之后那样把任何部门的人都挑选两个塞到团队里面。团队只有在维持小规模时,才会焕发出活力。虽然我见到过小到只有3个人的团队能够实现高水平的运作,但一个团队一般是由7个人组成的,可以多两个人,也可以少两个人。有数据显示,如果你的团队规模超过9人,那么运作速度其实会放缓。这是非常值得关注的。更多的资源会导致团队运作得更慢。
  • 我们设定了一个由冲刺、每日立会、检查与回顾组成的工作框架。我意识到我们需要有个人确保整个工作流程的顺利推进。这个人不是事无巨细的管理者,而是在更大程度上类似于一个仆人。他的工作职责就是召集会议,确保团队运作过程的透明度,而且,最重要的是,帮助团队发现障碍。要做到这一点,关键之处就是意识到一个事实,即在很多情况下,障碍并不是机器运转不良,也不是会计的工作做得一团糟,而是工作流程本身不能顺利推进。Scrum主管的工作职责就是经常问团队成员:“你们如何才能做得更好?”这种方式可以引领整个团队持续改善自己的工作。
  • 一般人,那些仅仅做着自己的本分工作,对别人没有任何特别敌意的人,都可能成为一个骇人的破坏性过程的执行者。而且,即使他们工作的破坏作用变得显而易见,在被要求执行与基本道德标准相矛盾的行为时,依然很少有人拥有反抗权威的勇气。
  • 拉对控制杆。提升团队业绩。这比提升个人业绩的影响大得多,会超出后者几个量级。
  • 超越个体。卓越团队的目标都超越了个体的目标,比如在麦克阿瑟将军的葬礼上为他送行以及赢得NBA(美国职业篮球联赛)冠军。
  • 自主决策。赋予团队自主决定如何做事的自由,尊重他们,让他们自由发挥专长。无论是报道中东乱局的团队,还是销售团队,现场应变能力都非常重要。
  • 多功能。无论是推销Salesforce.com的软件,还是抓捕伊拉克的恐怖分子,一个团队都必须拥有完成一个项目所需的全部技能。
  • 团队小而精。船小好掉头。以经验法则来说,团队最佳规模维持在7人左右,可以多两人,也可以少两人。宜少不宜多。
  • 指责他人是愚蠢之举。不要一味地寻找“坏人”,而要找出“坏制度”,即那些激励不良行为、奖励拙劣业绩的制度。

以周期性的视角看待时间

  • 他们的速度之快,可以归功于媒体实验室为所有项目制定的一个规定。每3个星期,每个团队必须向同事们展示自己的工作成果。这是公开展示,任何人都可以过来观看。如果展示的成果既不实用,也不酷,那么主管就会毙掉这个项目。通过这种方式,学生们就不得不迅速做出新东西,而且最重要的是,他们可以通过成果展示立即获得反馈意见。
  • 白板划分为几个栏目:待办事项、在办事项、完成事项。在每一个冲刺周期内,该团队成员都会在便笺纸上写下自己本周内能够完成的事项,然后贴到“待办事项”那一栏。在接下来的一周内,等到任务开始执行时,相应的便笺纸就会被转移到“在办事项”栏,完成之后,再转移到“完成事项”栏。在任何时刻,任何一位成员都能清楚地知道其他成员正在忙什么。
  • 重要的一点在于,如果制造出来的东西客户没法使用,那就不能转移到“完成事项”栏。换句话讲,车子必须能开。如果有人开了一下,说,“嘿,转向灯怎么用不了啊”,那么,在接下来的冲刺周期里,必须着手处理这个问题。
  • 冲刺周期经常被称为“时间限制”。其时间跨度是固定的,必须具有一致性,你不能把一个周期设为一周,下一个周期却设为三周。必须设置固定的节奏,每个人都知道自己能在一个固定期限内完成多少工作。通常来讲,他们自己都会为完成的工作量感到惊讶。
  • Scrum主管,也就是负责执行流程的人,会询问团队成员三个问题:
    • 1.你昨天做了什么去帮助团队完成冲刺?
    • 2.今天你打算做什么来帮助团队完成冲刺?
    • 3.什么因素阻碍了团队的前进之路?
  • 如果会议时间超过15分钟,那就说明开会的方法存在问题。这样做的意义就在于让整个团队清楚地知道在这一个冲刺周期内各项任务的进展状况。所有任务都能按时完成吗?有没有机会帮助其他团队成员克服障碍?团队的任务都不是自上而下分派的,团队的一切任务都是自主决定、自主完成的,也不需要向上司做详细的汇报。管理层的人或其他团队的人只要来到白板前,看看上面的几个板块,就会清楚地知道每项任务的进度如何。
  • 影响沟通饱和度的因素在于劳动分工的水平,即团队里设定了多少个专业的角色与头衔。如果一个人有某个特定的头衔,那么他就倾向于只做与该头衔匹配的事情,而且会想方设法维护该头衔赋予他的权力,他往往会把特定的知识隐藏起来,不与团队其他成员分享。
  • 我们有一定的规则。第一个规则就是,每一天,会议召开的时间是固定的,每个成员都要出席。如果有人不出席,沟通就进行不下去。一天中的任何时刻都可以,只要是在同一时刻就好,重点在于给团队一个固定的节奏。
  • 第二个规则是开会时间不能超过15分钟。我们希望会议直截了当,直击重点。如果某件事情需要进一步讨论,那就先记录下来,在每日立会结束之后再做进一步讨论。之所以这么做,就是为了用最少的时间,讨论出最易于付诸实践的、最宝贵的信息。
  • 第三个规则是每个人都要积极参与。为了达到这个效果,我说每个人开会时都要站起来,不要坐下。这样一来,就会促使每个人积极交流,持续倾听他人的看法。这样还有助于缩短会议时间。
  • Scrum的一个重要意义就是改变你对时间的看法。实行冲刺和每日立会一段时间之后,你就不会再把时间看成一支径直飞向未来的箭,而是从周期性的视角去看待时间。每一个冲刺,都是一个开启全新任务的机会。每一天,都是寻求改善的好机会。任何致力于Scrum方法的人都会珍惜每一分、每一秒,将其视为呼吸和生命循环的一个周期。
  • 时间有限,且行且珍惜。把你的工作分解开,看看自己在一个固定的、短暂的时间段内能完成多少工作量。最好以1~4周为一个周期。如果喜欢Scrum,不妨称之为“冲刺”。
  • 不展示成果,就没有效果。在每个冲刺周期结束之际,要有点成果,这些成果要能派得上用场(比如能飞起来,或者能行驶,等等)。
  • 扔掉名片。头衔标志着你的专业地位。要让别人知道你做了什么事情,而不是你被称作什么。
  • 让每个人知悉一切。提高沟通饱和度,有助于加快工作进度。
  • 每日立会。整个团队的人都要到场,一天一次就够了。时间不要超过15分钟,看看如何才能加快工作进度,然后就付诸实践。

浪费是一种犯罪

  • Scrum流程的核心是节奏,这种节奏对人类很重要。它渗透在我们的血液之中,根植于我们大脑的最深处。我们努力找寻节奏,找寻生命中方方面面的节奏。
  • 大野耐一谈到浪费有三种类型。无理(Muri),指超载的设备或是超负荷的工人,通常是工作的节奏比原设计更快、要求更高所致。无稳(Mura),指生产运作的不平衡。例如,生产系统的进度安排不符合客户的需求,而是由生产系统本身决定的;或者不均衡的工作节奏导致操作员有时匆忙,有时空闲。无驮(Muda),指一切不为顾客创造价值但却消耗资源的活动。避免这些浪费的理念与戴明的PDCA循环具有高度一致性,所谓PDCA,就是我之前描述过的计划、执行、检查和行动:计划意味着避免活动安排不合理,执行意味着避免与计划内容不一致,检查意味着避免浪费,行动意味着意志、动机、决心的统一与实践。我将逐个地检查这些步骤并指出需要避免什么——避免库存造成的浪费,避免第一次就把事情搞砸造成的浪费,避免徒劳无功造成的浪费,避免不合理预期造成的浪费。
  • 在这里,我想强调的一个概念是“在制品”(work in process),有时候也被称为“存货”。一堆材料堆在那里而不用来制造东西是一种浪费。这些材料,不管是车门还是零部件,实际上都是金钱的损失。如果放在工厂,就意味着在仓库里堆积着大量的金钱。举个例子便可以改变你对“在制品”的看法,如果一个汽车公司只拥有大量的半成品汽车,就意味着它花费了大量金钱和精力,但没有创造任何实际价值。“精益生产”的主张就是最大限度地减少库房里的“在制品”。
  • Scrum开发过程中的工作是有节奏的。每一个迭代期,或者说每一个冲刺期,团队都试图完成很多事情。但是“完成”意味着一款能被消费者使用的、完整的、可交付的产品。如果在迭代期的最后,事情只做了一半,你将比一点都没开始做更糟糕。你花费了资源,付出了努力和时间,最后没有得到任何成果。与其生产出一辆半成品的汽车,还不如生产一些真正能派得上用场的小东西。
  • 没有做完的工作和无人使用的产品是一件事情的两个方面,本质上是一样的:你付出了努力,最后却没有收获积极成果。不要这样做。
  • 人类大脑是有局限性的,我们能记住的事情只有那么多,我们一次只能集中精力做一件事情。正是由于这个原因,如果我们没有在发现问题之后立即改正,而是拖延到未来的某个时间去解决,就会花费更多时间。当你在做一个项目的时候,大脑专注于它,你很清楚做某件事的所有原因,这时你的脑子里存在一个与之相关的复杂架构。想在几个星期后重新建立这样的架构十分困难,你必须先想起你在做决定时考虑的所有因素,必须重新建立促使你做出该决定的思考流程,再度成为当时的自己,把自己拉回到已经不复存在的思维里。做这些动作都要花费时间,而且还是更长的时间,是你在发现问题时立即改正所需时间的24倍。
  • 注: 立刻修复就可以节省时间,然后去做更多事情
  • 马克斯韦尔开始对员工说,加班加点地工作不是敬业的标志,而是失败的标志。他让员工早点下班,不是想让他们过一种平衡的生活,而是因为他们会完成更多的工作。
  • 因此,不要加班到深夜了,也不要周末加班了。休假的时候,公司希望他们安心度假,不必查看电子邮件,也不必过问办公室的事情。该公司的思维方式认为,如果一个团队的领导者在休假时还要确保办公室一切正常,那么这就说明他没有管理好自己的团队。
  • 为何一个人工时减少,却能做更多事情呢?表面上看起来毫无道理。马克斯韦尔表示,工作时间太长的人会开始犯错,正如我们先前提到的那样,改正错误可能会比创造新成绩花费更多的时间。工作超出负荷的员工比较不容易集中注意力,而且会影响别人也跟着分心,不久之后他们就会开始做出错误决策。
  • 卡岑巴赫的直觉是对的。有令人不安的证据显示,我们做决策的能力很有限,我们的精力消耗得越多,休息时间越短,我们做出的决策就会越糟糕。
  • Scrum方法要求参与者摒弃那种只衡量工时的思维,因为工时只代表着一种成本。相反,我们应该更多地关注产出。为什么要关注一个人用多久才完成一项任务呢?只要关注完成任务的速度和质量就足够了,这才是唯一重要的事情。
  • 大野耐一指出三种浪费会延长人们的工作时间,加重工作负担。我已经明确指出了延长工作时间是非常不好的现象,但若能彻底理解大野耐一说的这些不合理现象,或许非常有助于我们改变自我。
  • 第一种不合理现象是“目标荒谬”。你可以给你的团队制定一些富有挑战性的目标,促使他们创造更多成果,但不能制定一些荒谬的、不切实际的目标。
  • 第二种不合理现象是“期待过高”。你是否经常听到有人夸耀自己的英勇行为拯救了某个项目?通常,别人往往会用拍拍他的肩膀、欢呼或祝贺作为回应。我认为这是工作进程中的一个根本缺陷。如果一个团队经常依赖某个“英雄人物”才能赶在截止日期之前完成任务,就说明这个团队平时并没有按照应有的方式开展工作。不停地从一个危机过渡到下一个危机会让人筋疲力尽,团队也不可能实现合理、持续的改善。
  • 第三种不合理现象就是“负担过重”。斯科特·亚当斯(Scott Adams)经常在其漫画作品《呆伯特》中讽刺这种现象。这类现象包括公司的规定过于烦琐,妨碍了工作;没必要的汇报导致员工为了填表而填表;没有意义的会议耗费了时间,却创造不出任何价值。
  • 还有第四种不合理现象,虽然大野耐一没有提到,但的确存在,即“情绪浪费”。在一个公司里面,只要存在一个令人讨厌的人,就会造成这种情绪浪费,因为这个人往往倾向于激怒别人,导致别人陷入狂躁。这种人通常宣称自己只是在竭力帮助别人更好地工作,以此为自己的行为找到合理借口,其实它们只是在放纵自己性格中的一些消极方面,这种人最擅长削弱一个团队实现卓越业绩的能力。
  • 同时执行多项任务会让你变愚蠢。如果同时执行两项或更多任务,那么这些任务都会完成得更慢、更糟糕。不要这么做。如果你觉得自己是特例,那么你错了——这条规则肯定适用于你。
  • 半途而废等于没做。一辆半成品的汽车只是消耗了原本可以用来创造价值或节约资金的资源而已。任何在制品都是一样,只会消耗资金和能源,而不会产生任何有价值的成果。
  • 一次性把事情做好。犯错的时候,要立即纠正。停下其他所有事情,集中精力纠正错误。如果留到以后再纠正,你就会多付出20多倍的时间。
  • 工时越长,效率越低。工作太努力不会让你做完更多的事,反而让你做得更少,让你疲惫不堪,从而导致失误,迫使你必须改进自己刚刚完成的工作。不要工作到太晚,周末也不要加班,要让自己的工作节奏具有可持续性。要记得休假。
  • 避免不合理现象。富有挑战性的目标可以起到激励的作用,不可能实现的目标只会让人沮丧。
  • 不要依赖“英雄”。如果你需要一个“英雄”去完成工作,那就说明你的管理方式有问题。“英雄”应该被视为规划的失败。
  • 消除愚蠢的规定。任何看似荒谬的规定都可能是愚蠢的。表格、会议、审批以及标准,等等,都是那么愚蠢!如果你的办公室存在类似于漫画《呆伯特》描述的情景,就纠正过来。
  • 将令人生厌者踢出团队。不要成为这类人,也不要纵容这类行为。任何一个人,如果引起情绪混乱,让别人感到恐惧或害怕,贬低或蔑视他人,都应该被清理出团队。
  • 努力让工作流畅起来。选择流畅性最强、麻烦最少的方式做事情。Scrum就是要尽量帮助你实现这样的流畅性。

务实规划,拒绝空想

  • 为什么他们在6个月之后才发现来不及呢?并不是因为他们不够聪明,不是因为用错了团队,不是因为用错了技术,也不是因为他们不够努力或缺乏竞争力。该公司能做到业界最大,不可能存在这些问题。
  • 原因在于,他们犯了一个非常基本的错误。他们心想每件事情都可以预先规划好。他们付出了好几个月的努力,制作出了看似可行的详细计划,制作了漂亮的甘特图,每一步该怎么做都规划得清清楚楚。可惜这种计划的内容几乎都只是虚构的现实。
  • 当我们借助斐波那契数列去评估一个任务的难度时,不必追求绝对的准确,因为没有任何事情的难度正好是5、8或13,但由于每个人都采用同样的评判尺度,我们能够征求他人对这项任务的难度的看法,有利于达成共识。
  • 当一个团队用这种方式去评估一个任务的难度时,得到的结论比我们单独去评估准确得多。
  • 计划扑克说起来也很简单,每个人都有一副牌,上面印着有趣的斐波那契数列数字,也就是1、1、2、3、5、8、13等。每一个需要评估的事项都会被列出来,摆到桌面上。然后,人们根据事项的难度,抽出一张相应的扑克牌放到桌子上,但正面朝下。接下来,听口令一起翻牌。如果数字之间相差的牌数不多于2张(比如一张5、两张8、一张13),只要把这几张牌的数字加起来,然后取一个平均值即可(就本例而言,平均值是8.5),然后继续探讨下一个事项。请记住:我们正在讨论的内容是“评估”,而且是对于整个项目分解之后的小片段的评估,而不是固定不变的日程表。
  • 我从这种情况总结出来的教训是,只有真正负责做事的团队才知道自己的项目要花费多少时间和精力。也许某位专家的确擅长做某一类事情,但让他做另一类事情时,结果就很糟糕。也许某位专家在特定领域的贡献很大,但是对于另一个领域的事,他就是外行。正如我在前面探讨的,团队都是独特的,应该具有独立性,每个团队都有自己的步调与节奏,强迫一个团队盲目遵从其他团队的安排,注定会招致灾难。
  • 一个好的用户故事包括三个要素。第一个要素是角色,包括顾客、新娘、读者、员工等,这就要求我们思考:谁要使用这个功能?这项任务是为“谁”而做的?打造这样东西、做这项决策、提交这项成果,我们应该从谁的角度出发?第二个要素是活动,要求我们思考我们要完成什么样的功能。这通常是我们的出发点,也是落脚点。
  • 第三个要素是商业价值,或者说动机。要求我们思考客户为什么需要这个功能,以及这个功能如何才能给客户创造价值。从某种角度来看,这是最重要的一步。动机重于一切。
  • 用户故事必须完整,任务必须彻底完成
  • 关于一则用户故事是否完整,我经常用一套标准来衡量。这套标准是比尔·韦克(Bill Wake)发明的。他认为,一个好的用户故事应该满足INVEST标准:
  • 独立性(Independent)——尽可能让一个用户故事独立于其他的用户故事。用户故事之间的依赖使得制订计划、确定优先级和工作量评估都变得很困难。通常我们可以通过组合用户故事和分解用户故事来减少依赖性。
  • 可协商性(Negotiable)——用户故事的内容要是可以协商的,用户故事不是合同。一张用户故事卡片上只是一个简短的描述,不包括太多的细节。具体的细节在沟通阶段提出。如果一张用户故事卡片带有太多的细节,实际上会限制和用户的沟通。
  • 有价值(Valuable)——每个用户故事必须对客户具有价值。一个让用户故事有价值的好方法是让客户来写下它们。一旦一个客户意识到这是一个用户故事,并不是一个契约,而且可以进行协商的时候,他们将非常乐意写下故事。
  • 可评估(Estimable)——开发团队需要衡量用户故事,以便确定优先级和工作量,并便于安排工作计划。
  • 规模小(Small)——一个好的故事要尽量维持小规模,至少要确保在一个冲刺周期中能够完成。用户故事越大,在安排计划、工作量评估等方面的风险就会越大。
  • 可测试(Testable)——一个用户故事要可以测试,以便确定它是可以完成的。如果一个用户故事不能够测试,那么你就无法知道它什么时候可以完成。
  • 地图不是真实地貌。不要爱上自己的规划。几乎可以肯定地说,规划都存在错误之处。
  • 仅仅规划你需要做的事情。不要试图规划几年后的事情。只要让自己的团队保持忙碌就足够了。
  • 待办事项的难度相当于多少“犬点”?不要用时间之类的绝对尺度去做评估。事实表明,人类在这方面的能力很糟糕。只要评估相对难度就行了,看看一个待办事项相当于多少“犬点”?相当于哪个型号的T恤衫(小号、中号、大号、超大号、特大号)?或者采用更加常见的方法,用斐波那契数列去做评估。
  • 匿名征求意见。运用德尔菲法等匿名方法征求意见,以避免从众效应和光环效应,防止人们相互参照,防止出现群体思维。
  • 使用计划扑克。使用计划扑克去快速评估需要完成的工作。
  • 学会写“用户故事”。先思考一下哪些客户会从终端产品中得到价值,再思考一下究竟要为用户提供什么价值,以及用户为什么会需要这些价值。人类习惯于按照叙事方式去组织自己的思维,因此,面对一个待办事项,要学会写用户故事,比如作为X,我想要Y,所以Z。
  • 知道自己的速度。每个团队都应该准确知道自己在每个冲刺阶段中完成了多少工作,并且应该知道如何以更加聪明的方法去消除障碍,加快工作速度。
  • 速度×时间=交付工作量。知道自己的工作速度之后,就能计算出交付日期。
  • 大胆制定目标。运用Scrum方法,要让产量翻一倍或者将交付时间缩短一半,并不是什么难事。如果你的做事方式正确,你的营业收入和股价也会翻一倍。

把快乐转化为更高的绩效

  • 如果你和登山者谈论探险,他们将不会花费很多时间去谈到达山顶的体验。相反,他们将谈论寒冷的气候、令人痛苦的水泡、糟糕的食物、恶劣的环境及笨重的设备。他们将告诉你抵达山顶的喜悦后通常是一阵低落(除非濒死体验一直持续下去)。他们完成了目标,他们的努力取得了一些成果。但是如果你问他们什么时候是快乐的,他们将告诉你是在备受煎熬的时刻,即把他们的体力、意志、精神锤炼到极致的时刻。那是他们最快乐的时候,是他们体验到真正快乐的时候。这也是他们想再次体验的内容。从表面上看,心智正常的人不会自愿地再次让自己置身于那种境地,但是登山者们像是不能自已,无法自拔地攀登一座又一座山峰,在征服下一座山峰中追寻快乐。
  • 人们的直觉认为,人们之所以快乐,是因为他们取得了成功,对吗?其实,这是错误的。综上可见:“多项研究表明,快乐在先,成果在后,快乐是成功的兆头。”
  • 我希望各位在这里明白这样一个简单的道理:一点小动作就能创造大效应。Scrum正是聚焦在这些小事情上,有系统地把它们打造为一座用于构筑成功的架构,一次只做一件事,就能改变世界。
  • 让人感到快乐的因素,恰恰也是缔造卓越团队所需的因素,比如自主感、掌控感和目标感。展开来讲,就是要让人们觉得自己能够把握自己的命运,能够越来越好地做一件事情,并且知道自己孜孜以求的目标是高尚的和伟大的,超越了狭隘的个人利益。管理者可以通过许多简单和具体的方法去塑造自己的公司文化,从而鼓励员工培养这些优秀的品质。
  • 在下属获得自主感、掌控感和目标感之前,往往需要先提升团队运作的透明度。透明度是Scrum的一个重要元素。所谓透明度,就是指团队内部不应该有秘密的小集团,不应该有秘密的日程,也不应该有其他什么秘而不宣的事情。在公司里,没人知道其他人都在忙什么,也不清楚每个人的日常活动对于推进公司宗旨有什么贡献,等等,这种情况简直太普遍了。
  • 因为团队知道什么已完成以及什么未完成,他们就能够自我组织和自我管理了。他们知道自己必须要做什么,可以看到某个同事是否遇到了麻烦以及某个用户故事是否在“待办”状态下待得太久。只要一切透明,团队就能通过自我组织来解决显而易见的问题了。
  • Scrum能让你实现所有这些目标,因为它原本就是为了这个目的而开发出来的,尤其是直接反馈,在每日立会中都会发生,冲刺回顾会议与快乐指标也有助于为员工提供直接反馈。
  • 精彩在于过程,而非终点。真正的快乐在于过程,而非结果。通常我们只奖励结果,但我们真正要奖励的是人们努力奋斗的过程。
  • 快乐是王道。快乐的人可以做出更明智的决策,更有创造性,跳槽可能性更低,而且更容易取得出人意料的成绩。
  • 量化快乐。仅仅感觉好是不够的。你要对其进行量化,并将其转化为切切实实的业绩。其他指标衡量的是历史情况,而快乐有助于帮你预测未来。
  • 每天进步一点点,并加以衡量。在每个冲刺阶段结束时,团队应该找出一个有待改善的地方,在下一个冲刺阶段将其作为最重要的事项予以解决,每天都进步一点点,从而使团队成员更快乐。
  • 保密是毒药。团队运作不应该有秘密。每个人都应该知道一切,包括薪水和财务信息。只有那些想着谋求私利的人才会格外重视保密。
  • 工作要透明化。在办公室摆一张白板,上面列明所有的待办事项、在办事项以及已完成事项。每个人都应该去看,也应该每天更新。
  • 自主感、掌控感和目标感会让人感到快乐。每个人都
  • 想掌控自己的命运,都想更好地完成工作,并追求一个高尚的目标。
  • 刺破快乐泡沫。不要快乐过头,以至于开始相信自己的谎言。一定要将你的快乐与业绩做对比。如果存在脱节,就要准备采取行动了。志得意满、不思进取是成功的敌人。

找到最有价值的20%

  • 如果你的交付时间只有竞争对手的1/5,但价值却是对手的5倍,会怎么样呢?你肯定胜券在握。
  • 如何确定各个事项的优先顺序呢?首先,找一个既明白产品前景,又明白各个事项的价值的人。在Scrum的语境下,我们将这个人称为“产品负责人”。
  • 在Scrum中,共有三类角色:开发团队成员,负责开展具体的开发工作;Scrum主管,协助开发团队把事情做得更好;产品负责人,决定应该做什么工作,拟定待办事项清单的内容,最重要的是,确定各个事项的优先顺序。
  • Scrum主管与团队成员的职责是确保工作快速完成,看看是否能进一步加快速度,提高效率,而产品负责人的职责是把团队的效率转换成实实在在的价值。与Scrum主管相比,产品负责人不仅需要具备更多专业知识,还必须具备以下4种特点。这是我多年的总结。
  • 第一,产品负责人需要在相关领域内掌握丰富的专业知识。我这么讲,有两个方面的意思。一方面,产品负责人应该对团队目前正在采用的流程具有足够的了解,只有这样,他才能知道哪些事情能做,哪些不能做。另一方面,只有了解当前正在采用的流程,产品负责人才能知道哪些事情是真正有价值的。
  • 第二,产品负责人必须获得自主决策权。管理层不应该干涉团队运作,产品负责人应该被授予决策权,才能自行决定产品的前景与如何实现前景。这一点十分重要,因为产品负责人会面对来自公司内外利益相关者的巨大压力,他们必须拥有坚持做下去的权力。产品负责人应该为结果负责,但是他们要有自己的决策权。
  • 第三,产品负责人必须有足够的时间与团队成员接触,向团队成员解释清楚需要做什么以及为什么要这么做。虽然产品负责人负责制定待办事项清单,但必须与团队成员经常沟通。团队成员的专业知识往往可以为产品负责人做出决策提供有益的帮助。产品负责人必须值得信赖,言行一致,易于沟通。如果团队成员无法接近产品负责人,那么他们就不知道自己该做什么,或者应该按照什么样的优先顺序落实待办事项。团队成员依靠产品负责人了解产品的前景,也依靠产品负责人获取市场信息。如果产品负责人缺位,那么整个流程或将无法进行下去。我之所以很少建议首席执行官或其他高管担任产品负责人,一个原因就在于此。他们往往很忙,没时间接触团队成员。
  • 第四,产品负责人必须为价值负责。在商业语境下,最重要的就是收益
  • 要记住的一件关键事情是,优先顺序处在不停的变动之中,这一周的顺序是正确的,但未必适用于下一周,因为你面临的环境可能已经改变,你也可能了解到了新情况,或者发现某些事情变得简单、某些事情变得困难了。因此,在每个冲刺阶段之后都会频繁出现待办事项清单上优先顺序改变的情形。关键是要认识到不确定性因素的存在,充分接受自己目前确定的优先顺序和创造的价值仅仅在当前是相对正确的,它将会持续不断地改变。
  • 无论生产什么,你都希望尽快把它送到用户手中,甚至在开发出那20%的功能之前就想这么做。你要发布的东西至少能提供一点价值,我将其称为“最简化可行产品”。它是你首次展示给外界的东西。它必须具有多少效用呢?它最起码具有一定的使用价值。虽然对开发人员而言,给用户提供“最简化可行产品”似乎有些尴尬,但你应该尽快把具有基本使用功能的产品展示给公众,以便获取反馈意见,从而改进自己的决定,调整待办事项的优先顺序。“最简化可行产品”相当于0.5版的产品,比如,能照相但不具备对焦功能的相机、只有两张椅子的餐厅以及把疫苗送到你想帮助的100个村子中的5个。“最简化可行产品”并不是完美无缺的,有时候甚至令人发笑,但它是有意义的。
  • 它的意义就在于获取用户的反馈意见
  • 对于任何一个成功的企业而言,风险管理都居于核心地位。Scrum能够为你降低失败风险。三个最常见的风险类型是市场风险、技术风险和财务风险。换句话讲,就是:人们需要我们制造什么?我们能造出来吗?我们做出的产品能卖出去吗?
  • Scrum能够帮助企业迅速回答一个关键的问题:我们做这个产品能挣到钱吗?渐进式迭代能帮你发现客户重视什么,以及客户愿意为什么样的产品掏腰包。即便第一次猜测失误,你也可以立即根据客户反馈的意见做出调整,你的损失最多是在前几个冲刺阶段中投入的时间与精力。相比之下,一种糟糕的情况就是你投入数百万美元,制造了一个庞大复杂的产品,最后却发现人们虽然喜欢这个产品,但盈利还不足以抵消制造成本。
  • 首先是拟定待办事项清单和组建团队。想一想你的产品或服务的前景如何,然后着手把实现这个前景而必须做的事情分解成诸多小的待办事项。这个时候,待办事项清单不需要太长,只要能维持一个星期就足够了。等到团队成员开始第一个冲刺阶段、举办每日立会之际,你就可以利用这些时间拟定充足的待办事项清单,以便让团队在之后两个冲刺阶段中有事可做。但是,你要时刻盯着待办事项清单,因为随着团队开发工作的推进,效率会越来越高,他们可能会创造出你认为不可能的成果。
  • 作为产品负责人,你要制作一张工作路线图。你认为这个季度能取得多少成果?你希望今年一年取得什么成果?要记住一个重要的事实,即这只是你当下的想法,没必要列得太详细,只要做出评估就可以了。你并不是在为团队制定一份具有约束力的合同,而是在梳理自己对于今后工作的想法。相信我,情况肯定会发生变化,而且可能变化很大。
  • 拟定待办事项清单,检查两遍。先列出一个项目中可能涉及的所有事项,然后确定优先顺序,把价值最高、风险最低的事项置于最优先的位置,然后依次往下列。
  • 产品负责人。产品负责人的职责是把美好的愿景转变成待办事项清单。他必须懂项目,懂市场,懂顾客。
  • 领导者不是上司。产品负责人明确要做哪些事,以及为什么要做。至于如何落实以及让谁落实,则交给团队成员决定。
  • 观察—导向—决定—行动。战略上着眼于全局,策略上迅速行动。
  • 恐惧、不确定性及疑惑。主动出击胜过被动挨打。了解竞争对手的“观察—导向—决定—行动”循环,当他们陷入疑惑之际将其打败。
  • 花冤枉钱与免费变更需求。如果你发现某个新的待办事项有价值,那就做吧。要做好心理准备,你很可能需要变更既定的待办事项,如果有必要,就删掉一个需要耗费同等精力的既定待办事项,用新的待办事项取而代之。有些事项,你一开始觉得有必要,实际上可能并非如此。

未来我们如何工作

Scrum就具有这个作用。它帮你制定目标,帮你系统性地、一步一个脚印地实现目标。更重要的是,它还能帮你发现障碍。 对于那些不愤世嫉俗的人而言,Scrum是他们的行为方式。Scrum不是无所事事地期待世界变得更美好,也不是屈服于当前这个世界,而是一种务实的、可以付诸实施的方法,帮助你改变现状。

附录

Scrum实践步骤

  1. 挑选一位产品负责人。这个人必须知道自己带领的团队需要做什么、制造什么产品以及取得什么成果,必须全面考虑到风险与回报、什么具有可行性、什么能做以及他们对什么富有热情。
  2. 挑选一个团队。真正做事的是谁?这个团队必须能够落实产品负责人的愿景。团队规模宜小不宜大,一般3~9人较为合适。
  3. 挑选Scrum主管。主管为Scrum过程负责,负责培训团队其他成员,确保Scrum得到正确运用,帮助团队消除一切障碍。
  4. 拟定待办事项清单,并确定优先顺序。这个清单高屋建瓴地列出为了落实产品负责人的愿景而需要完成的所有事项。在产品的整个研发过程中,这个清单一直存在,并有所演变,相当于产品研发的“路线图”。无论在任何时间,要想知道一个团队要做的所有事项(按照优先顺序排列),待办事项清单都是唯一具有决定性的参考依据。待办事项清单只有一份,意味着产品负责人从头到尾必须不断地对优先顺序加以调整。产品负责人应该与所有利益相关者和团队进行协商,以确保产品待办事项清单既能反映用户的需求,又不会超出团队的能力范围。
  5. 改进和评估待办事项清单。让负责实际开发工作的团队对待办事项做出评估,是一个至关重要的环节。团队应该审视每个事项,看看是否切实可行。但要完成这些事项,现有的信息足够吗?该项目是否细分到了可以评估的程度?团队是否具有了每个成员都能接受、用于评定一个事项已完成的标准?一个事项能否带来显著的价值?各个事项在完成后必须产生能够用来展示的成果,如果这个成果能交付给客户试用会更好。不要用所需小时数去评估,因为人们根本不擅长做出这么精确的评估。要用相对难度去评估,比如,难度是小、中或大。更好的方式是采用斐波那契数列的数字(1,2,3,5,8,13,21……)
  6. 冲刺规划会。这是第一场Scrum会议。团队成员、Scrum主管以及产品负责人坐到一起,规划冲刺的内容。冲刺周期一般是固定的,不超过一个月,大部分是一至两周。团队要从待办事项清单的顶端着手(即从最重要的事项着手),看看一个冲刺阶段中能完成多少。如果团队已经开展过好几个冲刺,那就记录下每一个冲刺完成的事项的“点数”。这个数字相当于团队的速度。Scrum主管与团队成员应努力在每一个冲刺阶段中提高这个数字。团队成员和产品负责人也可以借助“点数”确保每个人都能了解待办事项对于落实最终愿景的作用。对于冲刺目标,即在这一冲刺阶段完成哪些事项,所有人都应该形成共识。Scrum的基石之一在于,产品负责人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。在冲刺的过程中,没有人能够变更冲刺内容。团队必须在冲刺阶段自主工作。
  7. 工作透明化。在Scrum中,最常见的做法是准备一块白板,上面分成三栏:待办事项、在办事项、完成事项。把待办事项写到便笺纸上,随着进度的推进,将相应的便笺纸转移到其他栏目。让工作透明化的另一个工具是燃尽图。在这张图中,一个轴代表工作量,另一个轴代表时间。每天,Scrum主管都会记录待完成的剩余点数,而后画在燃尽图上。理想情况下,该图是一条向下的曲线,随着剩余工作的完成,“燃尽”至零
  8. 每日立会。这是Scrum的活力源泉。团队每天在固定时间进行内部沟通,时间一般不超过15分钟,且站立进行,Scrum主管向团队成员提出下列问题:
    1. (1)你昨天做了什么去帮助团队完成冲刺?
    2. (2)今天你打算做什么来帮助团队完成冲刺?
    3. (3)什么因素阻碍了团队的前进之路?Scrum主管要问的问题就是这么多!整个会议的内容就是这么多!如果会议时间超过15分钟,那就说明开会的方法存在问题。这样做的意义在于让整个团队清楚地知道在这一个冲刺周期内各项任务的进展。所有任务都能按时完成吗?有没有机会帮助其他团队成员克服障碍?团队的任务都不是自上而下分派的,而是自主决定、自主完成的,也不需要向上司做详细的汇报。Scrum主管负责消除团队面临的障碍。
  9. 冲刺评估或冲刺展示。在冲刺结束前,给产品负责人展示成果,也就是展示哪些事项可以挪到“完成事项”那一栏,并接受评价。这是一场公开的会议,任何人都可以是参与者,不仅仅包括产品负责人、Scrum主管及开发团队,还包括利益相关者、管理人员与客户。团队应该只展示那些符合“完成定义”的事项,也就是全部完成,不需要再做工作就能交付的成果。这个成果或许不是完整的产品,但至少是一项完整的、可以使用的功能。
  10. 冲刺回顾。团队展示之前冲刺中创造的成果,也就是展示已完成的事项,看看可以为顾客传递哪些价值,并征求反馈意见,大家就会坐下来想想哪些事执行得很顺利,哪些事应该做得更好,以及在下一个冲刺阶段中可以做出什么改善。那么,如何发现流程中的哪个环节需要改善呢?
    1. 要让这个冲刺回顾过程有效,团队需要相互信任。必须记住关键的一点,即大家不要从团队中找一个人当成责备的对象,而是要将注意力集中在流程上,认真分析以下几个问题:为什么会发生那件事?为什么我们当时忽略了?怎样才能加快工作进度?作为一个团队,大家要对自己的流程和结果负责,要集思广益,共同寻求问题解决之道。这一点是至关重要的。
    2. 与此同时,团队必须有勇气把真正的障碍摆到台面上来,这样做是为了解决问题,而不是为了指责某个成员。团队成员必须能认真探讨问题,并虚心接受他人反馈的意见和建议,以便寻求问题解决之道,而非只想着为自己辩解。
    3. 然后就进入了关键环节。团队确定一个最值得改善的地方,将其设定为下一个冲刺阶段的首要任务,当然,改善的结果必须通过“验收测试”。你如何证明自己成功地完成了改善?你需要用具体的、可操作的方式界定什么是“成功”,这样,在下一个冲刺回顾会议中才能很快判断出是否已完成改善。
  11. 上一个冲刺阶段结束之后,立即开始新的冲刺阶段。利用在之前的冲刺过程中,团队在消除障碍、改善流程方面积累的经验。