在 6 月 21 日 ThoughtWorks 举办的 AgileChina 大会上,InfoQ 中文站编辑李剑有幸对 ThoughtWorks 首席科学家 Martin Fowler 进行了采访。在访谈中,Martin Fowler 谈到了对 Scrum 认证的看法,以及敏捷的现状与未来。
InfoQ 中文站:Martin,你好。我们最近在中国做了一次有关Scrum 实施情况的调查 ;/1214298843132/),从结果中发现,很多实施 Scrum 的人对敏捷只是一知半解,参加了 Scrum 认证之后就自认为已经是 Scrum Certified Master 了,开始在公司或者组织内部进行应用,最后导致失败。这种情况不仅发生在中国,其他国家也是一样,在 Scrum Yahoo group 和 XP Yahoo group 邮件列表中的许多邮件都为此提供了佐证。不知道你对这现象有什么看法?
Martin Fowler(MF):其实,不管是什么技术,要把怎么具体实施说清楚都不是件容易的事。尤其是敏捷,因为它会要求你改变心态!现在 Richard Durnall 正在会场上讲精益开发,他也会讲一些在精益制造方面的类似经验——很多人都只是片面的关注具体实践,而不是它背后的哲学。如果你只是一味的采用实践,对这套体系的哲学理念置之不理,还想有多好的成效,那可能吗?
我个人认为,还要过上几十年的时间,敏捷才能真正产生影响。我们都知道面向对象技术,它一开始出现在 60 年代末期到 70 年代,差不多 20 年后,才出现了面向对象编程的语言。但即使这样,我们还是会在客户代码里面看到,有些代码不是用面向对象的方式编写的。它们用的是 Java,但不是面向对象。所以,要想大多数人都用真正面向对象的方式来编程,还有很长的路要走。
到今天,对象已经发展了 40 年,而它在敏捷中还只占了很小的一个范畴。对象只跟编程、编程设计有关系,敏捷则是完整的软件开发过程。所以敏捷的发展阶段肯定比对象长。
再来说 Scrum 认证培训,它就只是两天的课而已,两天的课能学到多少东西?我很不喜欢人们把它叫做“认证”,因为这给人带来了错误的印象。它确实有一点好处,那就是你真的花了两天时间跟某些真正理解 Scrum 的人相处。我的意思是,那些负责 Scrum 认证培训的教师,他们确实理解什么是 Scrum。这着实不错,因为你知道,有很多技术连讲师都不甚了了,而且这现象还特别常见。嗯……这几乎是 RUP 和 CMM 的最大问题,讲师们也不知道它们到底是干什么的。Scrum 认证课程的讲师至少还对 Scrum 有全面的了解。但话又说回来,你怎么可能把这些东西都在两天里面讲完呢?我觉得要学会怎么实践敏捷,最起码要花上几个月的时间。你得进入团队,用敏捷的方式工作,你需要查看所有的因素是怎么配合到一起的。这要经过几个月的练习才行。
InfoQ 中文站:目前我们还可以看到种种对敏捷的误解,比如,“敏捷就是没有文档”,“敏捷就是做事情做得快”,“要是想用敏捷,就要把敏捷实践全都用到项目上”,等等。那我们该怎么样消除这些误解呢?
MF:呃……这可不大容易,你得做很多事情:跟人解释、展示实际案例……那些人不了解敏捷,但是有很多人了解,他们跟外界打交道,向人宣传,介绍他们的案例,ThoughtWorks 在这方面做出了很好的榜样,因为我们做着这样的项目,我们以这样的方式工作。每次有新人加入公司,他们就能看到我们的工作方式,可以亲身体验,而不是臆测一切。我觉得这非常好。不过我现在只是耐心等待着它的发展,就像我刚才说的那样,还要几十年。我已经习惯了,因为我见证了对象的发展历程,而对象到现在还没有发展到头呢。
InfoQ 中文站:你觉得是否在敏捷这个领域内,是否可能产生某种标准呢?
MF:我不认为有人能制造出标准。我们的工作方式是帮助组织意识到他们的强项所在,弱点所在,进而帮他们做改进。实际上,这也是 CMM 的原始动机,它通过评估来让你意识到哪里需要改进,但是认证机制却让它全变了样!它自己把自己变成了怪物。但是,不幸的是,在敏捷领域中也有这样的风险存在,有很多人都从 Scrum Master 这玩意里面感觉到了。我们走着看吧。
InfoQ 中文站:从敏捷宣言诞生,到现在已有七年之久,那么我们是否可以把过去这些年里的经验总结成模式,来指导敏捷开发、项目管理之类的事情呢?
MF:可能吧。有不少人都在努力这么做,但它目前不是我的兴趣所在。我从前跟敏捷走的很近,但是已经有很多人在关注敏捷、讨论敏捷、致力于推广敏捷,所以几年前,我就已经决定跟敏捷保持一段距离——不是因为我觉得它不重要,相反,我觉得它非常重要,只是研究敏捷的人已经很多了,所以我想关注自己想关注的事情,所以我才在研究企业架构模式和 DSL。
InfoQ 中文站:那么说你现在就是在等待着,旁观这一切会发展成什么样子?
MF:对,你看,有这么多优秀的人在推动敏捷,我估计也帮不上什么忙,所以我觉得最好专注于别人不太感兴趣的领域。
InfoQ 中文站:有人问过这样一个问题,“我们怎样判断一个项目是否敏捷呢?”对此也有人有反对意见,认为这个问题根本就不成立,因为我们所应该,所需要关注的是怎样做出改进——
MF:是的。
InfoQ 中文站:而不是项目本身敏捷与否。
MF:一点没错。
评论