为什么要敏捷?

传统的软件开发都是基于瀑布模型,按照(1)问题评估(2)明确和分析软件需求(3)设计系统架构(4)开发代码(5)部署和使用系统(6)维护解决方案等流程进行的。从产品开发到完成部署,上线使用的周期会比较长。

这个周期长带来了几个问题:
(1)需求的时效性。假设我们软件开发周期是一年,那一年前的需求在一年后是否仍然是需求?如果不是的话,意味这我们这一年的工作,至少有些事不必要的。
(2)一般而言,软件是一系列功能的集合。当我们完成一个功能后,我们有两种做法:

  • 将其发布给客户,让它对客户产生价值
  • 存在我们的代码库中,直到整个软件的功能全部完成后再发布
    显然,第一种方式是一种比较好的方式,一方面,能够快速的为客户创造价值,另一方面,客户可以尽早的对当前的功能提出意见进行修改,此时的修改代价比较小。

为了解决这些问题,敏捷强调迭代开发,增量开发,在每个迭代周期的结束都能提供给用户可工作的软件,尽早让软件对客户产生价值,获取客户的反馈。尽早的将客户引入到开发流程中,及时的做需求的变更做出改变,尽最大的力量交付给客户价值最高的产品。

你可能感兴趣的:(为什么要敏捷?)