1. 程式人生 > >敏捷開發系列學習總結(9)——10大流行程式設計方法

敏捷開發系列學習總結(9)——10大流行程式設計方法

過去,幾乎所有的軟體開發專案都採用瀑布模型。這種程式設計方法酷似工廠裝配線,要求開發人員完成一個開發階段,之後才能進入到下一個階段。這種方法高度結構化,但是專案需求有變化時,它就不適用了。
近些年來,開發人員開始青睞更迭代性的流程,因而更容易兼顧專案範圍和需求出現的變化。敏捷軟體開發以及似乎無窮無盡的變種方法已越來越常見。現在它們成了主流的程式設計方法。
我們在本文中介紹了十種最流行的軟體開發方法的功能特性,包括敏捷、Scrum、精益、極限程式設計,甚至還有瀑布方法。
1、敏捷軟體開發
2001年,17位軟體開發人員簽署了敏捷宣言(Agile Manifesto),因此載入史冊。自那以後,敏捷軟體開發迅速流行起來;實際上,在2015年弗雷斯特調研公司的一份報告中,54%的受訪企業表示,其內部一半以上的開發團隊在使用敏捷方法。敏捷理念基於12個核心原則,這些原則注重簡短迭代、持續交付、簡潔性、回顧以及終端使用者和開發人員之間的協作。
2、Scrum
敏捷軟體開發有多種版本,Scrum是最受歡迎的版本之一,接受《2015年敏捷現狀》報告調查的受訪者中70%表示,他們採用Scrum或Scrum混合方法。這是一種協作框架,最先由傑夫·薩瑟蘭(Jeff Sutherland)在1993年發明。它把複雜專案分成了多個簡短的迭代開發週期(sprint),每個迭代開發週期為期兩到四周,它注重勇氣、專注、承諾、尊重和開放性這五個價值觀。
3、精益軟體開發
雖然精益開發通常與敏捷開發聯絡起來,但精益開發的原則實際上源自豐田公司的精益製造流程。這套開發方法依賴七個關鍵的原則:消除浪費、促進反饋、儘量延遲決策、快速交付、融入完整性、授權團隊和著眼整體。2003年,精益首次引起了軟體開發界的注意,當時瑪麗·波彭代克(Mary Poppendieck)和湯姆·波彭代克(Tom Poppendieck)出版了《精益軟體開發:敏捷工具包》一書。
4、看板
看板是敏捷軟體開發的另一個變種,靈感源自豐田公司。它為開發人員提供了一種直觀的方法,可以檢視什麼工作需要完成,讓他們得以在有精力時可以“拉取”工作,而不是“推送”工作,以完成某些任務。看板依賴三個核心原則:視覺化今天處理的工作,限制在製品,並改進流動。
5、快速應用開發(RAD)
這些年來,幾種不同的軟體開發方法使用了RAD這個名稱。最知名的也許當數詹姆斯·馬丁(James Martin)的方法,這套方法於上世紀80年代問世於IBM。它被認為是一種敏捷方法,因為它注重適應不斷變化的需求這種能力,不再強調事先規劃。
6、測試驅動型開發(TDD)
測試驅動型開發與敏捷軟體開發和極限程式設計都有關。這種方法由肯特·貝克(Kent Beck)及其他人首創,需要開發人員先為任何新的功能特性編寫一個測試,之後開始程式設計工作。它鼓勵開發人員極量少編寫程式碼。
7、極限程式設計
這種敏捷軟體開發高度依賴結對程式設計。與其他敏捷方法一樣,它注重快速迭代和頻繁的需求變化。它由肯特·貝克開發,此人是敏捷宣言的簽署者之一,曾在1999年出版了《極限程式設計詳述:擁抱變化》一書。
8、統一軟體開發過程
這種軟體開發方法以發明它的公司Rational Software命名,2003年IBM收購了這家公司。一些程式設計方法非常僵硬,統一軟體開發過程卻旨在可以輕鬆適應獨特的情形。它是一種迭代框架,高度依賴視覺化模型。
9、螺旋模型
上世紀80年代中期,巴里·貝姆(Barry Boehm)最先描述了螺旋模型,這是一種風險驅動型模型,結合了瀑布開發、增量開發、原型開發及其他軟體開發方法的元素。其核心是開發人員應該根據風險大小來做決定,他們應該儘量少編寫程式碼,以便儘量降低風險。
10、瀑布模
不像本文介紹的其他軟體開發方法,瀑布模型是順序式而不是迭代式。從計算機的初期直到最近,瀑布模型都是最常用的軟體開發方法。它最適合小規模專案:所有的設計要求都是事先已知的。