敏捷无敌之DevOps时代
上QQ阅读APP看书,第一时间看更新

第04章 兵不厌诈:我们的第一次冲刺

接下来的两天,阿捷不断地寻找并学习着有关Scrum的资料,充实着自己,阿捷感觉自己对Scrum越来越有信心了,Scrum可真是一个好东西,以前怎么就没发现呢?

为了能够更好地实施Scrum,阿捷决定周一先和大民谈谈,大民是这个团队中资历最老的成员,也是最早加入Agile中国研发中心的员工之一,当年还面试过阿捷。大民对整个公司、整个部门、整个项目了如指掌。在阿捷升为项目经理后,大民接替了阿捷负责TD项目的产品整体架构设计,袁朗提交给美国的TD设计文档就是阿捷和大民一起来完成的。对于是否能够在项目组里实施Scrum,他的意见是非常重要的。

周一午饭时间,阿捷走到大民的格子间,大民正在用UML(统一建模语言)画着用例图。

“Hi,大民,吃饭去。”

“哦,这么快啊!好,我存一下盘。”

两人在餐厅中找了一个靠窗户的座位,这里不仅人少,还能看到窗外的风景。

“大民,你觉得目前在咱们部门,咱们做的这些项目,最主要的问题是什么?”

“嗯……这个问题啊!我觉得吧,首先最主要的就是人祸!你看,咱们一开始推行CMMI,前两年公司业绩不好,项目停了,QA团队都给裁了。然后呢,又搞什么六西格玛,据说是因为看到人家通用和摩托搞得如火如荼,咱也想学学,这不明显是邯郸学步嘛!六西格玛这东西必须得从顶向下才行,只有上头重视了,都是黑带、绿带了,咱们下面的人才能落实。你看看咱们怎么搞的?从下往上,要求每个员工都必须通过白带,那得花多少力气啊,好容易员工都差不多是白带了,上面领导还什么带也不是呢,你说怎么搞?那会儿我就说咱们的六西格玛,没戏!”

“果然没几天,上面就闭口再也不提六西格玛了。”

“这不,去年,咱们部门又说自己搞什么RUP(Rational Unified Process,统一软件开发过程),有老外通过Webex(一种在线视频软件)视频,搞了一个远程培训后,又没有结果了!”

“总结下来,这几年净瞎折腾了。一朝天子一朝臣,研发的领导变来变去的,政策没有一个连续性,都只关注短期利益,没人愿意做长期投资,很难的!”

大民愤愤不平地说着,餐盘中的饭菜没见少,但热气已悄然散去。

“是啊!从我进到公司,咱们部门就一直朝着收支平衡的目标努力,更别说赚钱了!”阿捷附和着。

“另外呢!有些项目经理简直就是混事,专业技能太低,就知道天天瞎叫唤,我人手不够啊!缺乏资源啊!你看看周晓晓,前前后后,这几年也做了不下6个项目了,他参与或者领导的项目,哪一个不都是因为老外不满意,最终给移交回去了?往中国转移一个项目容易吗?那得花Charles多少精力啊?你看他手底下的老员工,走了多少了?那些走的人可真的是精英啊!别说老外不满意,我都看不过去!要我是老板,早就把这种人开了!”

“嘘!小点声。”阿捷赶紧看看四周,还好没什么人,稍微远点的,也没有人注意他们。

“哼!没关系!”

“抛开这个大环境不说,单就咱们Team,你觉得问题在哪里?”阿捷赶紧打圆场,大民的直脾气可是部门有名的!

大民沉思了一下,说:“其实吧,咱们这个Team处的位置真的挺尴尬的!首先,国外研发老大就不怎么重视咱们,因为咱们现在做的TD产品将来是直接面对中国客户的,除了中国以外,短时间内难以为公司赢得海外订单。同时呢,咱们项目的核心都是从国外转过来的。说好听点,是在做咱们Agile公司自己的东西,说直白点,其实就是外包!现在,咱们还得不到老外的信任,咱们做什么,人家老外都要评审好几遍,中间还要不断地检查。感觉就是有项目警察一样!这叫人怎么能有动力呢?”

“你做好了,是应该的,做不好,肯定要挨批!”

“同时呢,现在的客户吧,最麻烦……给你提需求的时候,一点儿不明确。你跟他确认吧,他又模模糊糊,还不断地变来变去,没法做。而公司内部呢,没有一个统一的流程来管理和控制需求,不但不好跟踪,而且出现争议的时候,没有一个决策团队按照决策流程,给出快速的决策。大家相互扯皮,许多项目时间就白白耽误了。”

“所以我觉得,如果真想做好这个项目,就得从需求入手,从源头上解决问题。”

“嗯,跟我想的差不多,你有什么建议?”

“其实,RUP的思想还是挺适合咱们的,就是通过不断地迭代,不断地发布,迎合并接受变化,而不是拒绝变化,毕竟客户是第一位的!但是呢,RUP有点儿太复杂,不太适合咱们的项目。”

“是啊。你觉得Scrum怎么样?”

“Scrum?没听说过。”

“嗯,Scrum是一个敏捷软件开发框架,是一个非常轻量级的开发流程……”阿捷给大民简单明了地讲了一遍Scrum。

“听起来不错,挺适合咱们的!”大民两眼放光地说。

“那我们也搞一搞?”

“行!我支持!咱们是该变变了,天天这个样子,被人揪小辫子过活的日子不舒服,怎么也该做出点事情来,让瞧不起咱们的人闭嘴!”大民非常夸张地用手做了一个掐脖子的动作,让旁边其他部门的同事看得莫名其妙。

“快一点了,赶紧吃饭吃饭,要不然餐厅来收咱们的餐具啦!”

两人三下五除二,吃完了剩下的东西,乘电梯回到楼上。

下午3:00,阿捷把所有的人都召集到了“黑木崖”会议室。

“在正式讨论问题之前,我准备了一个游戏!”阿捷今天显得特别兴奋,而大家一听到做游戏,兴致立马高涨,燃了起来。

“好啊!做啥游戏?”小宝已经迫不及待了。

“很简单!游戏有两个角色,一个是‘老板’,另一个是‘员工’,所以我们首先需要两两组成一组,要做‘老板’的举手。”

“哈哈!我做我做!”小宝第一个举手,“终于有机会做老板喽!”

接着是阿紫略显迟疑地举起了手。

“嗯,那看来阿朱、大民只能接着做员工了,这么好的机会就轻易放过了啊!”阿捷开玩笑说道。

阿朱微微笑了笑,未置可否,大民则笑着说:“嗯,做员工多好啊,不用操那么多心。小宝啊,等你做上老板的位子,没准你就不想再做了。”

“哈哈!我才不怕呢,这次你做我的员工吧,反正你这么愿意做员工!”小宝对当老板还是非常向往的。

“那好!阿朱就只能做阿紫的员工了。”阿捷看了一下会议室,觉得人太少了,接着说,“这个游戏要是人多些才好玩,咱们现在只能凑出来两组。这样吧,我们再搞点障碍。大家先站起来,把身边的椅子都摆到过道上,堵住直行的道路。”

所有的人满腹狐疑地按照阿捷说的做完,不知道阿捷葫芦里面到底卖的什么药。

“好!那现在大民和小宝站在一起,阿朱和阿紫站在一起。这个游戏要求‘员工’必须完全听从‘老板’指挥才行,不允许做出相违背的动作。怎么样?两位老板分别跟自己的员工确认一下吧。”

“哈哈!老员工,没问题吧?”小宝对大民说。

“你就贫吧!没问题,这次让你一次过瘾过个够!”大民也不甘示弱。

阿捷看到阿朱阿紫那边也没有异议。“这个游戏要求在1分钟内,‘员工’按照‘老板’的指令,完成移动尽量多的步数,指令只有5个,即‘向前一步,向后一步,停,向左一步,向右一步’。这5个指令可以随意组合。”

“这么简单!”阿紫脱口而出。

“嗯,听起来简单,一会儿我们看结果就知道了。对了,还需要注意一点,‘老板’则不参与行动,只发出指令指挥‘员工’的活动。另外,‘老板’在整个过程中,一定要保护你的‘员工’不能撞到其他‘员工’或老板,也不能撞到桌子、椅子、还有墙。怎么样?大家都明白了吧?”

“明白了!”

“没问题!”

“赶快开始吧!”

大家对规则领悟得都很快,已经迫不及待了。

“那好!我计时,每组都要记住自己最终完成多少步移动任务!准备……开始!”

“向后一步……停,向左一步,向右一步……”,“黑木崖”里面响起了此起彼伏的指令声,两位员工按照各自老板的指令移动着。

“好!时间到!停!”1分钟很快就到了,阿捷准时发出停止的口令,“大民不能再动了!违反规则了,最后这步不算,扣掉一步,扣掉一步!”

“我要是不动的话,这次又得撞到椅子上了。这步是不算。”大民解释着自己的原因,“这之前,小宝已经让我撞了两次墙啦!”

“是啊!阿紫也让我撞到了一次桌子,一次椅子。我都撞到椅子上了,阿紫还一个劲给我指令‘向前一步’‘向前一步’,幸好我没有再执行。疼死我了!”一直默不作声的阿朱摸了摸膝盖,假装做出痛苦状。

“一看就是装呢,你自己看到桌子在前面,还往前走啊!自己调整一下就行了!”阿紫反驳道。

“那怎么成,我是员工,你是老板,员工要完全听从老板的指挥。你说怎么做,我就是怎么做的。因为你给我的指令就是向前一步的。我可是一个好员工的,对吧阿捷?”阿朱做出委屈的样子向阿捷求助。

“嗯,阿朱做得没错。这次是阿紫没有照顾好自己的员工,没有尽到自己做老板的责任。不过,大民好像更惨,我已经看着他连着撞了两次墙!”

“是啊!一次是向前撞了一次,一次是向后撞了一次!向后那次可是实打实的,后头没有眼睛,哪知道有墙啊!我现在还疼呢!”大民跟着喊冤。

小宝挠了挠头,不好意思地笑着。

“怎么样?小宝,这个老板不好当吧?你们最终完成了多少步?”阿捷问。

“38步,对吧,大民?”

“我都撞墙撞晕了,哪里记得住。不过没完成60步是肯定的!”

“嗯,阿紫,你们的结果如何?”

“噢,我们也没完成,不过比他们好点,是45步!我觉得是阿朱移动得有点慢,好几次还听错了口令。”

“嗯,是啊!小宝的声音太大了,我都听不清。”阿朱埋怨道。

“那我不管,我是为了我的员工利益着想呢。”小宝死活不想认错。

“现在结果出来了,看来我们两组都没有完成预定的任务而且无论是‘员工’还是‘老板’,都有不满和委屈。

那我们接着做下一个游戏。这次大家都做‘员工’,没有‘老板’再给‘员工’发出指令。每个人独立、自主地移动,看看能完成多少步!时间还是1分钟。准备,开始!”

这次“黑木崖”里,不再有干扰大家的口令声,大家有条不紊地移动着,并依据自己的判断随时调整其步伐方向、快慢,以绕开椅子、桌子和其他人。

这次阿朱、大民完成了65步,阿紫、小宝完成了70步。

“大家谈谈感受吧!”

“我发现,等别人下指令自己再走,效率很低,因为除了需要仔细倾听外,还要再思考一遍,需要把指令转换成自己的动作才行。”大民第一个发言。

“自己可以根据实际情况,随时调整,这样就不会撞到墙上或者椅子上啦!”阿朱非常欣慰地说。

“我们做这个游戏到底有什么寓意呢?”小宝终于问出了大家的疑惑。

“嗯,这个游戏其实是想让大家理解一下两种工作方式的差异。一种是完全听从别人的指令,被动地进行工作;一种是自主决定、主动进行调整的工作方式。很明显,后者的效率更高,也更能被大家接受,对不?”

阿捷看到大家都点头表示赞同,“那好!小游戏就到这,我们进入正题。”

“今天主要是想跟大家讨论一下,如何改进我们项目的管理方式,或者说是我们的软件开发方式。一直以来,我们采用的都是瀑布模型。”阿捷顿了一下,“大家可以回想一下,我们以前包括现在做项目的时候,基本上是按照里程碑划分为这样几个阶段:需求分析、软件设计、程序编写、软件测试和对外发布等六个基本活动,按照自上而下、相互衔接的固定次序。虽然瀑布模型有它自己的优势,但对我们来讲,有以下不足:第一,在项目各个阶段之间少有反馈,主要依赖各种文档进行交接,缺乏协同;第二,只有在项目生命的后期才能看到结果;第三,虽然通过很多的强制完成日期和里程碑来跟踪项目阶段,但项目依然经常延误,而且延误会传导到下一个阶段;第四,不能有效地应对外界变化。”

“鉴于这些问题,我想或许我们可以试用一下敏捷模型中的Scrum!Scrum敏捷软件开发强调的是在一个固定的时间内,利用一切合理的开发资源,完成客户的一定需求。总体的项目是由一个一个小的冲刺(Sprint)组成的。每个小的冲刺(Sprint)都有很清晰明确的需求,而且也有明确的需求验收标准,从而能够把一个大的项目逐渐分解到小冲刺中,为按时保质地完成交付提供支持。”

“现在的工作虽然有些问题,但我们每次不也发布了吗?为什么要做这个改变呢?”阿朱委婉地提出担心。

“嗯,话虽如此,不过大家回想一下,我们刚才所做的两个游戏,二者的目标是完全一样的,但结果与过程却完全不一样。第一个游戏是听从他人指令、被动移动的方式,这就像传统的项目管理模式;而后一个游戏则是完全自主决定、基于经验、随时调整的移动方式,就像敏捷软件开发。通过刚才的游戏,大家应该已经充分领略了二者的优劣。”

“我们知道,苹果公司是一个非常注重创新的公司,苹果最近被评为‘世界最受尊敬的公司’。他们的产品从iMac到iPod,再到iPhone,每一个产品都不断地刷新着人们的想象力。他们创新的源泉,除了聚集的一堆天才外,很重要的一点在于他们的理念,他们提出了著名的Think Different(不同凡想)口号。他们当初提出这个口号,最直接的原因是这样的,”阿捷清了一下喉咙,“Because the people who are crazy enough to think they can change the world,are the ones who do.(那些疯狂到以为他们能够改变世界的人才能真正地改变世界)”阿捷在白板上写下了“Think Different Apple”。

“那么我们呢?很显然,我们目前的工作不允许我们做出这样的创新,因为我们不能改变我们工作的内容。但是,我觉得我们可以从另外一个角度出发,那就是Do Different(做得与众不同),”阿捷在白板上用红笔写下“Do Different!”,还加了一个大大的感叹号,“我们可以在做事情的方式方法上,搞一个突破。有一句话是这么说的Winners Don’t Do Different Things,They Do Things Differently(赢家并不总是做不同的事情,他们还会做得与众不同)。”

“另外,我跟大民也讨论过,觉得我们现在需要做一次改变,让我们的工作有新的起色和新的亮点!现在想听听大家的意见!”

“我觉得可行,我喜欢Do Different!”大民第一个表示支持。

阿朱有些不安地问道:“会不会增加我们额外的负担啊?”

“我觉得不会,我们做的东西不会变,原来做什么,现在还是做什么!大的方向不变,变化的只是我们软件发布的方式,原来我们可能是一年或者半年,现在要3周左右就发布一次!发布次数多了。”

“老板知道吗?美国人呢?会不会对我们有看法?”阿紫还是很有政治敏感度的!

“这个,还没有跟他讲。或许我们可以自己试验一下,成再讲;不合适,我们还是要回到老的路子上的!这次是先试验一下。咱们先从下到上,等时机成熟了再从上到下。”

经过一番讨论,大家终于达成一致意见,决定从明天开始,先做一个为期两周的Sprint试试看。

晚上,阿捷决定不再想公司的事情,让自己放松一下,看看碟。阿捷打开电视柜,准备从收藏的DVD中找一个出来。《虎口脱险》《A计划》《国家宝藏》《指环王》……《加里森敢死队》映入了眼帘!

“对啊,为什么不把《加里森敢死队》引入每个Sprint呢?如果把《加里森敢死队》每集的名字赋给每个Sprint,这样一定更好玩!说不定可以更好地激发起大家的兴趣。”连阿捷自己也开始佩服起自己的这个突发奇想了。

第二天上午10:00,阿捷站起来催促大家!

“走了走了!大家都到光明顶去,咱们讨论第一个Sprint。”

阿捷首先发言:“大家好!我们是不是可以为我们的每个Sprint起一个好玩的名字呢?毕竟Scrum就是一个Sprint连着一个Sprint,这样下去就是一个很好的系列了,我建议我们前面几个Sprint采用《加里森敢死队》的剧名!如何?”

“嗯,这样挺好玩儿的!”小宝第一个表示赞成!

《加里森敢死队》?还真的挺符合我们啊!在咱们部门,还没有人搞过Scrum的,咱们就是第一个吃螃蟹的,我觉得不错!”大民顿时也来了精神。

阿捷不免心里有些得意,能得到大家的共鸣是很愉快的事情。

阿紫在旁边嘟囔了一句:《加里森敢死队》我都没听说过,讲啥的?”这位80后,跟大家有着明显的代沟。

“代沟!”阿朱笑道。

“嗯,那我简单介绍一下吧。”阿捷说。

“电视台播放《加里森敢死队》的时候,我好像才上初中。”

“它讲的是一拨监狱里的囚犯,在一个美军‘干部’的带领下,深入德军敌后搞破坏的故事。”

大民还没等阿捷说完,就接过话头,“是啊!当时,我们同学都看得特别High(兴奋),每天都讨论这个。当时有报道,有少年模仿电视剧里情节练习飞刀,有盗贼模仿连环盗窃,有学生模仿吸烟,模仿喝酒,都是受了这部电视剧的影响。据说,中央台因为这个还停播了后面的几集。”

阿捷继续说:“没错!我所以选择《加里森敢死队》,是因为我觉得这个团队里面有一个很好的带头人上尉加里森以及各有所长的成员:小偷、酋长、戏子、强盗,他们各自发挥所长,完成了很多难以想象的任务。这样的团队,对于软件开发团队来讲,太需要了!因为,每个人都是一专多能的T型人才!这样在其他人遇到困难的时候,才可以互相帮忙、补位!”

阿紫一脸的期待,“我建议,我们在每一个Sprint结束的时候,都找一集看看。”

“没问题!我家里就有光碟!现在回到今天的主题,那我们就给第一个Sprint起名叫兵不厌诈”(the Big Con!)。阿捷在白板上写下了“Sprint1:兵不厌诈(the Big Con!)”。

“其实这个也正好能说明咱们的现状呢!大家第一次采用Scrum,对这个Scrum流程都很期待,同时呢,对于怎么做,如何用还很模糊,正所谓兵不厌诈。”

大家都舒心地笑了,会议的气氛顿时轻松了起来。

中午吃饭前,阿捷跟大家一起完成了第一个Sprint的计划,带领大家开始了他们的第一次冲刺!

本章知识要点

1. 瀑布模型的核心思想是按工序将问题简化,将功能的实现与设计分开,便于分工协作。将软件生命周期划分为制订计划、需求分析、软件设计、程序编写、软件测试和运行维护6个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。

2. 瀑布模型有以下特点。

· 为项目提供了按阶段划分的检查点。

· 当前一阶段任务完成后,只需要去关注后续阶段。

· 瀑布模型强调文档的作用,并要求每个阶段都要仔细检查。但是,这种模型的线性过程太理想化,其主要问题在于:

◦ 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

◦ 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险。

◦ 在瀑布开发模式下,早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。

3. 在做大的变革之前,积极听取其他成员的意见,努力理解其他成员的观点,获得团队主要成员的支持,是保证变革成功的重要一环。

4. 软件开发根本就没有什么灵丹妙药可言。虽然敏捷可以很快开发出优秀的应用软件,但不是说这项技术适合每个项目。在实施敏捷之前,一定对现有项目做好分析,对症下药。

5. 在Scrum开发模式下,为每个Sprint起一个名字,不但可以增加团队软件开发的乐趣,提高大家的参与度,还可以记录下Scrum Team当时的心情。

冬哥有话说

敏捷的小批量交付

敏捷和瀑布研发模式,有不同的适用场景,一定不要一拥而上,全都转为敏捷开发模式。

瀑布模式,期望通过严格的过程检查点,来保证交付质量。这在客户业务场景明确,业务需求相对稳定的情况下,更加适用。但通常的现状是,客户不清楚自己想要什么,市场环境又不断变化,客户只有在看到产品那一刻,才知道自己想要的是什么不想要什么。

瀑布模式,就像行驶在封闭高速公路上的重型卡车,速度又慢,又难以调转方向,只能沿着封闭的车道走到下一个出口(产品交付),才能根据迟来的反馈缓慢进行调整。结果,往往已经浪费了大量的时间和人力、物力成本。

相形之下,Scrum通过较短的冲刺,小批量,每次交付一个小的可运行增量;船小好调头,即使出错,沉没成本也低。通过小步冲刺,快速迭代的方式,“迎合并接受变化,而不是拒绝变化”。

集权式管理vs分布式

阿捷玩的“我说你做”的游戏,是典型的自上而下、命令式的集权式管理方式。源自近代管理学家泰勒“科学管理”的理论体系,是典型的还原论思想,严密的组织架构,管理者统一发号施令,员工只是组织这架机器上的一颗螺丝钉。

现实的VUCA时代,充满了复杂性、不确定性、模糊性、易变性,传统还原论的管理模式已经无法适应,需要的是打破部门之间与团队之间的竖井,打造“由灵活的小团队构建成的灵活的大团队”,详情可参考《赋能:打造应对不确定性的敏捷团队》一书。

以上两种模式,正如阿捷所说:“一种是完全听从别人的指令,被动地进行工作;一种是自主决定、主动进行调整的工作方式。”

人人都爱玩游戏

比起简单的说教,游戏更具参与感,更容易吸引学员的注意力,寓教于乐。除了文中“我说你做”的游戏,经常玩的游戏还有翻硬币游戏,纸飞机游戏,披萨游戏,棉花糖游戏等,这些都不需要太复杂的道具,而且短则几分钟,长则半小时,就可以感受到敏捷的理念;而类似凤凰沙盘、多米诺骨牌沙盘和GetKanban沙盘游戏等,通过设计精良的沙盘,将敏捷、精益、Kanban、DevOps等方法论,巧妙地穿插在沙盘设计中,现在已出现专门做这类沙盘游戏设计的公司,例如设计凤凰沙盘的GamingWorks。

精华语录

________________________

________________________

________________________