Bootstrap

《敏捷软件开发》— 敏捷开发 — 敏捷实践


在敏捷开发之前,我们常用的开发模式是瀑布模式。然而,这种模式有很多问题,包括不能很好的响应变化,容易开发出庞杂而难以理解的系统,导致维护和二次开发变得很困难等。此外,这种模式还会降低团队的开发效率,使得团队经常创建错误的产品。其原因在于这样的过程缺乏实践指导和外部过程管控。即使在现在,国内还有很多公司采取的是瀑布式开发模式。

一、敏捷联盟

01年初,由于看到许多公司的软件团队陷入了不断增长的过程的泥潭,一批业界专家聚集在一起概括出了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则。他们称自己为敏捷联盟。之后他们创建出了一份价值观声明,也就是敏捷联盟宣言:

敏捷软件开发宣言


       我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,我们认为:

  • 个体和交互        胜过 过程和工具
  • 可以工作的软件 胜过 面面俱到的文档
  • 客户合作            胜过 合同谈判
  • 响应变化            胜过 遵循计划


      虽然右项也有价值,但是我们认为左项具有更大的价值。

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

人是获得成功的最为重要的因素。如果团队中没有优秀的成员,那么就是使用好的过程也不能从失败中挽救项目,但是,不好的过程却可以使最优秀的团队成员失去效用。如果不能作为一个团队进行工作,那么即使拥有一批优秀的成员也一样会惨败。

一个优秀的团队成员未必就是一个一流的程序员。一个优秀的团队成员可能是一个平均水平的程序员,但是却能够很好地和其他人合作。合作、沟通以及交互能力要比单纯的编程能力更为重要。一个由平均水平程序员组成的团队,如果具有良好的沟通能力,将要比那些虽然拥有一批高水平程序员,但是成员之间却不能进行交流的团队更有可能获得成功。

合适的工具对于成功来说是非常重要的。然而,工具的作用可能会被过分地夸大。食用过多的庞大、笨重的工具就像缺少工具一样,都是不好的。我们的建议是从使用小公举开始,尝试一个工具,直到发现它无法适用时才去更换它。 这也是敏捷编程中所倡导的,直到真正需要时采取实现某种架构或模式。

我们需要记住,团队的构建要比环境的构建重要的多,许多团队和管理者就犯了先构建环境,然后期望团队自动凝聚在一起的错误。相反,应该首先致力于构建团队,然后再让团队基于需要来配置环境。

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

没有文档的软件是一种灾

;