敏捷开发是相对传统的瀑布式开发而言的。是一种新的开发模式,核心是快速迭代,提交交付速度,加快价值的流动。
要说明白敏捷,先得了解瀑布开发的弊端。
传统项目的管理有三要素:需求范围(功能,特性)、成本(资源,预算),进度(时间)。正常的开发流程应该如下图所示
实际上就是管计划,我们期待能够通过严格的计划来按时交付高质量的产品和项目,但是实际情况往往是甲方期待我们造一艘豪华游轮,实际交付的是一艘小破船。之所以这样,是因为传统的瀑布式开发存在两个假设:
1.项目需求是清晰和明确的;
2.计划是合理的
然而,这两个假设在实际项目开发中都是不满足的。在项目刚开始的时候,需求是很难确定的,需求总是随着时间变化不断调整,并且在项目初期是无法保证制定的计划的正确性的。敏捷开发正是为了解决这个问题。
敏捷就是通过高效的协作,获取快速的反馈,以便尽早做出调整,从而减少浪费,交付更大的价值。敏捷有很多实施方式,题主说的scrum是其中一种方式,具体方式如下:
我们现在常用的是scrum。scrum的具体实施方式和瀑布开发有很大不同,通过下图可以清晰看出来:
敏捷是实现价值驱动的管理方法,强调的是通过不断的迭代去逼近最终的目标,根据实际情况每个迭代可以动态的调整项目目标,始终以交付价值为最终目标。敏捷开发概括起来就是:在特定约束条件下,控制产品遗留隐患对产品交付的产品的使用和维护的影响,关注人员能力的提升,尽可能将产品的价值最大化。敏捷比较符合互联网公司“小步快跑”的方式,能够快速的响应市场变化,先解决从0到1的问题,再解决从1到无穷大的问题。因此这些年越来越热。很多公司都在做敏捷转型。