作者:陈勇
原文:http://blog.csdn.net/cheny_com
公司开发部门要建无烟会议室,三种人做法如下:
CMMI
公司级订立无烟会议室制度,宣贯,张贴海报。经过大家提醒执行,行政部小王不定期抽查,秩序井然。
直到老板李总带着客户张总来到会议室,而客户张总提出要吸烟,张总目视李总,李总目视小王,小王目视海报,其他人目视远方调节视力。
从此秩序被打破,无烟会议室名存实亡。
Scrum
会议室门口张贴“吸烟者”禁止入内招牌,同时指出老板/市场/销售部门老烟枪可以去隔壁的会议室A,把问题讨论清楚了再来会议室B。每个项目组还选了一个人负责监控,以保证任何时候都能维护秩序,因此任何时候都秩序井然。
直到有一天老板李总叼着烟就从会议室A冲进了会议室B,他要求立刻实现某个功能。大家也很清楚现在赶紧讨论这个功能比阻止他进入会议室B更重要,所以勉强接受了他的进入。
从此秩序又被打破了。
XP
大家没有去讨论会议室,但指出隔壁的隔壁的隔壁的公司火灾损失惨重,因此建议在公司里边关键部位安装烟感探头(能喷水的那种),也包括会议室B(理由是B的隔壁的隔壁是机房),李总也很支持。
有一天李总张总小王一起叼着烟就冲进会议室B,但大家赶紧指着天花板上的探头。于是李总张总小王一起掐灭了烟。真正打破规矩的是之前的小赵,他错误地点燃过一支烟并收拾了一整天残局,被李总大骂一顿(所以李总才知道这东西的厉害)。
于是一直秩序井然。
三原则
所以XP看似只管理技术,但是其实却解决了一些管理问题(不知道有意的还是无意的,因为一直没有看到相关资料)。
不过虽然XP是最持久的革命的,但是实施起来也是最困难的(老板未必一开始就有计划和钱装烟感探头,隔壁的隔壁的隔壁的公司也未必有火灾,我们也不能为了我们的无烟会议室去放把火,老板也未必因此而担心自家失火)。
所以从动态的角度一个综合的敏捷方案才是正道,这个方案的骨架中包括以下内容:
1. 优先解决那些能让老板感兴趣的事情
火灾比无烟会议室更能激起老板兴趣
2. 先采用最低成本解决问题
禁止吸烟的标牌比烟感探头的成本要低
3. 随时抓住机会进行彻底解决(很重要)
当然不能解决全部问题,但公司里边总会会出大的事故,每次抓住大的事故,采用不可逆的手段(比如装上探头)解决之。
敏捷软件开发世界的故事
回到敏捷软件开发,说一个持续集成和自动化测试的例子(仅仅是例子)。
上来做持续集成和自动化测试显然是不现实的(假设20个人和他们的领导根本不知道自己正在开发什么的那种团队)。
1. 比较现实的是先弄清楚现在在开发哪些功能和任务(PB和SB,弄清楚大家在干什么一般是公司里边最重要的事),并建立一个迭代式开发的框架。否则甚至没办法弄清楚大家的工作是否可以集成。
2. 但如果只做这些工作,很容易出现问题:人们渐渐地开始降低迭代交付的标准(在进度的压力下),并期待着在测试期力挽狂澜,等等。
3. 这时候,比较容易的是先定一些迭代交付标准,先用这些标准来卡一下质量问题。
4. 若干个迭代过后,在任何一次Release的时候,一定会出问题的!抓住这个机会,提升迭代交付标准,并采用持续集成来保证不会到Release才会出问题。
5. 有了持续集成,自然会有自动化测试,因为手工集成是不可能的。
6. 等持续集成和自动化测试具备后,人们已经习惯于在这个技术体系下获得Build和Release版本,任何压力已经很难让团队绕近道了。
当然,如果老板很早就意识到应该帮助我们而非被我们说服来做革命,我们也可以加快一点进度,在早期就引入持续集成和自动化测试。
但是三原则仍然是必须遵守的指导方针,换言之,即使老板是改革派,我们也别一步实现共产主义。应该以敏捷的思想逐步改变并展示回报,坚定管理者的信心,最终彻底成功。