个人简介 张克强,宝信软件研发部EPG Leader,清华大学硕士毕业,系统分析师,CSPIN专家委员会成员。 自2002年担任EPG以来,一直从事软件过程改进工作,作为EPG Leader进行CMM4, CMMI5的过程改进,参与过多次CBAIPI和SCAMPI的正式评估。
中国系统与软件过程改进年会,是由中国软件行业协会主办、中国软件行业协会系统与软件过程改进分会承办的在中国软件过程改进领域最有影响力的、规模最庞大的国际盛会,以专业、领先和规模庞大著称。
1. 好,大家好,我是InfoQ的编辑鲍央舟。今天我们请到的是上海宝信公司的张克强,克强,你好。首先能不能简单的为我们介绍一下你自己和你的公司呢?
大家好,我是来自于上海宝信软件股份有限公司,宝信软件呢,是源自于宝钢的一家软件公司。在01年上市,现在我们有四千多人,我本人是现在宝信软件技术中心的项目总监,我这边从事的主要是质量保证和过程改进。
2. 听说你们公司是CMMI和敏捷结合使用的一家公司,能不能大致给我们介绍一下,你们公司引入CMMI和敏捷的一些背景,是先引入CMMI还是先引入敏捷的呢?
我们公司在2001年的时候对一些质量方面的一些进行了一些调研,在那时候就选择了CMM模型作为我们这个过程改进的一个模型。那么在06年的时候通过了CMMI5。那么到敏捷,我们对敏捷的了解是在06年听说,我们有所了解,到07年的时候我们试行,一直到08年才比较大规模的引入。目前来说,我们是在技术中心这个范畴之内,大概人员涉及大概是400人左右的这样范畴,在CMMI和敏捷两方面融合在使用。那么我们在另外一些地方还是一些传统的工程类的一些做法,我们公司比较大,也不是全部。
3. 你们引入CMMI的时间很长,但是引入敏捷的时间并不是非常长,我想问一下你们在CMMI这个大背景底下引入敏捷有没有发生哪些冲突呢,你们是如何解决的?
我想冲突还是有的。我们第一个的敏捷的引入呢,它是自底向上的,那么就是有一些这个项目的成员,包括项目经理,对这个方面有所学习,想要试图引入敏捷到这个项目,使用敏捷的一些实践,那么这个时候就跟我们的原有process就发生一些冲突,这是我们第一个项目。然后QA就发现了问题,我们第一个项目时候,我们调研了之后就开始试行,通过试行这样一个符合CMMI流程的这个手段,对这个项目进行了全程的跟踪,这是07年。我们第一个项目做完之后,还是很不放心的,然后又对第二个项目继续进行了实施,一直到08年,通过这两个项目的一些实践我们有所收获,也总结了不少的经验,在08年时候逐渐的就铺开了。所以中间的冲突呢,刚开始时候,QA报出了大量的过程问题,迟迟得不到解决,这个时候就出现项目组跟QA跟EPG之间的一些交流和沟通,这个我们当时通过一些灵活试行的手段,我们先试,后来再来看这样一种手法把它给解决好了。
4. 我理解下来,你们还是先以两个试点项目的一个形式慢慢的引入敏捷,总结一下你们各个方面的冲突,不断的提升,在整体在你们公司铺开,这是你们公司引入敏捷的一个模式是吗?
不是模式,我们也是走过来一条路。也许是对别的公司来说,也许可以看成一个模式,我们当时也是就这么试试看,就这么走来了。
5. 我前面听你提到了很多那个QA,好像你们在引入敏捷的时候,QA这个role这个脚色发挥了比较重要的作用,能不能大致介绍一下你们公司QA在引入流程方面,主要做了那些工作?
QA本身这个我们的QA是按照CMMI这样的模型上面的QA,它主要是针对过程,和中间产品这样QA,不是测试工程师。那么其实QA在引入这个敏捷的过程当中,它不是一个积极的作用,这个我刚才提到,它是忠实于既有流程,它肯定会。
6. 是冲突点是吗?
它首先会发现问题的,但是我们这个QA也是在工作多年资深的工程师,对新出来的一些这个实践经过跟项目组的交流,也有他们的一些体会,那么也是会在试行的框架上,首先把原有的这个检查表,先放到一边,然后再根据敏捷的一些做法和我们的大的框架,CMMI大的框架重新来定义所需要的检查表。那么在这个过程当中呢,就是交流沟通,但是有提炼,有这样的一个过程,把这个相关的东西确定之后达成共识,然后再来推进。这一点到是我觉得是CMMI对这个过程改进这套机制的建设,是对敏捷来说是很有帮助的。
7. 我看QA在你们整个改变的过程当中它本身的工作也变化很大,也是不断一个提升改进这样的一个过程,是吧?
至少它得这个符合这些新的一些process来,然后调整它的工作方式。
8. 除了这些之外有没有另外的一些最佳实践,就是敏捷和CMMI结合一直是业界比较关注的一个话题,你们公司现在看样子运行挺良好的,有没有一些最佳实践推荐给我们的听众?
我这里特别想分享的一个实践就在于这个过程改进的决策机制,无论是引入敏捷,还是引入其他的一些新的做法,那么在一个组织内部的一个决策机制,过程决策机制就很重要。但是说起来也比较简单,敏捷它往往目前的大量的成文的东西停留在项目层面,告诉你项目进行回顾,项目组达成共识,达成的共识能够到下一个阶段当中去使用,这些这个敏捷谈的很多。但是对一家组织而言,如何在一个项目拿的实践的好东西,有效实践,最佳实践,向其他项目组推广的时候,这里面就是秉承SEPG这套做法,就非常有效。那么这套做法,它能够把一些由底向上的,或者是由上而下的一些提议能够进行分析,能够安排相应的团队去试行,能够督促相关人员总结他们的有效实践,最重要的在出现冲突和矛盾的时候,我们引入了一个投票机制,采取的原则很简单,少数服从多数。那么就说我们发现,这个无论是经营于这个传统项目开发的人,还是就是比较拥护这个敏捷开发的人,都很有主见。
在一个时间段里要试图说服一个人是非常难的,这个有句话是“人是最难说服的动物”。我们这边就把它这个事情简化掉,我们按照我们的游戏规则来,我们在每个团队当中选拔这个代表进入EPG,就是敏捷团队的代表进入了EPG,其他的团队也有代表,然后EPG的决策机制就是少数服从多数。有些敏捷团队推出的一些实践他们认为好,然后拿过来经过讨论,大家投票通过OK。这样我觉得对于团队的激进的做法,如果仅限于一个敏捷团队,他可能确实比较方便,换句话说,我想干吗就干吗。
但是这个时候他就有一个可能造成跟管理层不一致,然后有了这个EPG这个层面之后,就能够把这个敏捷团队自底向上的一些做法跟管理层的期望和管理层的一些要求能够做一个很好的融合,我们采取是这样的一个民主化的又能表达意见,又能够决策的这样一个机制之后,我们在过程当中出现的一些冲突呢,他就会很自然的就消失了。那么我们就遵循这个少数服从多数的原则,有些事情是这样子的,就不怕反对,或者是不怕否决,或者不怕赞成,最怕的是什么呢?最怕的是拖而不决。有些人会默许的在那里做做做,有些团队说这个还是按照老的来做,没有一个决策就拖在那里,造成各方就觉得很尴尬,或者存在明显的冲突,如果是有一个迅速的决策机制,就能够解决相关的一些问题。
9. 所以决策机制是你推荐大家的最佳实践之一,能不能再简单介绍一下有没有别的一些最佳实践呢?
别的一些最佳实践其实也是刚才提到的,就是如何来做一些过程创新的实验,如何来引入这样的一个一些新的做法,我们知道这个敏捷的做法非常之多,敏捷的流派其实也很多,能够比较成系统的这个敏捷方法也很多,如果我们一股脑全部拿过来那也不现实。那么在这个时候,如何从中挑一些合适的,但是你又并不能对这个组织形成大规模过大的冲击,那么这个时候,我们比较赞成就是安排一些团队来进行实验。那么我们接下来的实验,我们由于是按照CMMI这样一个框架一个组织,我们有我们的过程能力,有我们过程的基线,那么在我们这样的框架内进行实验就比较的方便。因为它一些这个基准比对它是现成的,我采用了一个什么样的实践,我们观察团队的一个变化是比较容易能够来判断的。所以就是我们的经验就是一个是鼓励这些实验,不能铺的太开,但是要鼓励他们去做,然后对他们有一些希望方面进行考察,是这样的一个做法。
10. 发现CMMI对你们的整个敏捷的实践反到还是有很多帮助的?
可以这么说。
11. 但是有很多人认为,像你们公司这样CMMI和敏捷一结合,这个敏捷的味道就不是很纯正了,现在有很多的敏捷的味道是会非常批判那种不纯正的敏捷,你对此是怎么看的呢?
这一点我们也确实在同行的交流当中也听到了很多的这种意见,也有不同的声音,这点我们也是完全能够理解。因为敏捷本身现在来说敏捷的宣言,敏捷的12个原则,得到一致公认之外,其他的达成共识的就Scrum这个作为管理框架达成共识算是比较多一些,再往其他的,就有争议,选择采用的比例就少一些,那么正因为如此,各个方面对敏捷有各种各样的理解,在对我们这样一个在CMMI框架下的敏捷,它有些实践是比起一些最最少的一些敏捷项目做法来说,我们是会多一些东西的,比如说我们对这个过程能力基线的这样一个持续的监控,这在原有的敏捷当中是不怎么提的,虽然敏捷估计也有一些内容涉及,但没有提到这个过程基线这样一些东西。所以我们是这样的一些多的做法,比如说XP,用XP举例比较方便一些,跟XP不是完全一样的这些地方,那么这个我的看法是,各家组织有自身的历史,有它的现状,它的团队成员的实际情况,本身组织的规模,那么就说它是基于这样一个情况下来引入敏捷。那么你不可能完全的抛弃历史,和抛弃现状来引入一个纯粹的XP或者纯粹的Scrum,所以我们认为这是非常正常的,有一些不同的意见,我们也欢迎交流。
12. 所以觉得百家争鸣的这个情况下应该是保持下去或者说应该大家可以相互理解,让这个百家争鸣的情况下继续保持下去对吧?
对。我特别想跟业界有一些交流。那么在这个地方毕竟是他不是一个唯一解,在引入敏捷的情况下应该是有很多的历史背景情况在里面,那么有各家可能有各家不同的做法,完全的纯粹的秉承某种特定模式的敏捷可能在现实当中也是比较难的,也是比较困难的,可能有些公司他这个现状更加接近Scrum一些,有些公司可能基于CMMI背景的也不少。
13. 那我看你本人也非常积极的参与各种敏捷的社区,各种敏捷的论坛,那你觉得现在敏捷社区的一个风气如何,有没有一个意见或者建议让这个敏捷社区的讨论的氛围会变得更加良好?
说实在的,我对我们目前的一个论坛的气氛并不是特别的满意。因为目前来说,国内是敏捷论坛最大的还是建在Google上面的一个group,那么在其他的一些地方也有,但是也不是特别的火热。那么目前的论坛当中,我们在这两年内,我也看到很多帖子,有些人想用形象的比喻来说,有些人想开展一些调查。但是这些稍微偏离这个敏捷原文差一点点的文字呢,往往就有很多不同的意见出来。那么我觉得我们应该还是抱着一种鼓励的态度,百家齐放的态度能够来开始把这个论坛弄好。在敏捷宣言的第一句话我就特别赞赏,那帮大师们说,我们是以亲身来实践,或者说帮助他人来实践,来希望得到这样一些推广。
我觉得这个应该是抱着这个以自身实践能够来帮助他人这样的一些理念来做。尤其是对一些新入敏捷的人,能够更加鼓励一些,更加的能够回答一些问题,而不至于过多的对问题本身提出很多的意见,那么这样导致很多的新人就畏缩不前,提问不敢提问了,这样整个论坛氛围就不好。还有一个就是这个载体的问题,这个由于这个Google论坛其实是不能直接访问的论坛,很多时候是不能访问,这个也是一个尴尬,也是目前很难有很好的解决方案。我这边也做点广告,裁不裁掉由你们看,我这边也是水木软工板的版主,我觉得我们水木软工板的氛围不错。
14. 那么在InfoQ可以专门搞个论坛。
InfoQ如果能搞个论坛出来,我觉得也不错。InfoQ访问量又那么大,比起水木来可强多了,水木它是我们一个小圈子在那里玩。
15. 非常感谢今天张克强跟我们的一个访谈,也非常感谢你对CMMI和敏捷对大家的一些意见,希望以后可以更进一步的跟您交流。
谢谢!