在中国推广敏捷软件开发方法十五年之后,我很想回头去看这段历史的全景。今天我用知网做了一些检索,看到了一些有趣的数据。
我在所有期刊中检索主题中包含“敏捷”和“软件”的文章。其他的关键词检索会得出略有不同的结果。如果只用“敏捷”作为关键词,会得到13258条结果,但其中绝大多数与我想要谈论的软件开发方法无关。这是“敏捷”这个译名词的宿命:它是一个普遍被认可的、带有褒义的形容词,使用这个词让听众更容易接纳这些新千年以后发展起来的新方法学。但与此同时,这个译名也让听众产生更多的误解:很多人会以自己的想法去期望这些新方法学,而不去深究它们的内涵。
我尝试的另一个检索条件是把文献类别限定在“计算机软件及计算机应用”,并检索主题中包含“敏捷”、且不包含“制造”的文章。排除“制造”的原因是“敏捷制造”也是一个相当热门、且与计算机技术很有关系的领域。这个检索的结果从统计上看与前一个相去不远。以下我主要讨论第一个检索的结果。从相关关键词来看,这个结果是比较准确的。
首先,令我略有些惊讶且失望:检索到的文章只有972篇。作为对比,“云计算”检索到的文章有10880篇,“软件工程”有9890篇,“SOA”也有3992篇。回顾这十五年,不论在IT技术领域还是软件工程领域,敏捷仍然是一个非常小众的话题。
从时间趋势来看,2001年及以前有一些涉及“敏捷”和“软件”主题的文章,虽然并不与现在意义上的“敏捷软件开发”直接关联,但在理念上有一定相通之处。除了敏捷制造、敏捷物流等领域的文章之外,向华和邹平的文章、赵捧未和窦永香的文章、段永强、张申生、高国军的文章都提及了“基于对象的软件代理”概念,这可能是“前敏捷时代”一个值得探寻的线索。
“敏捷软件开发”这个名词的出现是在2001年,并于2002年正式进入了中文期刊的话语空间,从时间轴上可以清晰地看出这个趋势。从统计数据上看,敏捷的潮流在2007年达到高峰,从2011年开始有一次显著的下滑,随后又逐渐回暖。这里面有一个异常因素:《程序员》杂志2010年以后的数据没有被知网收录。但即使排除这个因素,大趋势估计相去不远。某种程度上,这个曲线和Gartner的“技术成熟度曲线”(或者叫吹牛逼曲线)有某种暗合之处。
然后——我不知道该高兴还是悲伤——《程序员》杂志无疑地在这场潮流中扮演了领袖角色。在所有检索到的文章中,《程序员》发表的超过20%,与其他任何报刊杂志都不在同一个数量级上。排名第二的《电脑知识与技术》在十五年中发表了共计23篇相关文章,我觉得这就基本上可以解读为“毫不关心”。《程序员》在2002年3月的《极限编程》专题,经确认,的确是中国期刊中最早介绍敏捷方法的一组文章。(实际上,《程序员》2001年12期的《代码重构》专题还略早于此,但由于刊号变迁的缘故,知网没有正确收录《程序员》2001年的内容,而是收录了之前使用该刊号的《Internet信息世界》的内容。)最早引介敏捷方法,并在之后的几年中贡献了整个期刊领域最多的篇幅。我们可以无疑地确认,《程序员》是敏捷方法在中国期刊领域最重要的——并且也是唯一的——支持者。这一数据,从一个侧面映射出敏捷在中国传奇而又尴尬的境遇。