近几年,敏捷软件开发在软件工业界有了良好的发展势头并逐渐被推广开来,中国的许多开发团队正在逐渐接受并应用这种开发模式。
一种软件开发方法被业界普遍接受并流行起来可能需要10年或20年的时间,而从Scrum和极限编程诞生以及被应用到现在已经有20多年的历史了, 精益软件开发模式也有已近10多年的历史。现在,这些敏捷方法正在取得良好的发展,一些著名的公司如Google、Microsoft、Yahoo以及众 多的中小公司已经开始采用敏捷开发,尤其是Scrum。它们中的许多已经有了较长时间的经验。越来越多的人开始关注它们。
推动敏捷开发普及
应该说,敏捷开发方法的流行与各种各样的咨询和培训机构的工作密不可分。
Scrum Alliance是敏捷开发发起人之一Ken Schwaber创办的一个Scrum咨询公司。除了组织会议和提供关于Scrum的相关咨询服务外,Scrum Alliance公司最大的特点是开创了Scrum认证系统,用以对Scrum人员进行认证。该系统分别有培训和认证两个过程。它有五种类型的证书: Scrum专家(Certified Scrum Masters)、产品所有者(Product Owners)、Scrum行业者(Scrum Practitioners)、Scrum教练(Scrum Coach)和Scrum培训师(Certified Scrum Trainer)。Scrum培训师证书是提供Scrum顾问给团队进行Scrum培训和认证的。Scrum专家产品所有者和Scrum行业者证书则是侧重于对团队进行Scrum项目的实际应用培训和认证。这些证书已经获得软件行业的广泛接受,每年有成千上万的人在培训和认证过程中获得提高并为公司带来效 益。
另一个重要的组织是敏捷联盟(Agile Alliance)。敏捷联盟是一个由对敏捷开发感兴趣的个人和公司组成的联盟。该组织的主要活动包括出版刊物、组织讨论小组、组织会议等。其中一个比较 重要的会议是一年一度的敏捷会议(Agile Conference),每年都会吸引世界各地从事敏捷开发的研究人员、项目经理、开发者、公司和顾问团等前往参会。 许多在会议上提交的文章会被收入并发表在IEEE相关刊物上。
此外,商业巨头关注敏捷开发也带来了示范效应。Google、 Yahoo、IBM 和Microsoft 使用敏捷开发已经很多年。他们通常选择某几个开发团队来试用敏捷开发,然后将开发经验推广到其他的开发团队中去。
在相关组织和大公司的带动下,很多中小型软件公司开始把开发团队完全转型到敏捷开发模式下。根据Forrester公司调查,在美国和欧盟对敏捷的认识和采用率以每年50%左右的速度增长。可以说,敏捷方法已经过了创新(innovators)和初期采用(early adopters)阶段,进入早期多数(early majority)阶段。很显然,敏捷方法将在早期多数阶段加速采用率的增长势头,并被更广泛的企业所接受。
敏捷在中国
敏捷开发在中国进展稍慢一些,中国的软件开发群体在近几年才开始使用敏捷方法,而且大部分使用敏捷方法的公司都集中在外资跨国企业如IBM、Sun以及一些软件外包公司(如文思创新)等。同时,也有一些比较前沿的国内公司(如腾讯)等率先采用敏捷开发。总体来看,中国的敏捷开发还处初期试用阶段。尽管如此,我国的软件工业中仍然存在着敏捷方法迅速发展的契机.
首先,在中国大规模的软件公司较少,大多数开发团队都不会超过200人。这些团队大多采用手工作坊的工作方式,开发方法往往取决于技术领导的个人风格,这种方式有几个缺点。首先,这样的团队绩效和产品的质量不稳定。其次,这样很难形成有凝聚力、自我管理的团队。特别是一旦团队的核心人物离职,整个团队可能就要去适应另一种开发风格。第三,这种团队往往也缺少一种有序自觉的学习和自我提高机制,而开发效率的停滞就是对人才的浪费和不负责任。总之,这种方式的最大缺点就是质量和效率的随机性和不稳定性,很难和职业化的软件开发竞争。不过,这种开发团队在转向敏捷开发的过 程中反而更容易,因为他们没有成型的模式,没有过多的包袱, 采用敏捷开发风险更少。
其次,由正在发生的经济危机引发的大规模的裁员和人事的冻结让这些公司感觉到资源的有限。在这种情况下,对现有资源效率的提高将对提高公司的竞争力和长期的发展起到更为至关重要的作用。而敏捷开发会为中国的软件服务和产品带来我们最需要的质量和效率的提高。
第三,中国文化中存在许多适合敏捷开发的元素。《敏捷宣言》的第一条便把人的协作放在了规程和工具的前面。在中国 文化中,管理是以人为核心而非规程和条例,这符合敏捷重视人多于过程的精神。还有,敏捷开发对传统的西方式由上至下、多层次的职业管理提出了挑战,敏捷要 求管理层更简洁并更注重服务于团队。而中国企业的项目管理并不是很职业化,从这种起点转向敏捷可能更直接、简单。另外,中国的很多软件开发人员习惯于几乎 无计划、随心所欲的代码编写。这在西方被称为牛仔编码(cowboy coding)。这种风格离敏捷的距离似乎比应用瀑布模型或CMMI标准的专业开发风格更小。许多其他的中国文化因素,比如关注细节、节俭以及面对变化的 适应能力等都为敏捷开发在中国软件业的发展提供了有力的支持。
可以说,独特的中国文化和管理现况为敏捷开发的发展和实施提供了先天的条件。如果中国的软件业界能够在敏捷开发的 理论与实践方面迎头赶上并有所创新,敏捷开发一定能为中国的软件产业效率和质量的提高,和进入甚至领先国际市场起到决定性的推动作用。我们相信,敏捷在中 国很快就会迎来一个迅猛的发展时期。(ccw)
刘松 合络众成(北京)科技有限公司总裁。刘松曾在美国IBM硅谷实验室、Sybase等从事研发及项目管理工作,有着丰富的软件研发及管理经验。
陈春暖 架构师,合络众成(北京)科技有限公司,通过 Scrum Master认证,有丰富的敏捷开发和管理经验。