敏捷哲学中有重要的一条:天下无难事,只怕多练习;熟能生巧,则可化难为易。第一代软件开发方法多被描述成“瀑布式”或“传统式”方法。这些方法会假设整个软件开发过程可以划分为一系列界限明晰、方向明确、可重复进行的任务模块,因此这样的软件开发过程通常都是计划推动式的顺序式过程。但是过往经验证明,事实并非如此。与其他工业生产过程不同,软件开发是一个需要一定程度发明创新的科学过程。几乎每个大型软件开发工程都蕴含着无法避免的风险和不确定性。第二代软件开发方法被描述为“迭代式”方法。这些方法指出,如果把大型软件工程划分为一系列有时间限制的“迭代单元”,而每一个迭代单元都能以前一个单元产生的实际结果为基础进行自己的工作,于是每个单元的主管都要能对整个项目的真实进度、自己所负责的业务流程有更深入的理解。因此利益相关者就能更早地对整个项目的完成质量有一个清晰的认识。统计信息也表明迭代方法比传统方法获得了更大的进步。但是,采用迭代方法的项目的成功程度显然还不尽如人意。我们还是会出现不能按时完工、超出预算或者无法交付能够完全满足客户需求的产品的情况。我们的效率仍然低下,各种死板的流程和效率低的管理结构产生了大量人力物力的浪费,比如,一些无意义的文档、会议、签字工作;缓慢的反馈和交接机制等。另外,我们也还是面临着由未发现错误引起的质量问题,这也导致软件维护难度上升。2001年,17名思想领袖(自称为“有组织的无政府主义者”)在犹他州Snowbird聚会,力图通过“头脑风暴”的方式来找出一种更好的方法。结果在这次会议中诞生了《敏捷软件开发宣言》,通常又称为《敏捷宣言》,并发表在www.agilemanifesto.org上。这个宣言定义了4个核心价值观,并提出了一共12条原则来体现这些核心价值观。这些简洁有力的思想成果显著改变了IT业内人士对软件开发过程的认识。这一系列思想和观点彻底颠覆了以往那种以文档工作为驱动、任务繁重的软件开发过程。但是,《敏捷宣言》的广泛流传也带来了一些不良后果。首先,一部分敏捷开发团体将这一宣言视为宗教教义一般的存在,不允许对其做任何改动或违背。其次,对宣言内容的教条化理解也限制了敏捷开发团体所讨论的内容范围,这样并不利于在实际的商业环境中推广敏捷开发思想(之后会对这种现象做更多讨论)。再次,尽管多年来,业内积累了很多对《敏捷宣言》有益的改进意见,但围绕在这一宣言周围的类似于宗教热情一样的气氛却让人们对这些改进意见置若罔闻。但是,就像后面讨论的那样,如果想更加高效地在现实商业环境中推广敏捷开发思想,那么对《敏捷宣言》的改进势在必行。图2.1以思维导图的形式显示了这一章的组织结构。我们将从右上角开始,按顺时针方向对其中每个主题逐一进行描述。本章要点《敏捷宣言》所提供的价值观及随之而来的重要原则构建了整个敏捷开发思想的哲学理论基础。在过去10年中,有不计其数的开发团体按照《敏捷宣言》所提供的原则取得了敏捷开发的成功,他们的成功经验增强了我们对《敏捷宣言》的信心。精益软件开发思想也为规范敏捷交付提供了部分理论基础。人们在实际工作中的实际行为并不一定像敏捷开发教科书里所描述的那样标准。
相关资源:七夕情人节表白HTML源码(两款)