第 3章敏捷视角下的过程要点浏览概念:敏捷软件工程是哲学理念和一系列开发指南的综合。这种哲学理念推崇让客户满意和软件尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品以及整体精简开发。开发方法强调超越设计和分析(尽管并不排斥这类活动)的发布及开发人员和客户之间主动和持续的沟通。人员:软件工程师和其他项目共利益者(经理、客户、最终用户)共同组成敏捷开发团队,这个团队是自我组织的并掌握着自己的命运。一个敏捷团队能够培养所有参与人员之间的交流与合作。重要性:孕育了基于计算机系统和软件产品的现代商业环境,正以飞快的节奏不断变化着,敏捷软件工程提出了可用于特定类型软件和软件项目的不同于传统软件工程的合理方案。事实证明,这一方法可以快速交付成功的系统。步骤:敏捷开发恰当的称呼应当是“类软件工程”,它保留了基本框架活动:客户沟通、策划、建模、构建、交付和评估,但将其缩减到一个推动项目组朝着构建和交付发展的最小任务集(有人认为这是以牺牲问题分析和方案设计为代价而实现的)。工作产品:接受敏捷理念的客户和软件工程师有共同的观点:唯一真正重要的工作产品是在合适时间提交给客户的可运行软件增量。质量保证措施:如果敏捷团队认为过程可行,开发出的可交付软件增量能使客户满意,则表明敏捷方法已经正确实施。2001年,KentBeck和其他16位知名软件开发者、软件工程作家以及软件咨询师[BEC01a](被称为敏捷联盟)共同签署了“敏捷软件开发宣言”。该宣言声明:我们正在通过亲身实践以及帮助他人实践的方式来揭示更好的软件开发之路,通过这项工作,我们认为:个体和交互胜过过程和工具可工作软件胜过宽泛的文档客户合作胜过合同谈判响应变化胜过遵循计划亦即,虽说上述右边的各项很有价值,但我们认为左边的各项具有更大的价值。一份宣言通常和一场即将发生的破旧立新的政治运动相联系。从某些方面来讲,敏捷开发确实是一场运动。虽然多年来大家一直都在使用着指导敏捷开发的基本思想,但真正凝聚到一场运动中还是近十年来的事情。本质上讲,敏捷方法1是为了克服传统软件工程中认识和实践的弱点开发而成的。敏捷开发可以带来多方面好处,但它并不适用于所有的项目、所有的方面、所有的人和所有的情况,它并不完全对立于传统软件工程实践,也不能作为超越一切的哲学理念而用于所有软件工作。在现代经济生活中,很难甚至无法预测一个基于计算机的系统(如基于网络的...