你該知道的十大流行編程方法!
譯文【51CTO.com快譯】過(guò)去,幾乎所有的軟件開(kāi)發(fā)項(xiàng)目都采用瀑布模型。這種編程方法酷似工廠裝配線,要求開(kāi)發(fā)人員完成一個(gè)開(kāi)發(fā)階段,之后才能進(jìn)入到下一個(gè)階段。這種方法高度結(jié)構(gòu)化,但是項(xiàng)目需求有變化時(shí),它就不適用了。
近些年來(lái),開(kāi)發(fā)人員開(kāi)始青睞更迭代性的流程,因而更容易兼顧項(xiàng)目范圍和需求出現(xiàn)的變化。敏捷軟件開(kāi)發(fā)以及似乎無(wú)窮無(wú)盡的變種方法已越來(lái)越常見(jiàn)?,F(xiàn)在它們成了主流的編程方法。
我們?cè)诒疚闹薪榻B了十種最流行的軟件開(kāi)發(fā)方法的功能特性,包括敏捷、Scrum、精益、極限編程,甚至還有瀑布方法。
1、敏捷軟件開(kāi)發(fā)
2001年,17位軟件開(kāi)發(fā)人員簽署了敏捷宣言(Agile Manifesto),因此載入史冊(cè)。自那以后,敏捷軟件開(kāi)發(fā)迅速流行起來(lái);實(shí)際上,在2015年弗雷斯特調(diào)研公司的一份報(bào)告中,54%的受訪企業(yè)表示,其內(nèi)部一半以上的開(kāi)發(fā)團(tuán)隊(duì)在使用敏捷方法。敏捷理念基于12個(gè)核心原則,這些原則注重簡(jiǎn)短迭代、持續(xù)交付、簡(jiǎn)潔性、回顧以及最終用戶(hù)和開(kāi)發(fā)人員之間的協(xié)作。
2、Scrum
敏捷軟件開(kāi)發(fā)有多種版本,Scrum是最受歡迎的版本之一,接受《2015年敏捷現(xiàn)狀》報(bào)告調(diào)查的受訪者中70%表示,他們采用Scrum或Scrum混合方法。這是一種協(xié)作框架,最先由杰夫·薩瑟蘭(Jeff Sutherland)在1993年發(fā)明。它把復(fù)雜項(xiàng)目分成了多個(gè)簡(jiǎn)短的迭代開(kāi)發(fā)周期(sprint),每個(gè)迭代開(kāi)發(fā)周期為期兩到四周,它注重勇氣、專(zhuān)注、承諾、尊重和開(kāi)放性這五個(gè)價(jià)值觀。
3、精益軟件開(kāi)發(fā)
雖然精益開(kāi)發(fā)通常與敏捷開(kāi)發(fā)聯(lián)系起來(lái),但精益開(kāi)發(fā)的原則實(shí)際上源自豐田公司的精益制造流程。這套開(kāi)發(fā)方法依賴(lài)七個(gè)關(guān)鍵的原則:消除浪費(fèi)、促進(jìn)反饋、盡量延遲決策、快速交付、融入完整性、授權(quán)團(tuán)隊(duì)和著眼整體。2003年,精益首次引起了軟件開(kāi)發(fā)界的注意,當(dāng)時(shí)瑪麗·波彭代克(Mary Poppendieck)和湯姆·波彭代克(Tom Poppendieck)出版了《精益軟件開(kāi)發(fā):敏捷工具包》一書(shū)。
4、看板
看板是敏捷軟件開(kāi)發(fā)的另一個(gè)變種,靈感源自豐田公司。它為開(kāi)發(fā)人員提供了一種直觀的方法,可以查看什么工作需要完成,讓他們得以在有精力時(shí)可以“拉取”工作,而不是“推送”工作,以完成某些任務(wù)。看板依賴(lài)三個(gè)核心原則:可視化今天處理的工作,限制在制品,并改進(jìn)流動(dòng)。
5、快速應(yīng)用開(kāi)發(fā)(RAD)
這些年來(lái),幾種不同的軟件開(kāi)發(fā)方法使用了RAD這個(gè)名稱(chēng)。最知名的也許當(dāng)數(shù)詹姆斯·馬丁(James Martin)的方法,這套方法于上世紀(jì)80年代問(wèn)世于IBM。它被認(rèn)為是一種敏捷方法,因?yàn)樗⒅剡m應(yīng)不斷變化的需求這種能力,不再?gòu)?qiáng)調(diào)事先規(guī)劃。
6、測(cè)試驅(qū)動(dòng)型開(kāi)發(fā)(TDD)
測(cè)試驅(qū)動(dòng)型開(kāi)發(fā)與敏捷軟件開(kāi)發(fā)和極限編程都有關(guān)。這種方法由肯特·貝克(Kent Beck)及其他人首創(chuàng),需要開(kāi)發(fā)人員先為任何新的功能特性編寫(xiě)一個(gè)測(cè)試,之后開(kāi)始編程工作。它鼓勵(lì)開(kāi)發(fā)人員極量少編寫(xiě)代碼。
7、極限編程
這種敏捷軟件開(kāi)發(fā)高度依賴(lài)結(jié)對(duì)編程。與其他敏捷方法一樣,它注重快速迭代和頻繁的需求變化。它由肯特·貝克開(kāi)發(fā),此人是敏捷宣言的簽署者之一,曾在1999年出版了《極限編程詳述:擁抱變化》一書(shū)。
8、統(tǒng)一軟件開(kāi)發(fā)過(guò)程
這種軟件開(kāi)發(fā)方法以發(fā)明它的公司Rational Software命名,2003年IBM收購(gòu)了這家公司。一些編程方法非常僵硬,統(tǒng)一軟件開(kāi)發(fā)過(guò)程卻旨在可以輕松適應(yīng)獨(dú)特的情形。它是一種迭代框架,高度依賴(lài)可視化模型。
9、螺旋模型
上世紀(jì)80年代中期,巴里·貝姆(Barry Boehm)最先描述了螺旋模型,這是一種風(fēng)險(xiǎn)驅(qū)動(dòng)型模型,結(jié)合了瀑布開(kāi)發(fā)、增量開(kāi)發(fā)、原型開(kāi)發(fā)及其他軟件開(kāi)發(fā)方法的元素。其核心是開(kāi)發(fā)人員應(yīng)該根據(jù)風(fēng)險(xiǎn)大小來(lái)做決定,他們應(yīng)該盡量少編寫(xiě)代碼,以便盡量降低風(fēng)險(xiǎn)。
10、瀑布模型
不像本文介紹的其他軟件開(kāi)發(fā)方法,瀑布模型是順序式而不是迭代式。從計(jì)算機(jī)的初期直到最近,瀑布模型都是最常用的軟件開(kāi)發(fā)方法。它最適合小規(guī)模項(xiàng)目:所有的設(shè)計(jì)要求都是事先已知的。
原文標(biāo)題:10 Top Programming Methodologies,作者:Cynthia Harvey
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】




























