敏捷软件开发的现状及其在中国的发展

敏捷 软件开发的现状及其在中国的发展

近几年,敏捷软件开发在软件工业界有了良好的发展势头并逐渐被推广开来。一些著名的公司如 Google, Microsoft Yahoo 和众多的中小公司 都已经开始采用敏捷开发,尤其是 Scrum 。它们中的许多已经有了较长时间的经验。中国的许多开发团队这几年也在逐渐接受并应用这种开发模式。

敏捷 软件开发的发展现状

  一种软件开发方法被业界普遍接受并流行起来可能需要十年或二十年的时间。从 Scrum 和极限编程诞生以及被应用到现在已经有 20 多年的历史了。精益软件开发模式也有已近 10 多年的历史。现在,这些敏捷方法正在取得良好的发展,越来越多的人开始关注它们。

   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 公司, “Dr. Dobb’s Journal” ,和 Methods and Tools 针对 2005 2008 年的行业调查报告显示,在美国和欧盟,对敏捷的认识和采用率以每年 50% 左右的速度增长。如果用杰弗里摩尔( Geoffrey Moore )的技术采纳生命周期理论( Technology Adoption Life Cycle theory )来分析这一数据,我们会发现敏捷方法已经过了创新( innovators )和初期采用( early adopters )阶段,目前已进入早期多数( early majority )阶段。很显然,敏捷方法将在早期多数( early majority )阶段加速采用率的增长势头,并被更广泛的企业所接受。

为方便 敏捷 项目的管理,许多公司推出了针对 敏捷开发 的项目管理软件。其中比较流行的商业软件有 ScrumWorks, VersionOne, Rally 等等。这些工具的出现已有一段时间,他们遵循传统的软件产品发展模式因而积累了繁多的功能,大多数敏捷团队可能只会用到其中少数的一些功能。其它还有很多种类似的工具 , 比如 ExtremePlanner, TargetProcess, Scrum For Team System, JIRA 等等。相信读者在互联网上会很容易找到它们的相关资料。在开源工具方面,比较流行的有 XPlanner, XPWeb, Trac 等等。这些工具有些和敏捷开发并无直接联系。我们的中国公司开发了 GScrum™ 。这是中国第一歀产品化的此类软件。 GScrum™ 是一个基于 WEB RIA (Rich Internet Application) 的敏捷项目协作平台。敏捷团队可以通过浏览器在任何地方使用 GScrum™ 的服务。 GScrum™ 侧重于团队的合作和沟通,被应用于我们自己客户的项目管理中,受到了广泛好评。 GScrum™ Scrum 和精益( Lean )开发结合起来,团队可以针对不同的项目调整使用不同的方法。它的功能集中而不繁杂,简单易用。同时, GScrum™ 可以让有协作关系的不同公司和不同地域的团队在同一个项目中安全方便地合作,这对软件公司和客户以及伙伴公司的协作会有很大的帮助。

敏捷 在中国

     敏捷在中国刚刚开始被采纳。中国的软件开发群体在近几年开始使用敏捷方法,所以只有很少的一些有关组织和公司。而且大部分使用敏捷方法的公司都集中在外资跨国企业如 IBM SUN ,以及一些软件外包公司如文思创新( Vanceinfo )等。同时也有一些比较前沿的国内公司如腾讯等率先推广了敏捷开发。可以说中国的敏捷采用率仍然停留在技术采纳生命周期的初期试用( early adopters )阶段。尽管如此,中国的软件工业中存在着敏捷方法迅速发展的契机.

首先,在中国,大规模的软件公司只有少数几个,剩下的大多数开发团队规模都不大,开发团队都不会超过 200 人。这些团队大多采用手工作坊的工作方式, 没有正规的开发方法,许多事情的处理往往取决于他们技术领导的个人风格。这有时被称为“实用主义”。“实用主义”看起来很高效,没有任何管理开销和束缚。但这种方式有几个缺点。首先,这样的团队效绩和产品的质量不稳定,往往时好时坏。其次,这样很难形成有凝聚力的自我管理的团队。如果团队的核心人物离职或出了其它问题,整个团队就立即丧失了组织力,或整个团队就要去适应另一种开发风格。再有,这种团队往往也缺少一种有序自觉的学习和自我提高机制,而开发效率的停滞就是对人才的浪费和不负责任。总之,这种方式的最大缺点就是质量和效率的随机性和不稳定性,很难和职业化的软件开发竞争。显然,这些并不是什么好事。但另一方面,在转向使用敏捷开发模式的过程中这些团队比其它团队面临更少的障碍,消耗更少的资源。换言之,他们没有成型的模式,没有过多的包袱,采用敏捷开发模式让他们失去的很少,但能获得很多。这些公司的规模也有利于敏捷方法的实施。他们规模较小并且在同一个地方工作, 采用敏捷开发更容易、风险更少,敏捷也更适用于他们。

其次,正在发生的本次经济危机让许多公司重新评估自己的日常支出和运营效率。许多大规模的裁员和人事的冻结让这些公司感觉到资源的有限。在这种情况下,对现有资源效率的提高将对提高公司的竞争力和长期的发展起到更为至关重要的作用。另外,对于中国来说,在过去几年基础设施和硬件发展有了很大的提高。但相应的管理和服务并未同步跟上。这些管理和服务项目将促使政府部门,银行,电信公司以及其它的中国企业对软件的开发和应用投入更大的力量。再加上中国政府为应对经济危机的大规模投入,未来的几年,中国的软件市场将比其他国家和地区发展得更为迅猛,以满足中国自身的需要和面对世界各国加剧的商业竞争和挑战。敏捷开发会为中国的软件服务和产品带来我们最需要的质量和效率的提高。这为敏捷模式在中国的迅猛发展提供了难得的时机。

第三,中国文化中存在许多适合敏捷开发的元素。《敏捷宣言》的第一条便把人和人们的协作放在了规程和工具的前面。在中国文化的深层,无论政府机关,企业或家庭, 更多的是以人为核心,而非规程和条例 。这符合敏捷重视人多于过程的精神。如果这一点能被仔细的研究和应用于整个团队,将更容易激发团队成员的积极性和创造性,提高软件开发的质量和速度。还有,敏捷开发对传统的西方式由上至下多层次的职业管理提出了挑战。现在,很多人都在关心和讨论管理层需要如何改变以更好地适应敏捷模式。其中一点是,敏捷要求管理层更简洁并更注重服务于团队。在中国,公司和项目管理并不是很职业化。从这种起点转向敏捷可能更直接、简单。另外,中国的很多软件开发人员习惯于几乎无计划的随心所欲的代码编写。这在西方被称为牛仔编码( cowboy coding )。这种风格离敏捷的距离似乎比应用瀑布模型或CMMI 标准的专业开发风格更小。许多其他的中国文化因素,比如关注细节,节俭,以及面对变化的适应能力等都为敏捷开发在中国软件业的发展提供了有力的支持。

  这些独特的中国文化元素和业界特点为敏捷开发的发展和实施提供了先天的条件。如果中国的软件业界能够在敏捷开发的理论与实践方面迎头赶上并有所创新,敏捷开发一定能为中国的软件产业效率和质量的提高,和进入甚至领先国际市场起到决定性的推动作用。我们相信,敏捷在中国很快就会迎来一个迅猛的发展时期。

 

发布了25 篇原创文章 · 获赞 6 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章