新闻动态
敏捷软件开发方法
http://sytm.net 发布日期:2014/1/28 9:52:40

2001年初,随着基于Intenet应用的广泛普及,众多软件团队陷入了不断变化的技术环境与用户需求的泥潭之中。在一批业界专家的号召下,他们聚集在一起,从以往失败的软件开发案例中总结出了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则。他们称自己为敏捷联盟。在随后的几个月中,敏捷联盟在综合各家言论的基础上,发布了敏捷联盟宣言。宣言的发布标志着敏捷软件开发方法以一种具有鲜明特色的软件工程方法进入了人们的视野。同时,在敏捷宣言中明确地提出了以下价值观:

(1)个体和交互胜过过程和工具。

(2)可用的软件胜过面面俱到的文档。

(3)客户合作胜过合同谈判。

(4)响应变化胜过遵循计划。

1.个体和交互胜过过程和工具

软件是人类思维的外化产物,因此,人是获得成功软件最为重要的因素。如果团队中没有优秀的开发人员,即使使用再好的软件过程也不能从失败中挽救项目。同样,不好的软件过程也可以使最优秀的开发人员失去效用。例如,如果不能作为一个团队进行工作,那么即使拥有一批优秀的开发人员,项目也一样会惨败。

一个优秀的团队成员未必就是一流的程序员。一个优秀的团队成员可能是一个水平一般的程序员,但却拥有较好的合作、沟通以及交互能力。在敏捷软件开发方法总认为团队成员的合作、沟通以及交互能力要比单纯的编程能力更为重要。一个由水平一般的程序员组成的团队,如果具有良好的沟通能力,将要比那些虽然拥有一批高水平程序员,但是成员之间却不能进行有效交流的团队更有可能获得成功。

另外,合适的工具对于项目的成功来说是非常重要的。这些工具包括编译器、程序编辑环境、源代码控制系统等。虽然对于团队的开发者来说,合适的工具对于正确地完成项目开发是至关重要的。然而,工具的作用可能会被过分地夸大。使用过多的庞达、笨重的工具就如同缺少工具一样,都是不好的。

可以工作的软件胜过面具俱到的文档

没有文档的软件是种灾难。因为,代码不是传达系统原理和机构的理想媒介,当然,也就更谈不上为软件维护提供支持。对于团队来说易于阅读的文档是必要的的。

然而,过多的比过少的文档更糟。首先,编制众多的文档需要花费大量的时间、精力、人力和物力,并且保持这些文档和代码的同步的开销将会比创建文档更为巨大。如果文档和代码之间失去同步,那么文档出了会变得庞达、复杂,跟狗伸着会造成重大的误导。

对于团队来说,编写并维护好关于系统原理和结构文档总是有益的,但该文档应该尽量短小并且主题突出。“短小”以为这最多有二十页。“主题突出”意味着应该仅论述系统的结构和设计原理。

3.客户合作胜过合同谈判

软件系统的开发过程是人类对软件产品问题域进行反复认识、抽象的过程。因此,客户不能指望仅仅依靠一份需求规约,就让程序员在固定的时间内以固定的价格去开发该软件。所有用这种方式来对待软件项目的尝试大多以失败而告终,甚至是惨重的失败。

成功的项目需要有序、频繁的客户反馈。不是完全依赖于合同或者有关软件的需求陈述,而是让软件的客户和开发团队密切地在一起工作,并尽量经常地提供反馈。

一个明确了需求、进度以及项目成本的合同根本上是存在缺陷的。在大多数的情况下,合同中指明的条款远在项目完成之前就有可能发生变化。因此,从这个意义上来说,那些为开发团队和客户的协同工作方式提供指导的合同才是最好的合同。

4.响应变化胜过遵循计划

响应变化的能力常常决定着一个软件项目的成败。当构建开发计划时,应该确保计划具有足够的灵活度,并且易于适应上午环境和技术方面的变化。开发计划不能考虑的过远。首先,商务环境很可能会变化,这会引起需求的变动。其次,一旦客户看到系统开始运行,他们很可能会改变需求。最后,即使软件工程师熟悉需求,并且确信它们不会改变,仍然不能很好地估算出开发它们需要的时间。

对于缺乏经验的管理者来说,创建甘特图并依托这些图进行软件管理是一种常见的方法。管理者认为这张图赋予了他们控制整个项目的能力。根据这些图他们能够跟踪单个人的任务,在任务完成时将任务从图上去除,并且可以对实际完成的日期和计划完成的日期进行比较,并对出现的任何偏差做出反应。

实际情况是随着开发的推进,团队和客户对系统的认识会变得更加清晰,导致新需求和新设计方案的出现。图中的某些任务会被删除,一些任务会被发现并增加到图中,这张图的组织结构就不再适用。

较好的做计划的策略是:本周只为下两周做详细的计划,为下三个月做粗略的计划,再以后就做极为粗糙的计划。应该清楚地知道下两周要完成的任务,粗略地了解下以后三个月要实现的需求。至于系统年后将要做什么,有一个模糊的想法就行了。

计划中这种逐渐降低的细致度,意味着仅仅对于迫切的任务才花费时间进行详细的计划。一旦制定了这个详细的计划,就很难进行改变,因为团队会根据这个计划启动工作并有相应的投入。然而,由于计划仅仅支配了几周的时间,计划的其余部分仍然保持着灵活性。


更多阅读
返回列表
© 2010 TianMei Technology All rights reserved. ICP:辽B-2-4-20100065辽公网安备 21010202000010号  网站地图