1. 程式人生 > 其它 >從瀑布到敏捷——用漫畫解讀軟體開發模式變遷史

從瀑布到敏捷——用漫畫解讀軟體開發模式變遷史

從瀑布到敏捷——用漫畫解讀軟體開發模式變遷史

軟體開發模式一共經歷了五個階段,分別是瀑布模型(waterfall),敏捷開發(agile),看板(KANBAN),SCRUM 和精益軟體開發(lean)。除了瀑布模型這間小屋和其他小屋有著明顯的界限之外,其他幾種模型就像一個四合院,有著不可分割的關係,這也恰好表明,瀑布模式和敏捷開發模式是軟體工業先後經歷的兩個階段,而 KANBAN,SCRUM 和 LEAN 則是敏捷運動的產物。

瀑布模型:

​ 所謂瀑布模型,就是說,軟體開發是按照一定順序展開的(傳統線性生產流程 : Traditional,linear production flow)。就像汽車生產的流水線一樣,每個部門各司其責,工作按照順序展開,交付件單通道線性流動。你看這幅圖,總體上就分為:需求 → 設計 → 製造 → 測試,四個階段。在這個系統中,客戶被排除在生產系統之外,它們只能從需求的介面人那裡向系統輸入需求。正因如此,客戶無法理解生產所需的費用以及為什麼交付總是會延期,也就會出現一種情況:甲方催我們交付,我們催甲方交尾款。

​ 不僅如此,由於瀑布模型是採用線性的方式工作的,也就會出現各個階段的員工閒置,無事可幹的情況,這也是對時間的一種浪費

敏捷開發:

​ 敏捷開發以使用者的需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。在敏捷開發中,軟體專案在構建初期被切分成多個子專案,各個子專案的成果都經過測試,具備可視、可整合和可執行使用的特徵。換言之,就是把一個大專案分為多個相互聯絡,但也可獨立執行的小專案,並分別完成,在此過程中軟體一直處於可使用狀態

​ 這個模型就解決了瀑布模型把客戶排斥在開發系統外的問題,在敏捷開發中,客戶會參與到軟體開發的整個流程中。整個開發過程不再是一堵不透風的牆,透明是關鍵(TRANSPARENCY IS KEY)。利用敏捷模式開發出的產品,相較於傳統的軟體交付方式,一個顯著的特點是能夠及時響應客戶需求的變更,不斷適應新的趨勢。但是,隨著越來越多的使用者參與進來,越來越多的問題也暴露出來了,越來越多不著調的需求也會被提出。

看板:

​ 看板管理,常作“Kanban管理”,是豐田生產模式中的重要概念,指為了達到及時生產(JIT)方式控制現場生產流程的工具。及時生產方式中的拉式(Pull)生產系統可以使資訊的流程縮短,並配合定量、固定裝貨容器等方式,而使生產過程中的物料流動順暢。KANBAN要求把開發中的任務,以 TODO List 的方式表現出來:形式可以是即時貼,也可以是視覺化軟體等等。在製造業中,看板也是非常重要的管理方法。也有將其稱為目視化管理的。

Scrum:

​ Scrum原始含義是指英式橄欖球次要犯規時在犯規地點對陣爭球,在軟體開發領域中,SCRUM是一種迭代式增量軟體開發過程,它包括了一些預定義的角色:

產品負責人 Product Owner:產品負責人負責維護訂單

Scrum主管Scrum Master:SCURM Master 對整個SCRUM 過程負責,不惜一切代價(AT ANY COST),保證團隊的工作時間和計劃。

開發團隊Team:在 SCRUM 過程中,開發團隊通常會進行衝刺 (Sprint),一個衝刺週期的長度通常是2-4周。

精益軟體開發:

​ 精益軟體開發不再像傳統的軟體開發一樣,耗時幾年才向客戶交付完整的軟體。取而代之的是,優先建立一個最簡可用的原型產品投放市場或交付到客戶手中。

​ 但是真正實現起來的時候並沒有這麼容易,因為設計師們往往無法真正做到只把最必要的功能留在初級版本,為什麼呢?因為他們總想著做點什麼小細節來博取客戶的讚歎,Mr Jamie曾把這種心理稱為藝術家心結。