敏捷开发是一种从1990年开始逐渐引起人们广泛关注的新型软件开发方式,它是具有应对快速变化的需求的软件开发能力。相对于非敏捷开发,它是一种以用户需求为核心,持续迭代,循序渐进的开发方式。敏捷绝非某一种特定的开发方法,它只是一种应对快速变化的需求的一种软件开发能力。所以敏捷开发并不在意需求是否变更,即便是在项目开发的后期,敏捷开发依然乐于接受需求的变更。这一点对于取得客户的满意度来说,无疑是非常具有竞争力的。
但是,作为一个开发人员,任何人都不会喜欢这种开发模式。但是我们不得不选择敏捷开发,因为它能更好的充实我们的口袋。就好比我们每天都不想起床上班,但是为了那微薄的薪水却不得不干。对于程序员来说,大家更喜欢的开发模式可能是瀑布式开发。试想一下,拿到一份完整详尽的需求文档,逐个功能Coding,测试部署上线。不需要再次确认需求,不会有人打断思路。没有需求更改,只要自己不犯错,不存在推倒重来这才是大部分开发人员最舒服的工作方式吧,简直太完美了。但是,如果一个公司每个项目都这么做,那么客户就都跑到别人家去了。
既然没有人喜欢敏捷开发,那么为什么我们还要选择它呢?我想不外乎以下几点原因:
第一,开发周期更短。相对于其他几种开发模式(瀑布式开发,迭代式开发,螺旋开发),敏捷开发的开发周期无疑更短。它能更快的满足客户的需求,当客户需求有变更时,它也能更快的做出相应的改变。正如它的名字一样,敏捷代表的是最快的速度。
第二,更好地适应快速变化的需求。任何时候,需求都绝不会是一成不变的。无论前期考虑得多么周到,为了适应快速变化得市场,为了让软件系统更加完善,需求永远都是在不停变化的。毫不夸张地说,我们正在开发的功能,或许在它还没上线的时候,用户已经不需要了。敏捷开发能够驾驭需求的变化,它主张接受变更,对变更更快的做出响应。
第三,采用迭代方式,频繁交付可使用的软件。在敏捷开发中,可能一个星期就要更新一个版本,交付一个可使用的软件。然后根据市场需求的变化,快速的交付另一个迭代产品。在这样频繁交付过程中,更好的满足用户的需求,适应需求的变化。
在一般的公司里,采用敏捷开发和迭代开发的方式较多。知乎大神是这么说的:
“敏捷”在互联网和软件开发领域从涓涓细流逐渐演变为行业潮流,往小了说是改进了开发方法,往大了说是革了瀑布流式的命——把产品开发引向了快速迭代、小步快跑的路线上。
敏捷开发意味着让我们全面的拥抱需求的变化,但是对于熟悉万变的市场反馈还远远不足以应对。因此为了更快的发现问题和反馈市场的变化,在敏捷开发过程中又引入了继续集成,持续交付和持续部署来更高效的进行敏捷开发。
我们永远无法找到真理,我们的每一次努力只是想离它更近一些。所以,虽然你可能不喜欢,但是还是请淡定的接受敏捷开发吧。
#### 欢迎关注我的公众号“java工会”,一起交流技术