文中所引例子均来自Jeff Sutherland所著《敏捷革命》一书
一个随处发生的故事的前半段
规划是有用的,而盲目地遵循规划则是愚蠢的
9.11后美国独立调查委员会认为情报人员没有精确地获取他们应该分析的情报是未能及时制止恐袭的发生的原因,而其中关键的一点是先进信息技术的缺乏。这一结论推动了美国联邦调查局在2005年启动了一个名为“哨兵”的项目以改造他们落后的信息处理系统,FBI找到了著名的洛克希德·马丁(以下简称洛马)公司来完成这一任务,洛马公司花了好几个月来排定所有的需求并绘制出精美的甘特图,其中包含了整个项目中的每一个步骤、里程碑事件以及交付日期,一切看上去都是那么的专业、完美。
很不幸,精美的图表并不能保证一切按计划进行,洛马公司又犯了他们经常犯的老毛病——超支和延期,到2010年洛马公司已经花光了这个项目的4.05亿美元预算资金而开发进度只完成了一半,其结果就是FBI不得不将该项目回收自行开发,这个结果意味着一个巨大的挑战:要在剩下不到20%的时间内,用不到1/10的预算,完成另一半工作。
发生在这些知名的组织、企业身上的故事只不过是我们这个庞大的软件产业中每天发生的类似故事的缩影,当我们在创造性工作中越是希望严格“微操”每个过程的时候,我们自身就变得非常脆弱进而轻松地被变化击倒。这并不难理解,因为传统上项目管理都需要实现两个目标:可控性和可预测性,而不确定性和变化性便是这个目标的固有敌人,所有的努力都是为了消除不确定性和变化性所带来的破坏,因而以甘特图为代表的管理工具才会被创造出来。
甘特图,这个发明于1910年左右的图表,似乎天生有一种魔力,它能把所有的工作全部清晰地列出来从而让任何一个看过它的人都留在深刻的印象,满足每个人可控欲望进而产生一种错觉,只要依靠这张图就能“一切尽在掌握”。这类工具唯一问题就是它们往往是错误的,无法真正得到落实,因为它拒绝将变化作为一个普遍发生的事实加以看待,可“变化”才是这个世界唯一不变的真理。更致命的是变化还在不停地加速,当变化是低速发生时,这类工具还能够进行控制;但当变化速度加快时,这类工具就暴露出响应滞后、调整缓慢的问题,由于越来越多不在规划范围内的情况出现,导致控制力越来越弱,“脱节”就成了直观感受。
故事的后半段
每过一小段时间就停一停手头的工作,检查一下已经完成了哪些任务,看看这些人物是不是自己应该做的,看看有没有更好的方法。
FBI回收项目后,面对洛马留下的烂摊子,从FBI探员到国会议员没有一个人相信“哨兵”能够在更少的资金投入和更短的时间内上线,项目主管约翰逊和弗格汉姆决定抛弃原有的开发方式,尝试新思维引入Scrum。首先给自己提出了一个重要问题,哪些任务能够带来最大价值,哪些就应该优先完成;其次他们明确了哪些障碍会拖累进度,必须将它们消除。有了这些信息后,Scrum就可以开始发挥作用,短周期反馈迭代式交付,周期性地“检查与调整”优先级以及障碍,最终让“哨兵”系统在2012年7月成功上线,“哨兵”系统彻底改变了FBI落后的情报沟通与分享能力。
这个故事的前半段结局和后半段有着天壤之别,差别在于两者做事的方式。Scrum之所以有效,原因很简单,因为它看到的是人们实际上怎么工作的,而不是他们嘴上宣称自己是如何工作的。就如同Scrum的本意是指团队在球场上通力合作,在场地内传球一样,这个过程不能只停留在教练的战术板上,而需要球员们真正地认真配合、信念一致和目标明确。
这样看来Scrum的本质很简单,即无论你什么时候启动一个项目,为什么不经常检验一下自己正在做的事情,看看是否朝着正确的方向前进?结果是不是大家真正希望看到的?是否有什么办法能改善目前正在做的事情?如何才能做得更快更好?存在哪些潜在的障碍?
简单的说就是在你行动的过程中需要不断审视你与目标之间的差距,从而不断地调整寻求最优结果。这种审视既看向未来(规划还要做什么)也注重过去(反思哪些更应该做)。Scrum中所有的行为都是为了审视,比如每日站会总要回答三个问题“为了达成目标,我做了什么”、“为了达成目标,我还要做什么”以及“我有什么障碍”;再比如Scrum的展示环节也是让所有人(不单单是开发还有需求方)都能了解到现实与目标之间的是否存在差距。更重要的是Scrum通过冲刺将审视的间隔变得更短,将审视变成周期性行为,先规划要做什么,然后执行,接着检查成果是否符合预期,然后根据检查结果调整做法,重复这种循环,不停地实现下一次总比上一次做的更好的结果,同时消除了闭眼走到黑或者想改来不及的问题。