2001年2月11日,在美国犹他州雪鸟(Utah Snowbird)滑雪圣地的一间小屋中,由著名专家Kent Beck等领头的17位软件专家成立了“敏捷联盟”(Agile Alliance)。与会专家经过为期两天的讨论之后共同发布了“敏捷软件开发宣言”(Agile Manifesto),简称为“敏捷宣言”。
该宣言定义了敏捷开发的四项价值观,全文如下:
从亲自和协助他人进行软件开发的实践中,我们发现了更好的软件开发方法[即敏捷方法]。基于已有努力,我们已经为这个方法树立了如下四项价值观:
(1) 个体和交互 胜过 流程和工具;
(2) 可工作的软件 胜过 面面俱到的文档;
(3) 客户协作 胜过 合同谈判;
(4) 响应变更 胜过 遵循计划。
虽然上述右边项也具有实践价值,但我们认为左边项具有更大的价值。
上述四项价值观代表了“敏捷”方法的核心特征,以此为指导定义的所有软件方法都可归入敏捷方法大群体。
无独有偶,另一群业界专家从保住工程师“饭碗”并减轻工作压力的角度出发,提出了与上述敏捷宣言对立的所谓“现实软件开发宣言”。该宣言由“瀑布联盟”(Waterfall Alliance)提出,故又称为“瀑布宣言”,全文如下:
基于近些年来参与和观察软件开发实践之所得,我们总结了一个令人沮丧的结论,那就是:这个星球上的软件开发将永远没有所谓更好的方法和途径。虽然敏捷宣言看上去能取悦于经验尚浅的工程师,但是那些在业界滚过千百回的资深工程师都不会为之心动。因为他们知道,敏捷方法只是一项技术而已,它没有考虑和照顾到现实实践中的方方面面。
现实实践教会了我们如下四项价值观:
(1)流程和工具 胜过 个体和交互;
(2)面面俱到的文档 胜过 可工作的软件;
(3)合同谈判 胜过 客户协作;
(4)遵循计划 胜过 响应变更;
你也许非常幸运,能工作于一个践行敏捷宣言的团队中。但是,只要你能践行上述四项价值观,就能确保在任何情境中都能“保住饭碗”,永无“被开除”之虑。
如瀑布联盟所言,发布上述宣言不是为了抵制敏捷方法,也不是为了鼓吹瀑布模型(由软件工程学先驱Winston Royce于1970年提出),而是为了鼓励工程师与客户和用户之间彼此尊重。由此出发,瀑布联盟还定义了一些旨在保护工程师“饭碗”的法则,列举其中之典型如下:
ü 不要主动寻求可能会受到责备的行为。
ü 需求变更就是“受罪”,要让客户一提到变更就感受到痛苦。
ü 不要频繁交付可工作的软件,因为这样会令客户做出改变。
ü 业务人员和开发人员只应保持最少的必要交流,因为双方通常都很忙且彼此“语言不通”。
ü 遵守完备的过程计划,因为个体比过程更不可靠。
ü 以经督导委员会审核并同意的正式文档作为信息传递的主要信息。所有其他文档都会造成潜在的责任包袱。
原文:http://blog.csdn.net/secbok/article/details/21340729