傳統模式VS敏捷開發:回不去的瀑布流,逃不出的迭代
說到軟體開發,模式有很多,敏捷開發算是比較新穎的一種,經過近些年不斷地發展,在國內逐步吸引了越來越多的企業及軟體公司進入這一領域,雖說控制性上來說不如傳統模式,但是較高的靈活性成為其主要優勢。
敏捷開發最早是在90年代才獲得人們廣泛關注的新型軟體開發方式,它具有快速應對需求變化的軟體開發能力。相對於傳統開發模式,它比較注重以使用者需求為核心,採用持續迭代,循序漸進的開發方式,嚴格的來說,敏捷開發並不是一種特定的開發方法,它只是應對需求快速變化的一種軟體開發能力,所以敏捷開發在需求的變更上並不在意,因為專案從始至終都處於不斷地調整中,這一點在客戶滿意度上來說,無疑是非常具有競爭力的。

作為一個開發人員,相信喜歡敏捷開發這種模式的人並不多。
企業之所以喜歡,無外乎其聽起來高大上的理念,實際操作過程中問題太多,開發人員選擇這種模式,通常是不得不選,因為至少它能更好的讓我們的口袋鼓起來,這就像我們上班,誰願意每天早起,但是為了那微博的薪水卻不得不這麼做。
以傳統的瀑布是開發為例,發展時間得有半個世紀了吧,目前依然是主流開發方式之一,因為這種開發方式只需要拿到一份完整詳盡的需求文件,逐個功能Coding,測試部署上線。不需要再次確認需求,不會有人打斷思路。沒有需求更改,只要自己不犯錯,不存在推倒重來的情況。可能這才是大部分開發人員最舒服的工作方式吧,聽起來很完美。但是,如果一個公司每個專案都這麼做,那麼客戶就都跑到別人家去了。

客戶做一個東西如果不要求具有前瞻性,但也必須不要落後,從網際網路公司的業務方向多變性上看,傳統開發具有一定的侷限性,敏捷開發卻正中要點。
第一,敏捷開發週期更短。相對於其他幾種開發模式(瀑布式開發,迭代式開發,螺旋開發),敏捷開發的開發週期無疑更短。它能更快的滿足客戶的需求,當客戶需求有變更時,它也能更快的做出相應的改變。正如它的名字一樣,敏捷代表的是最快的速度。
第二,敏捷開發更好地適應快速變化的需求。任何時候,需求都絕不會是一成不變的。無論前期考慮得多麼周到,為了適應快速變化得市場,為了讓軟體系統更加完善,需求永遠都是在不停變化的。毫不誇張地說,我們正在開發的功能,或許在它還沒上線的時候,使用者已經不需要了。敏捷開發能夠駕馭需求的變化,它主張接受變更,對變更更快的做出響應。
第三,採用迭代方式,可頻繁交付可使用的軟體。在敏捷開發中,可能一個星期就要更新一個版本,交付一個可使用的軟體。然後根據市場需求的變化,快速的交付另一個迭代產品。在這樣頻繁交付過程中,更好的滿足使用者的需求,適應需求的變化。

在一般的公司裡,採用敏捷開發和迭代開發的方式較多,如果企業無法單獨採用敏捷方式完成軟體開發,也可以採用專業公司開發出的敏捷開發框架,成本及後期開發都處於可控範圍,
記得曾經在知乎上看到一位大神對於敏捷開發的看法,這裡分享給大家:
“敏捷”在網際網路和軟體開發領域從涓涓細流逐漸演變為行業潮流,往小了說是改進了開發方法,往大了說是革了瀑布流式的命——把產品開發引向了快速迭代、小步快跑的路線上。
敏捷開發意味著讓我們全面的擁抱需求的變化,但是對於熟悉萬變的市場反饋還遠遠不足以應對。因此為了更快的發現問題和反饋市場的變化,在敏捷開發過程中又引入了繼續整合,持續交付和持續部署來更高效的進行敏捷開發。
我們永遠無法找到真理,我們的每一次努力只是想離它更近一些。所以,不管你喜不喜歡,敏捷開發依然在走近你。