什么是敏捷开发?
敏捷开发=迭代开发+增量开发
迭代开发:将一个大项目分解成多个小项目,每个小项目都有类似的生命周期。开发者首先发布一个简单的版本,然后再不断的增加功能或者进行改进,这个过程就是不断迭代的过程,每次迭代都有完整的生命周期(包括需求分析、设计、编码、测试、部署评估)。
增量开发:迭代开发只是将一个大项目分成多个小项目来完成,但是没有规定如何划分项目进行迭代。这时,就要按照增量开发的方式进行迭代,迭代的每个版本都会增加一个用户可以感知的完整功能,就是按照功能进行划分迭代。
敏捷开发的优点
- 及时交付:敏捷开发完成第一个版本就可以先进行交付,而不需要等到完成所有功能再进行交付
- 反应迅速,拥抱变化:当前市场需求变化很快,当需求发生变化的时候,敏捷开发可以及时的做出相应,进行改变。
- 80/20原则:根据增量开发,可以先完成具有80%价值的20%的功能。
什么是瀑布模式?
一种由需求文档驱动的开发模式,开发人员严格按照文档进行开发,瀑布开发模式分为几个阶段:
瀑布模式的缺点
- 需求隔离:每个开发人员只能接触到自己负责的阶段,对用户需求理解不高,开发人员像流水线上的工人。
- 变更代价大:正如这个开发模式的名字:瀑布 一样,如果开发过程中需求变更,代价极大。
- 束缚创造力:由于强调文档驱动,限制了开发人员的创造力
- 周期漫长