首先,是敏捷开发的定义:“敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。” 这在我们目前生活中最多看到的就是手机软件每过一小段时间就会提示更新,开发人员并不是开发完就不管了,而是通过对用户的反馈结果以及实际运行中出现的错误,不断修改,推出更新包,这就是它的迭代性,每次提示更新就是一次迭代的过程。
敏捷开发是一种开发方式,与之前相比,不仅仅在于迭代性,还有它以人为核心的思路,避免以往程序开发中一切按照文档,文档数量一大堆的按部就班的死板方式。它仅仅写必要的文档,并且通过人与人之间的交流,来实现开发指导。
我认为它的开发宣言就很好的阐明了敏捷开发的意志:
“个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
虽然右项也有价值,但是我们认为左项具有更大的价值。”
这是一个灵活高效,有人情味的开发方式。
敏捷开发中最常见的开发过程就是Scrum,它是一种迭代式增量软件开发过程,通常用于敏捷软件开发,是非常受欢迎的敏捷流派。它最大的好处是它的门槛很低,比如方便学习、容易被人接受、投入低等,所以在当下十分流行。scrum来源于橄榄球术语“争球”,就像他的名字一样,提高参与度、积极性,让团队高效工作。