敏捷方法论的前世今生- 敏捷历史,敏捷宣言与敏捷12条原则

敏捷方法论的前世今生

敏捷方法的历史:

  • 敏捷一词来源于2001年初美国犹他州雪鸟滑雪胜地的一次敏捷方法发起者和实践者(他们发起组成了敏捷联盟)的聚会。
    • 迭代和增量开发方法最早可以追溯到二十世纪三十年代非软件项目。
    • 二十世纪六十年代美国航天局水星计划使用了一些极限编程和测试先行的防范。
    • 在二十世纪九十年代,各种各种轻量级软件开发方法纷纷被提出,其中包括:
      • 1991: RAD (rapid application development)
      • 1994: UP (unified process) 和 DSDM(dynamic systems development method).
      • 1995: Scrum
      • 1996: Crystal Clear & XP(extreme programming)
      • 1997: FDD (feature-driven development)
    • 2001年,17位软件开发者齐聚在美国的犹他州的雪鸟(snowbird),讨论上述轻量级的软件开发方法,并写下了敏捷软件开发宣言。

敏捷宣言(Manifesto for Agile Software Development):

- 个体和互动高于流程和工具 (Individuals and interactions over processes and tools)
- 工作的软件高于详尽的文档 (Working software over comprehensive documentation)
- 客户合作高于合同谈判 (Customer collaboration over contract negotiation)
- 响应变化高于遵循计划 (Responding to change over following a plan)

敏捷12条原则中文版:

1. 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。 
2. 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
3. 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。 
4. 业务人员和开发人员必须相互合作,项目中的每一天都不例外。 
5. 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。
6. 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。
7. 可工作的软件是进度的首要度量标准。
8. 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
9. 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
10. 以简洁为本,它是极力减少不必要工作量的艺术。
11. 最好的架构、需求和设计出自自组织团队。
12. 团队定期地反思如何能提高成效,并依此调整自身的举止表现。

敏捷12条原则英文版 (Twelve Principles of Agile Software):

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be ableto maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity--the art of maximizing the amount  of work not done--is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

评价一个敏捷团队是否合格的衡量标准(个人观点仅供参考)

- 迭代开发:整个开发过程被分为好几个迭代周期,每个迭代周期可以是定长或者不定长。
- 增量交付:产品在每个迭代周期内被增量交付使用,而不是在整个开发周期结束的时候一次性交付。
- 团队成员与用户积极反馈以推动产品的开发:用户全程参与到产品的开发过程中。
- 持续集成: 新的功能或者变化持续整合到产品中。
- 自我管理: 积极的,自我管理的,具备自由交流风格的团队。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章