1.我们知道敏捷开发是一套流程和方法的持续改进,通过快速迭代的方式交付产品,从而控制和降低成本。但是在实行敏捷初期,往往看不到很好的效果。这里面,您觉得问题主要出在哪?团队应如何去解决问题?
金根:我认为敏捷通过快速交付主要目的之一是快速上市,快鱼吃慢鱼,时间往往能够决定产品的价值,例如很多互联网公司;而国内也有很多企业把敏捷作为质量提 升的重要手段,例如广联达。价值和质量这两点是我认为敏捷最重要的两个目的。当然,成本也是目的之一,在我培训的一些企业中,这往往也是一些领导者最关心 的问题,他们会说我就关心实施敏捷能让我现在省多少钱,然而敏捷带来的效益是需要从长时间来看待的,如果希望马上看到成本下降这是不现实的。因为在开始实 施敏捷之初,大家需要转变开发方式,需要学习适应新的方法,这些都需要时间;也许还需要请专家来配需,还需要购买一些机器硬件之类的,这也需要花钱。所 以,我想说的第一点,敏捷不成效果与上层支持和导向有关,这是需要领导层去重新去理解敏捷的目的。
现在再说说开发团队。技术人员刚开始都是对技术感兴趣,而忽略了开发流程方法之类的,即使很多有工作经验的老手也一样不关心开发方法。对如何能够更好的开 发产品漠不关心是一个团队失败的问题,大家只是去按照敏捷的要求去做,仅仅做了而已,而不是做好了,更不会去思考如何根据当前的团队和环境去灵活应用。碰 到好点的团队,会出现几个敏捷积极者,他们是团队实施敏捷的火苗,但如何提高这些火苗的能力以及如何补充燃料是团队管理者需要加强的。在我遇到的一些团队 当中,往往很多管理者并没有转换到敏捷管理的思路,不知道自组织是什么概念,仍旧采用严格的管理手段,而不理解领导是什么。
从以上的描述可以看出,敏捷不只是一个开发工具,一个开发人员学习一下就可以用好。敏捷的实施也应该算是企业的一个变革,这需要上层、管理层和开发团队的共同努力。那如何解决这些问题?首先对敏捷是什么达成一致,然后找出阻碍,一个一个的去解决,在行动中学习。
2.现在很多软件开发IDE,比如微软的Visual Studio,也都在注重帮助团队改进开发流程、提升效率。您觉得在产品层面的这种改进,对团队实行敏捷方法有多大的帮助?工具对于刚刚准备实行敏捷方法的团队来说很重要吗?
金根:如果说到XP,我认为工具很重要,例如代码审查、自动化测试等等。但如果说到管理开发流程,例如使用Scrum,我并不建议大家一开始就 是用软件工具,使用工具会失去敏捷管理中很多本来可以发挥作用的地方,例如缺少白板会让团队缺少很多面对面沟通的机会,这会不利于敏捷团队的形成。我们很 多人都实施过敏捷,但只能说是doing agile,并不能说being agile,这又可以回到第一个问题,很多团队实施多年后也不见太大成效的原因就是,他们没有理解到敏捷说到底还是一个理念,它背后有价值观等作为支撑, 例如Scrum的承诺、专注、公开、尊重、勇气。关于Scrum,感兴趣的可以看看 从IT方法论来谈Scrum
3.很多人都谈到,对于团队来说,最痛苦的莫过于在实行敏捷开发的转型期,同时谈了很多解决方法,您如何看这一问题?
金根:我不太清楚你说的大家认为最痛苦是什么,以及他们提出了什么解决方法。如果说到转型,我可以把这看成是一个变革,如何理解这种转型的过 程,下面这张图可以看出转型一定是一个过程,而不是一步到位的,这需要管理者去很好的理解,才不至于让敏捷快速兴起又快速打落。如果团队想实施敏捷,但又 没有人对敏捷有所深入了解,那么建议大家可以请专人指导一下。
4.敏捷开发带来的好处不言而喻,但您觉得所有的开发团队都需要实行敏捷吗?有没有一些特殊的情况出现?
金根:如果我们只是把敏捷限定在Scrum和XP等开发方法,那么我觉得并不是所有开发团队都需要实行敏捷。在我们公司,有些团队可能就一两个 人,这个时候就不需要Scrum的站会、回顾会议了;还有一些需要变化特别快的,那就可以实施看板;还有那些不能出现任何差错的项目可能瀑布还是不错的一 种方式。但是,敏捷本身不是来自软件开发,被应用到IT,那就证明其实它背后有一种更本质的东西。正如前面我说的,如果你把敏捷看重一种理念,那么我认为 如果把敏捷理解透彻,不仅仅是每个开发团队都要实行敏捷,甚至每个人,在生活中都可以应用敏捷,这也是我创立敏捷个人的原因。
5.如今很多专家都在做敏捷教练,可能每个人的思想都有所不同,实行的方法也都不同。您觉得,对于敏捷初期团队来说,教练在其中应起到什么作用?之后呢?
金根:正如项目经理在每个公司所担任的工作不同一样,敏捷教练作为一个国内新兴职业,敏捷教练应该做什么也会不一样,更如你说,每个人的思想、 方法不一样,这也导致大家做的也不一样。但我想对于教练来说,还是可以抽取一些共性的东西。那教练应该起到什么作用呢?最基本的就是 ScrumMaster的职责,其次就是培养ScrumMaster的责任,更高级的教练还需要学习个人成长教练,也就是敏捷个人的一些内容。
对于敏捷初期团队,一般都没有ScrumMaster。如果可能的话,就是自己成为ScrumMaster帮助团队运转起来。如果不行,那么就需要做多次的专题培训,再组织团队开展敏捷实践,并不定期的回访,以保证团队对敏捷的理解正确。
6.最后也想请您谈一谈您的个人经历和看法。您是如何接触到敏捷开发这一理念的?之后又是如何去推动它的?对于敏捷开发,您给广大开发团队的忠告是?
金根:在03年的时候,我们是基于RUP来做开发,做了很多设计画了很多图,但是最后开发的时候,开发人员也不看,这让当时还是程序员的我对软 件开发方法产生了兴趣,于是就开始关注软件全生命周期相关的方法理念,而敏捷就是其中之一。09年我到了一个新的项目组,需求人员是市场人员、没有开发人 员,也就是连团队的雏形都没有,这时候我觉得实施Scrum是一个机会,因为大家以往都没有经验,更容易接受新事物,我选择实施Scrum。当然,对于软 件开发来说,Scrum只是一部分,还需要很多其他东西,例如如何做需求、如何做设计、如何带团队等。大家可以从 年度总结和计划:去年4个1,今年5个1 可以看到09年我做的工作。
说到如何推动,我认为还是很顺利的。第一,部门领导支持,如何开发我说的算。第二,团队支持,我的意见很容易被接受。第三,我
持续的和大家分享、交流、培训。第四:从头到尾的带着大家做了好几期sprint后才由团队自己全权负责。如果要我给广大开发团队提出几个忠告,我想说的就是理解敏捷的本质,对敏捷产生兴趣,是敏捷成功的关键。
7.敏捷开发一词已经越来越被大家所熟知,从您了解到的情况看,目前国内的普及程度如何?您觉得未来应如何推动?
金根:在敏捷10年回顾中,Mike Cohn说到, 现在大家不再说要不要做敏捷,而是如何做好敏捷,希望以后不再说"敏捷软件开发",而仅仅说"软件开发"背后就隐含的包含正在用敏捷开发,我也希望正如他 所说。但在我招聘、培训、交流过程接触的情况来看,国内的敏捷普及程度并不是这么乐观,很多人还只是知道敏捷而已,但在开发中并未真正实践,还有的实践之 后放弃的。还有实施了敏捷的企业,也不是企业所有团队、所有人都在实施敏捷,就拿我们公司来说,也不是所有人都在用敏捷,即使在用,也不是每个团队都应用 的很好。
关于如何更大范围推动敏捷,我觉得首先每个开发人员应该对自己要求高一些,不要仅仅关注如何写代码,还需要关注采用什么方法来开发,如何做好团队协作,在 合适的时机向团队、领导推动敏捷实践。其次,现在也有很多大会(如敏捷中国、ScrumGathering等)、培训(我业余时间也给企业做培训咨询)、 资讯,这些也都能够加速敏捷的推广和落地。
如果你需要进行敏捷开发相关的培训,那么可以看看这里你可能需要的在线电子书
推荐:你可能需要的在线电子书
我的微博:http://weibo.com/openexpressapp
欢迎转载,转载请注明:转载自敏捷个人网站