我们在过程式开发(瀑布模型)中,是以文档为驱动的(比如机房合作),整个过程中需要有大量并且很详细的文档,开发人员才能后续开发,一切以文档为驱动,每个阶段有每个阶段的任务,看似每个阶段都有明确的规定,对效率很好,但是实际上相互之间还会产生偏差,并且不适合需求不明确,以及企业级的项目。而且过程式的开发让开发人员成了流水工,时间一长影响员工的激情,继而影响效率,并且也不利于开发人员创新和个人发展。
每7-10年,整个世界就会经历一次翻天覆地的技术变革。——IBMRational 软件总经理
软件开发方法不断处于发展过程中,就目前来看,敏捷开发已经受到越来越多人的重视,从中小项目开始进入大型开发项目,展现出的优势越来越明显。那何为敏捷开发?
- 什么是敏捷开发?
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。
怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发。
仔细分析上面对敏捷开发的解释,我们对其中的关键词来进行分析。
- 以人为核心
敏捷开发它只写有必要的文档,或尽量少写文档,敏捷开发注重的是人与人之间,面对面的交流,所以它强调以人为核心。
必要的文档不可少,注重面对面交流像是每天的站会。
- 迭代、循序渐进
在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。
目前使用jire创建迭代,划分子任务,可视化任务流程,每天的jenkins持续集成和部署。
- 开发方法
敏捷开发由几种轻量级的软件开发方法组成,包括极限编程、Scrum、精益开发(LeanDevelopment)、动态系统开发方法、特征驱动开发(Feature Driver Development)、水晶开发(CristalClear)等等。所有这些方法都具有以下共同特征,它们也是敏捷开发的原则.
- 开发原则
1.迭代式开发。即整个开发过程被分为几个迭代周期,每个迭代周期持续的时间一般较短,通常为1到6周。
2.增量交付。产品是在每个迭代周期结束时被逐步交付使用,每次交付的都是可以被部署、能给用户带来即时效益和价值的产品。
3.开发团队和用户反馈推动产品开发。敏捷开发方法主张用户能够全程参与到整个开发过程中。这使需求变化和用户反馈能被动态管理并及时集成到产品中。
4.持续集成。新的功能或需求变化总是尽可能频繁地被整合到产品中。有些是在每个迭代周期结束的时候集成, 有些则每天都在这么做。
5.开发团队自我管理。人是敏捷开发的核心。敏捷开发总是以人为中心建立开发的过程和机制,而非把过程和机制强加给人。
- 小结
敏捷开发直接带给开发者的是开发者需要承担更多的责任,需要更全面的技术能力,项目的需求和开发者能力这是良性循环。