敏捷软件开发宣言

2018年11月29日 作者 张舫

敏捷软件开发宣言

Agile Software Development Declaration

●个体和交互胜过过程和工具
●可以工作的软件胜过面面俱到的文档

●客户合作胜过合同谈判

●响应变化胜过遵循计划

 

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

 

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

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

    适合的工具对于成功来说是非常重要的。像编译器,IDE,源码控制系统等,对于团队的开发这正确完成他们的工作量是至关重要的。然而,工具的作用可能会被过分的夸大。使用过多的庞大,笨重的工具就像缺少工具一样,都是不好的。

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

 

    没有文档的软件是一种灾难。代码不是传达系统原理和结构的理想媒体。团队更需要编制易于阅读的文档,来对系统设计决策的依据进行描述。

    然而过多的文档比过少的文档更糟糕。编制众多的文档需要花费大量的时间,并且要使用这些文档和代码保持同步。就要花费更多的时间,如果文档和代码之间失去同步,那么文档就会变成庞大的,复杂的谎话,会造成重大的误导。

    如果全部拥有的仅仅是一份简短的系统原理和结构方面的文档,那么如何来培训新的团队,是他们能够从事与系统相关的工作呢?我们会非常密切地和他们在一起工作。我们紧挨着他们坐下来帮助他们,把他们的只是传授给他们。我们通过近距离的培训和交互使他们成为团队的一部分。

 

客户合作胜过合同谈判

 

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

响应变化胜过遵循计划

 

   响应变化的能力常常决定这一个软件项目的成败。当我们构建计划时,应该确保计划是灵活的并且易于适应商务和技术方面的变化。

    计划不能考虑的过远。首先,商务环境很可能会变化,这会引起蓄妾的变动。其次,一旦客户看到系统开始运作,他们很可能会改变需求。最后,即使我们熟悉需求,并且确信他们不会改变,我梦仍然不能很好地估算出开发他们需要地时间。