敏捷学习指南-带你从入门到深入

Page content

这是我11月发表在CSDN极客头条的文章。

什么是敏捷

敏捷(Agile)是一个全球性的运动,它正在改变我们的工作环境。敏捷这个词是2001年17位软件行业的大牛在一起讨论得出的(参见敏捷宣言),目前敏捷正在扩展到各行各业,而不是仅仅限于软件行。

敏捷到底是什么?我们看看下图(感谢Lynne Cazaly总结的40多种敏捷方法和框架):

图片描述

图1 40种敏捷方法和框架

上图所示,敏捷中有40多种方法和框架,超过70多种的具体实践,那么如何把这个概念介绍给他人呢?Cockburn博士(Alistair Cockburn)曾经是这么定义敏捷的:

敏捷是尽早频繁的交付商业价值。(Agile is to deliver business value early and frequently)

下面我们一起来看看,为什么我们要敏捷。

为什么要敏捷

了解敏捷之前,我们可以一起来看一下为什么我们要进行敏捷。敏捷可以帮助组织或公司来应对持续不断的变化,来应对这个VUCA(Volatile, Uncertain, Complex, Ambiguous)的世界。解决快速变化的唯一方法就是拥抱敏捷。由于软件变得越来越重要,敏捷也逐步变成企业转型的关键。

在敏捷的组织内, 自组织团队通过短期迭代(通常为1-3周)的方式快速交付客户价值。小团队都采用相同的节奏进行交付,因此大型的复杂产品开发也可以由多个小的自组织且端到端的特性团队来完成。敏捷是更聪明得工作,而不是更苦逼得工作。敏捷不是用更少的时间完成更多的工作,而是用更少的工作产生更多的客户价值。

敏捷入门

在我的培训课中,通常有学员问“ 一个人可不可以敏捷?” 我的回答是“必须可以”。下一个紧接着的问题就是“怎么做”? 回答这个问题之前,我们一起回顾下敏捷的基础:透明、检视和调整。根据这三个基础,我们逐一来看怎么做。

透明。 人类大脑的美妙之处在于思考,而不是记忆。你是否有过某件物品突然之间就是找不到了?你是否碰到过有个人的名字就在嘴边,说不出来了?这就是我们通常说的大脑短路,忽然想不起来了。那么对于这些需要记忆的信息,我们需要做的是把它写下来,存储到一个便于查找的地方。比如我常用的几个工具是:笔、本子、印象笔记。笔和本子记录平时的各种想法、学习笔记等,还有一个专用的本子记录行程,印象笔记记录不错的网页和图片。这些信息对我来讲都是透明可视化了,我清楚地记得它们的位置。

检视。检视指的是不仅要记录,还要不断回过来看一下。做了一些尝试,记录一些内容,回过头来看看,通常会冒出一些新想法。这些新的想法也可以补充到笔记上去。

调整。做到透明和检视还不足够,还需要不断调整。这个调整有一个重要的动作指的是反思。回顾反思之前我做过的事情,哪些地方做的非常不错,哪些地方还可以提高,从中学到了什么,以后我可以做出哪些改变。

一旦掌握了上述的三个基础,个人开始就变得敏捷了,也变得更加开放和包容了。

我们最常说的敏捷,指的是团队级别的敏捷。透明,把团队的进度公开可视化。检视,团队不断回顾检视潜在可交付的产品增量。调整,团队不断反思如何改进工作方法和工作流程

同理,组织或者企业层面的敏捷也是按照同样的思路进行。

敏捷基础

敏捷的学习可以参考日本合气道的修炼之道,守破离。在学习敏捷之前,可以先选择一种敏捷方法或框架,如Scrum。然后守破离。守,指的是完全遵守Scrum框架的规定,不去进行调整或定制。要的是一丝不苟的练习。这个阶段至少6-10个迭代。破,可以对Scrum进行调整(打破框架),这个必须是在团队进行了大量的练习之后。一次一个地方进行调整试验,然后总结。然后再调整再总结。离,指的是根据实际情况,采用适合当时情况的措施,做出合适的应对。这个时候已经不是Scrum,也不是极限编程这样的方法或框架。 而是心中时刻留存的是敏捷的精髓,即敏捷宣言。以及敏捷的基础,透明、检视、调整。

常见的敏捷方法和实践包含:Scrum极限编程看板方法以及持续集成

敏捷核心

敏捷核心的内容包含:敏捷宣言,以及敏捷原则,敏捷的心态(敏捷基础)和敏捷价值观。

敏捷进阶

敏捷入门之后,可以在这条路上继续前行。本部分一共包含三个方面:敏捷知识、教练知识、引导知识。上述每个方面的知识,从入门到精通至少需要七年时间(参见李笑来所著的《新生—七年就是一辈子》)。

专业知识:敏捷

图1所示的敏捷包罗万象,包含40多种方法,那么如何去学习敏捷专业知识是一个复杂的事情。建议可以从其中的1-2种方法或框架入手,如当前最流行的Scrum框架。Scrum入门可以参考官方提供的《Scrum指南》 ,想要全面学习Scrum,可以参考《Scrum精髓》。

学习的方法有很多种:如体验、观察,这些是基础的学习方法。举个例子,记得有一次去北戴河度假,有段时间流行自己蒸海鲜,我们买了一堆螃蟹回去。丈母娘自告奋勇帮忙洗海鲜,忽然我听到一声惨叫,哎哟哎哟。我赶忙跑过去看看发生了什么事情。原来丈母娘的大拇指被螃蟹给夹住了。仔细询问后得知,丈母娘把绑着螃蟹腿的皮筋解开了,想要放开洗。我相信丈母娘以后会非常小心螃蟹的钳子。这种学习的方式叫做体验,你亲身体验了就会记忆深刻。当时我老婆站在附近,她也看到这件事情。那么她也学到了要小心螃蟹钳子。这种学习叫做观察。对应到如何学习敏捷(具体说是Scrum),最好的方法是体验,在自己的团队中开始尝试采用Scrum。如果实在没有环境,也可以采用观察的方法。找一个正在采用Scrum的团队,去观察团队是怎么做的。

还有两种高级的学习方法是阅读和反思。阅读是拓展知识非常有效、非常快速的一种方式。世界上的事物有千千万万种,我们不会有那么多时间和精力一一进行体验。因此我们可以通过阅读优秀书籍来进行学习。拓宽自己的眼界和知识,这也是为什么敏捷当前包罗万象。另一种高级的学习方法是反思。曾子 曰:吾日三省吾身。每天都需要反思一下,那么反思怎么做,都需要反思什么。

对于个人反思,可以每天睡觉前花5-10分钟思考以下三个问题:今天我什么事情做得非常棒?今天有什么事情我可以做得更好?今天我学习了什么新的知识?

对于团队或组织的反思,可以通过定期(如每周、每 月)组织回顾会议来实现。组织一次回顾会议可以参考这个步骤:预设会议基调,收集数据,激发灵感,决定做什么,总结收尾。具体每个步骤中的环节,可以参考《敏捷回顾》。

专业知识:教练

什么是教练?专业教练作为一个长期伙伴,旨在帮助客户成为生活和事业上的赢家。教练帮助他们提升个人表现,提高生活质量。教练经过专业的训练,来聆听,观察,并按客户个人需求而定制Coaching 方式。他们激发客户自身寻求解决办法和对策的能力,因为他们相信客户是生来就富于创意与智慧的。教练的职责是提供支持,以增强客户已有的技能,资源和创造力——(摘自百度百科)。

为什么学习敏捷,还需要学习教练知识。让我们一起看下敏捷宣言中的“个体与互动高于流程与工具”。这里个体与互动,强调的就是人以及人与人之间的互动(即团队)。如何激发个人表现,改善个 人的生活与工作,对于这些教练可以有很大的帮助作用。针对具体的教练技术和流派,在本文就不一一详述,有兴趣的朋友可以网络搜索一下,或者参考ICF(International Coach Federa)官方网站

专业知识:引导(facilitation)

什么是引导?引导是指通过创造他人积极参与,形成活跃氛围,从而达到预期成果的过程。这种成果可能简单到学习一项新技能,也可能复杂到解决一个跨组织和部门的复杂问题。总之,引导的作用就在于积极引导他人主动参与的互动过程。

在团队的日程工作中,团队会议是最常见的活动。那么如何形成活跃氛围,如何帮助团队高效组织会议,如何能够达成预期,如何解决跨部门的复杂问题等等。这些问题都可以通过引导来进行有效的解决。如《敏捷回顾》 一书中,就提到了很多引导的技巧。学习引导还可以参考《引导》这本书。引导进阶可以参考《引导的秘诀》。

敏捷实施中常见问题

这个部分我将列出一些敏捷实施中非常常见的问题,可能你已遇到过,也可能还没有遇到。不过没关系,我们可以一起来研究探讨如何应对这些问题。

小提示:以下提到的几个常见问题的应对方案一般不限于一种,要根据不同的环境和组织进行相应的调整,以免对读者产生误导,本文暂不做解答。如果碰到类似问题的小伙伴想要了解的话,可以给我写邮件交流:bob@bobjiang.com。

  1. Sprint进行到一半的时候(比如两周的Sprint,过去了一周),总监要把团队中的一名骨干成员调走到另一个重要的项目。作为Scrum Master,碰到这样的情况,你会怎么办?请列出具体的解决方案以及原因。
  2. 每日站会上,团队成员A不关心其他人的内容(和其他人的任务没有交集),也不认为有必要关心。作为Scrum Master,你会怎么办?
  3. 连续3个Sprint团队都只完成了承诺的Product Backlog Item的一部分(即没有完成计划会上的承诺),作为ScrumMaster,出现这个情况,你会怎么办?

欢迎访问:CSDN敏捷知识库,全面系统展现敏捷各知识点及内容资源