01-敏捷(Agile)

0、敏捷Agile

敏捷对应的是一组价值观和原则。具体可以参考敏捷宣言(Agile Manifesto)。敏捷宣言是针对过去流行的重量级方法论的变革。重量级方法论把软件项目和真正要做的事情割裂开来。我们真正要做的事情是创建软件,帮助客户。后者才是根本和目的。

敏捷宣言和12个原则(todo)

所有遵循敏捷宣言和原则的项目都可以被认为是敏捷的。当然,敏捷团队为达成敏捷也会执行一些特定的共同的实践。例如
Scrum或者Kanban,或者两者的混合。这些属于管理实践。
XP(极限编程)属于技术(工程)实践。更多更新的实践,例如持续发布(Continuous Deployment),生产环境测试(Testing in Production)。
一个好的敏捷团队要同时选择对自己最适用的的管理和工程实践。那些只选择了一两项措施的团队,很可能只是在进行假敏捷。

1、敏捷开发基本概念

敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。

在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。简单地来说,敏捷开发并不追求前期完美的设计、完美编码,而是力求在很短的周期内开发出产品的核心功能,尽早发布出可用的版本。然后在后续的生产周期内,按照新需求不断迭代升级,完善产品。

敏捷最大的特色是迭代式开发。

敏捷开发思想是Martin Fowler发明的 ,还在面向对象开发、设计模式、UML 建模领域做出了重要贡献。目前担任 ThoughtWorks 公司的首席科学家。

2、敏捷开发模式的分类

敏捷开发的实现主要包括 SCRUM、XP(极限编程)、Crystal Methods、FDD(特性驱动开发)等等。其中 SCRUM 与 XP 最为流行。

同样是敏捷开发,XP 极限编程 更侧重于实践,并力求把实践做到极限。这一实践可以是测试先行,也可以是结对编程等,关键要看具体的应用场景。

SCRUM 则是一种开发流程框架,也可以说是一种套路。SCRUM 框架中包含三个角色,三个工件,四个会议,听起来很复杂,其目的是为了有效地完成每一次迭代周期的工作。在这里我们重点讨论的是 SCRUM。

3、敏捷开发的优势

1、敏捷开发属于增量式开发,对于需求范围不明确,需求变更较多的项目而言,可以很大程度上响应及拥抱变化。
2、对于互联网产品而言,市场风向转变很快,需要一种及时快速的交付形式,而敏捷开发则能更好地适用于此。
3、敏捷开发可最大程度体现80/20法则的价值,通过增量迭代,每次都优先交付那能产生80%价值效益的20%功能。能最大化单位成本收益。

4、敏捷开发的误区

轻量高校,而非快速,越快越好

5、敏捷开发的特点

1、个体和交互胜过过程和工具
2、可以工作的软件胜过面面俱到的文档
3、客户合作胜过合同谈判
4、响应变化胜过遵循计划

6、敏捷开发的核心原则

1、主张简单
2、拥抱变化
3、第二目标是可持续性
4、递增的变化
5、投资最大化
6、有目的的建模
7、多种模型
8、高质量的工作
9、快速反馈
10、轻装前行

你可能感兴趣的:(01-敏捷(Agile))