上个月刚刚完成今年公司内部的Scrum技术体系的全部培训课程。讲了一年多的敏捷开发培训课,我也不敢说对敏捷开发认识有多深刻。敏捷是个大命题,仅在软件开发领域就包含多种方式,熟悉的有极限编程,Scrum开发体系,各种驱动开发,甚至包括六西格玛等等。敏捷开发最早起源是20世纪30年代。美国的一些软件项目,可以说软件领域是敏捷的原生地。到2001年敏捷宣言正式发布,敏捷在软件开发中已经日趋成熟。敏捷并不是一个新概念。
其实敏捷的思想并不仅仅局限在软件领域,敏捷本身的特点就包括灵活性,是完全可以推广的各个领域的。贝琳达的《敏捷主义》就是把敏捷的概念从软件开发延伸到其他领域的好范例。
贝琳达从介绍敏捷思维到具体分析敏捷方法的应用最后推广敏捷文化。把原本工具化的方法论从人类解决问题的思考方式开始分析,逐步灌注敏捷的思想。
我讲课的时候,没接触过敏捷开发的人,很多觉得敏捷不就是快吗?架势好像说:告诉我怎么能快起来,提高效率就成。其他的,I don’t care! 其实,有句俗话叫心急吃不了热豆腐,敏捷也不是一蹴而就的,一个敏捷团队并不是按照规定步骤123就可以迅速建立起来的。就软件开发而言,培养一个成熟的敏捷团队,在人员固定的基础上,还要至少半年的时间磨合才能真正发挥高效率。所以指望看一本书,学一点儿概念就能瞬间以火箭的速度看到效果,这做不到。贝琳达的书中,如何实施敏捷的方法有介绍,分门别类的把敏捷常用的术语和方法都解释得很详细,但重点还是讲思想,你有了这个敏捷的意识才能产生敏捷的行动。
那么,究竟什么是敏捷?
最简单粗暴讲:快!这个快是应对变化的反应速度快。这个唯一不变的就是变化的社会里面如何应对各种变化?不变应万变的方法是实施敏捷。敏捷的思维逻辑就是接受变化,在学习中积累提高,反复摸索。应用在软件行业中的这套计划,迭代,反馈,持续学习的方法也就是敏捷思维的具体体现。
再说,如何实现敏捷?
敏捷十步走:
1.定义范畴:属于范围管理的范畴,先确定什么是要做的,也是制定计划的前提,把大目标分解成用户故事来描述,尤其要定义成功的目标。
2.估计价值:运用扑克牌或者衬衫尺码的方法,团队讨论,加深对用户故事的理解,同时评估实现的成本包括人员和时间。
3.按优先级安排工作:可以借助MoSCow模型对人文、活动的重要程度进行排序,这个评估的过程会明确任务的商业价值。这些排好序的任务是下一步计划的依据。
4.生成最简可行性产品:开始不追求大而全,而是最快的速度完成核心的产品,或者可行性方案,后续在基于它做完善。
5.使用敏捷仪表盘监督:工作过程中使用由不同状态(包括将要做,正在做,已做完三十种状态)工作项构成的仪表盘跟踪工作进度。
6.采用精益通道:基于敏捷仪表盘的工作项,建立可视化的沟通渠道,共事的团队成员之间保持沟通透明。
7.消除和降低无效率行为:结合精益管理提高效率,以最小资源投入,包括人力、设备、资金、材料、时间和空间, 创造出尽可能多的价值。
8.短期冲刺,及时纠偏:设定短期的时段做冲刺单元,分阶段的完成任务。每个阶段结束,及时修正,应对需求变化。
9.建立有效的测量手段:分别从“是不是在做正确的事?”和“是不是在正确的做事?”两方面出发,关注实实在在发生的事情,以创造的价值为核心订立度量指标。使用燃尽图等工具跟踪任务完成速度。
10.定期反思:每个阶段借结束,都进行反思,讨论什么做得好,什么做得不好,怎么改进。在不断的反思中进步。
最后,敏捷主义的意义何在?
对于个人而言,也许敏捷的方法有助于提升自我认识,管理好自己的日常生活;对于公司而言,敏捷强调的是团队合作,实施敏捷,培养优秀的团队,最终形成学习型组织。
武功讲求“唯快不破”,商场如战场,时刻准备着迎接改变,才能先发制人。而这也是敏捷在商业上的价值体现。