10年前,Martin Fowler 和其他10多位軟件開發(fā)領(lǐng)域的領(lǐng)軍人物共同起草了《敏捷宣言》,這也標(biāo)志著敏捷開發(fā)方法的正式誕生。這些年來,作為敏捷開發(fā)方法的專家,Martin Fowler一直在為敏捷開發(fā)的普及而努力。日前,作為特邀演講嘉賓的Martin Fowler來京參加“中國(guó)敏捷開發(fā)”大會(huì),本報(bào)記者就敏捷開發(fā)的相關(guān)問題采訪了這位敏捷開發(fā)界的泰斗人物。
到目前為止,軟件開發(fā)領(lǐng)域最為常用的開發(fā)方式是瀑布式開發(fā)方法,它強(qiáng)調(diào)軟件開發(fā)要按照嚴(yán)格的流程,即按照需求分析、設(shè)計(jì)、編碼、測(cè)試、維護(hù)的步驟來完成軟件。與之相比,敏捷開發(fā)并不要求有嚴(yán)格的軟件開發(fā)流程,而強(qiáng)調(diào)快速交付、快速迭代、快速集成,從而使得軟件開發(fā)項(xiàng)目盡快投入使用,比如測(cè)試驅(qū)動(dòng)開發(fā)甚至顛覆了瀑布式開發(fā)方法的流程。兩種開發(fā)方法有著根本上的差別。那么,敏捷開發(fā)方法未來是否會(huì)最終取代瀑布式開發(fā)方法呢?
對(duì)此,Martin Fowler回答非常謹(jǐn)慎,他并沒有給出記者所預(yù)想的敏捷開發(fā)方法會(huì)取代瀑布式開發(fā)的回答。他說自己不愿意對(duì)未來做出預(yù)測(cè),但是他認(rèn)為敏捷開發(fā)方法一定會(huì)繼續(xù)普及。
“我認(rèn)為,軟件開發(fā)領(lǐng)域應(yīng)該同時(shí)存在多種開發(fā)方法,每種方法都有自己的長(zhǎng)處和短處,也都有自己擅長(zhǎng)的領(lǐng)域。敏捷開發(fā)也并一定適合所有領(lǐng)域?!盡artin Fowler回答說,“但可以肯定的是,敏捷開發(fā)已經(jīng)成為了主流,并且敏捷開發(fā)適合的領(lǐng)域還在拓展。”
Martin Fowler還以公共基礎(chǔ)設(shè)施管理系統(tǒng)和戰(zhàn)略性的應(yīng)用系統(tǒng)為例來說明敏捷開發(fā)的適用領(lǐng)域。他說:“相對(duì)而言,戰(zhàn)略型的應(yīng)用開發(fā)用敏捷開發(fā)比較適合,而在公共設(shè)施領(lǐng)域應(yīng)用敏捷則需要多權(quán)衡一下。因?yàn)榍罢咭罂焖夙憫?yīng),要求比較高的軟件質(zhì)量,要求能夠迅速根據(jù)市場(chǎng)變化調(diào)整自己的開發(fā)方向,這正是敏捷開發(fā)的優(yōu)勢(shì)。而對(duì)于公共基礎(chǔ)設(shè)施管理系統(tǒng)強(qiáng)調(diào)低成本,要求可靠、不能產(chǎn)生災(zāi)難性的后果,在這種情況下,程序員可能更偏愛傳統(tǒng)開發(fā)方法?!?/p>
采訪中,Martin Fowler多次強(qiáng)調(diào),軟件開發(fā)時(shí)一定不要拘泥于現(xiàn)有的條條框框,所有的決策都要根據(jù)具體的應(yīng)用場(chǎng)合而定。比如,對(duì)于一個(gè)軟件按項(xiàng)目到底選擇哪種開發(fā)方法,以及程序員如何從傳統(tǒng)的開發(fā)方法向敏捷開發(fā)轉(zhuǎn)型,都是沒有通用的方法的。