敏捷宣言十年:它是否提供了更好的編程方法
Ruby 發(fā)表于:10年11月08日 15:00 [編譯] DOIT.com.cn
DoSOFT軟件在線 11月8日國(guó)際報(bào)道 時(shí)至今日,“敏捷軟件開發(fā)宣言”已經(jīng)發(fā)布十年了,該宣言的發(fā)布推動(dòng)了利用變更需求幫助客戶獲得競(jìng)爭(zhēng)優(yōu)勢(shì)的發(fā)展,而且可以讓開發(fā)人員用更短的周期向客戶交付可用的軟件。
敏捷宣言于2001年1月發(fā)布,一些開發(fā)人員集合在猶他州尋找一個(gè)文檔驅(qū)動(dòng)的、“重量級(jí)的”軟件開發(fā)方式,這就像當(dāng)時(shí)的黃金標(biāo)準(zhǔn)瀑布法則。
盡管實(shí)際的敏捷開發(fā)實(shí)踐遭遇猶他州的會(huì)議,但是那次會(huì)議室一個(gè)分水嶺,這次會(huì)議有助于推動(dòng)敏捷開發(fā)的發(fā)展?爝M(jìn)十年,敏捷軟件開發(fā)變得越來越普遍,軟件公司采用敏捷方法論 像:Scrum和XP(極限編程)。盡管存在潛在缺點(diǎn),但是敏捷領(lǐng)域的專家依然認(rèn)為,從總體來看,實(shí)施敏捷開發(fā)對(duì)軟件開發(fā)是有益的。
敏捷宣言的創(chuàng)始人之一,當(dāng)時(shí)任職于Tektronix的Ward Cunningham表示,我必須說,我們已經(jīng)改變了整個(gè)行業(yè)。對(duì)計(jì)算機(jī)編程的失敗和編程危機(jī)的探討已經(jīng)死在了敏捷腳下,我已經(jīng)不再聽到別人談?wù)撨@個(gè)問題了。
IBM首席敏捷開發(fā)專家Scott Ambler表示,敏捷宣言實(shí)現(xiàn)的目標(biāo)遠(yuǎn)遠(yuǎn)超過了其預(yù)期。這對(duì)整個(gè)行業(yè)具有相當(dāng)重要的意義。現(xiàn)在你很難找到不愿意使用敏捷開發(fā)的人了。對(duì)敏捷和迭代開發(fā)成功的預(yù)期似乎遠(yuǎn)遠(yuǎn)高于傳統(tǒng)開發(fā)。
但是,敏捷宣言的另一位創(chuàng)始人Kent Beck,也是XP的創(chuàng)始人,就很少談?wù)撁艚蓍_發(fā)這十年的效益問題。他說,我沒辦法言簡(jiǎn)意賅地在這個(gè)方面回答你的問題。
Beck表示,敏捷已經(jīng)讓人們更仔細(xì)地思考如何開發(fā)軟件,但是并不是每個(gè)人都會(huì)使用敏捷,依然有人為一個(gè)項(xiàng)目尋找告誡列表,這也不是敏捷的內(nèi)容。
敏捷開發(fā)的成功需要什么?
Cunningham表示,敏捷是需要努力學(xué)習(xí)的。在你開始做敏捷開發(fā)之前,你必須熟練掌握所有的技術(shù)。
Cunningham強(qiáng)調(diào)說,對(duì)于敏捷開發(fā)來說,扎實(shí)的編程技術(shù)是非常必要的。很多人進(jìn)入這個(gè)領(lǐng)域是因?yàn)樗麄儼l(fā)現(xiàn)編程是這么枯燥,而不想再做這個(gè)。如果你喜歡編程,并想做編程,這將會(huì)對(duì)你的項(xiàng)目會(huì)有很大的幫助。
組織性的障礙也會(huì)在實(shí)施敏捷理念中出現(xiàn)。BigVisible解決方案的敏捷開發(fā)指導(dǎo)Skip Angel表示,只要能夠頻繁地思考尋找交付軟件,敏捷就是行之有效的,因?yàn)榭梢栽谝粋(gè)較小模塊中思考而非要從整個(gè)項(xiàng)目中思考。我所思考的是對(duì)組織的挑戰(zhàn),他們沒有自己的組織設(shè)置方式,可以提供更快的交付。
Angel補(bǔ)充到,項(xiàng)目可能會(huì)陷入費(fèi)時(shí)的流程中,開發(fā)者需要是使用不斷的集成來避免瓶頸。
軟件公司SmartBear的副執(zhí)行總裁Ian McLeod表示,敏捷開發(fā)也不是萬(wàn)能的良藥。你還是需要把它做好,你可能做不好敏捷。
Bech表示,1997年曾經(jīng)成功使用了敏捷開發(fā)。開發(fā)團(tuán)隊(duì)使用了短迭代,大量的單元測(cè)試,并于客戶進(jìn)行了密切的溝通。開發(fā)統(tǒng)一通信系統(tǒng)的AttainResponse公司的首席執(zhí)行官Wade Weston表示,這幫助我們發(fā)展得更快,并讓我們保持在需要的軌道上。AttainResponse每周都要進(jìn)行開發(fā)沖刺。Weston表示,我們做短期沖刺,我們會(huì)高度集中在我們?cè)谀侵苄枰瓿傻捻?xiàng)目中。
Weston表示,但是讓每個(gè)人都使用敏捷開發(fā)依然是個(gè)問題。但是我們團(tuán)隊(duì)中的一員不斷地告訴我,他想要更多的指定條件。我也不斷地告訴他,我們已經(jīng)很快了,因?yàn)槲覀儧]有指定條件了。底層的需求文檔是浪費(fèi)時(shí)間的。
敏捷編程的方法
Scrum和XP脫穎而出,也許是最主要的敏捷方法論。Beck認(rèn)為XP是注重工程方面開發(fā)的方法。XP更多地提到程序員實(shí)際做什么,而Scrum是項(xiàng)目管理方法論。
Cunningham表示,可以區(qū)分XP的是,它是一個(gè)系統(tǒng)而不是一個(gè)解決方案。它是利用系統(tǒng)的方法來編程。
Angel表示,Scrum注重如何管理和交付工作,而XP注重如何來工作。
Polle指出,Scrum和XP絕對(duì)是兩個(gè)主要方法論。你經(jīng)常會(huì)看到Scrum團(tuán)隊(duì)采用了XP,而XP團(tuán)隊(duì)采用了Scrum。
Poole表示,另一種方法論是Kanban,該方法論來源于制造生產(chǎn)過程和瘦軟件開發(fā)概念。Kanban具有極少的限制,并且它關(guān)注客戶價(jià)值流。Angel補(bǔ)充到,瘦軟件編程關(guān)注組織效率、優(yōu)化價(jià)值、減少浪費(fèi),并努力確保好流程運(yùn)行良好。
McLeod表示,RUP(Rational統(tǒng)一編程)也是一種被稱為敏捷的方法。RUP的特點(diǎn)是有很多文檔。RUP可以是一種敏捷方法論。它是一種過程框架。完全由你研究的方法而定。
Ambler還引用了DSDM,也就是動(dòng)態(tài)系統(tǒng)開發(fā)方法,DSDM是有點(diǎn)像RAD(快速應(yīng)用程序開發(fā)),一個(gè)額外的進(jìn)程。RAD與敏捷的區(qū)別在于,它注重迭代開發(fā)但是不加強(qiáng)協(xié)作。
McLeod把敏捷方法論看作是是和迭代開發(fā)相似的方法。它們之間沒有太大的區(qū)別。
Cunnigham表示,所謂“靈活”是在猶他州上特意挑選出來的詞語(yǔ)。人們認(rèn)為它是一種輕量級(jí)方法。但是也有人認(rèn)為“輕量級(jí)”這個(gè)詞有其負(fù)面的含義,也是膚淺的。
公司簡(jiǎn)介 | 媒體優(yōu)勢(shì) | 廣告服務(wù) | 客戶寄語(yǔ) | DOIT歷程 | 誠(chéng)聘英才 | 聯(lián)系我們 | 會(huì)員注冊(cè) | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.