AgilePPP
主要内容:
- 敏捷实践
- 极限编程概述
- 计划
- 测试
- 重构
敏捷实践—敏捷联盟
- 个体和交互胜过过程和工具
- 可以工作的软件胜过面面俱到的文档
- 客户合作胜过合同谈判
- 相应变化胜过遵循计划
敏捷实践—原则
12条原则:
- 我们最优先要做的是通过尽早的,持续的交付有价值的软件来是客户满意。
- 即使到了开发的后期,也欢迎改变需求。敏捷过程通过利用变化来为客户创造竞争优势。
- 经常性的交付可以工作的软件,交付的间隔可以从几周到几个月不等,交付的时间间隔越短越好。
- 整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
- 围绕被激励起来的个人来构建项目。给他们提供所需要的环境和支持,并且信任他们能完成工作。
- 在团队内部,最具有效果的并且最有效率的传递信息的方法,就是面对面的交流。
- 工作的软件是首要进度度量标准。
- 敏捷过程提倡可持续的开发速度。责任人。开发者和用户应该能够保持一个长期的,恒定的开发速度。
- 不断关注优秀的技能和好的设计会增强敏捷能力。
- 简单—使未完成的工作最大化的艺术—是根本的。
- 最好的架构,需求和设计出自与自组织的团队。
- 每隔一定的时间,团队会在如何才能更有效地工作仿麦呢进行反省,然后相应的对自己的行为进行调整。
极限编程概述—极限编程实践
在敏捷开发的我们需要做些什么?
- 客户要作为团队的成员。
- 用户素材。要根据需求来进行优先级排列然后安排实现需求的时间。
- 短期交付。在开发的过程中要及时的交付可使用的软件。一方面可以跟着进度来,另一方面可以根据已有的内容使用户尽早的提出需求不一致的地方。
- 验收测试。
- 结对编程。每两个程序员结合一起工作,能提高效率,也能避免一些不必要的错误。
- 测试驱动的开发方法。
- 集体所有权。
- 持续集成。
- 可持续的开发速度。
- 开放的工作空间。
- 计划游戏。
- 简单的设计。
- 重构。
- 隐喻。将一些抽象的概念通过隐喻的方式去理解。
计划
- 初始探索 — 探究,分解和速度。
- 发布计划 — 开发人员和客户要对软件的发布时间达成一致。
- 迭代计划 — 制定迭代的规模,时间等相关的计划。
- 任务计划 — 在迭代开始的时候要制定好计划。
- 迭代 — 按照计划进行迭代,这样保证交付给客户可运行的软件,让客户能看到项目的进展。
测试—测试驱动的开发方法
- 一个测试优先设计的示例。
- 测试促使模块之间隔离。
- 意外获得解耦和。
测试—验收测试
- 验收测试示例。
- 意外获得的架构。
重构
每一项软件模块都具有三项职责:
第一职责是他运行起来所完成的功能。这也是这个模块得以存在的原因。
第二职责是他要应对变化。几乎所有的模块在他们的生命周期中都要变化。开发者要保证这种改变应尽可能的简单。一个难以改变的模块是拙劣的,即使能工作也要对其进行修正。
第三职责是要和阅读他的人进行沟通。对模块不熟悉的开发人员应该能比较容易的阅读并理解它。一个无法进行沟通的模块也是拙劣的,同样需要进行修正。