項目的開發模式,一般分為三種,瀑布式,迭代式和現在如火如荼的敏捷開發。
瀑布式:是最典型的預見性的方法,嚴格遵循預先計劃的需求分析,設計,編碼,集成,測試,維護的步驟,并按照順序進行。每一步驟結束之后才能開始下一步驟。而前一步的成果物會作為后一步驟的輸入物。如我們的例子中就是使用的瀑布模型。
優點: 對于每一階段的產出有嚴格的要求。對于項目質量的追蹤非常密切。
缺點: 不夠靈活,嚴格的分階段導致自由度降低。對于項目后期需求的變化難以調整,或者說調整的代價過于高昂。
對于一個項目來說,越早期的調整對于項目的影響越少。而瀑布式的開發模式,客戶在最后階段交付的時候才能看到成果物。一旦成果物有偏差,調整起來的代價勢必相當巨大。也鑒于此,使用瀑布模式開發,對于早期需求的提煉,分析和把控相當的重要。而需求不明或者項目需求經常變化的情況是不建議使用瀑布模型的。
迭代式:是一種與瀑布式開發相反的開發過程,他彌補了傳統開發方式中的一些弱點,具有更高的成功率。
所謂的迭代開發,就是每次只設計和實現一個產品的一部分,逐步完成整個產品。說白了,就像畫畫一樣,先畫輪廓,然后得到客戶反饋后在畫細節。每一次迭代都會經歷瀑布模型的需求分析,設計,編碼,集成,測試,維護的步驟。即我先做到從沒有到有,然后再精益求精,慢慢優化。
優點:每一次的迭代,客戶都可以看到成果物,然后做出反饋。相比瀑布模型在整個項目最后看到結果,每一次迭代的完成都可以看到相關的結果和得到客戶的反饋。同時,每一次跌代里,都是小的瀑布模型,從而保證了每次產出的準確性。
缺點:明知道項目中的不足之處,但是不馬上修復。將主要精力優先放在從無到有的過程中。
所以對于迭代模型,即保持了瀑布模型成果物的高質量,也降低了項目在實施過程中需求頻繁變化造成的負面影響。但是在短期內,無法整體到達客戶質量要求。