什么是極限編程-極限編程是什么意思
極限編程是一個新的概念,那你知道什么是極限編程嗎?以下是陽光網(wǎng)小編要與大家分享的什么是極限編程,供大家參考!
極限編程的定義
極限編程(ExtremeProgramming,簡稱XP)是由KentBeck在1996年提出的。KentBeck在九十年代初期與WardCunningham共事時,就一直共同探索著新的軟件開發(fā)方法,希望能使軟件開發(fā)更加簡單而有效。Kent仔細(xì)地觀察和分析了各種簡化軟件開發(fā)的前提條件、可能性以及面臨的困難。1996年三月,Kent終于在為DaimlerChrysler所做的一個項目中引入了新的軟件開發(fā)觀念——XP。適用于小團隊開發(fā)。
極限編程:相關(guān)概念
軟件開發(fā)的過程
軟件開發(fā)的過程是:需求分析、設(shè)計、編碼和測試。
需求分析:不僅僅是用戶需求,應(yīng)該是開發(fā)中遇到的所有的需求。比如,你首先要知道做這個項目是為了解決什么問題;測試案例中應(yīng)該輸入什么數(shù)據(jù)……為了清楚地知道這些需求,你經(jīng)常要和客戶、項目經(jīng)理等交流。
設(shè)計:編碼前,肯定有個計劃告訴你要做什么,結(jié)構(gòu)是怎樣等等。你一定要按照這個來做,否則可能會一團糟。
編碼:如果在項目截止日,你的程序不能跑起來或達(dá)不到客戶的要求,你就拿不到錢。
測試:目的是讓你知道,什么時候算是完成了。如果你聰明,你就應(yīng)該先寫測試,這樣可以及時知道你是否真地完成了。否則,你經(jīng)常會不知道,到底有哪些功能是真正完成了,離預(yù)期目標(biāo)還差多遠(yuǎn)。
客戶的權(quán)利和義務(wù)
定義每個用戶需求的商業(yè)優(yōu)先級;
制訂總體計劃,包括用多少投資、經(jīng)過多長時間、達(dá)到什么目的;
在項目開發(fā)過程中的每個工作周,都能讓投資獲得最大的收益;
通過重復(fù)運行你所指定的功能測試,準(zhǔn)確地掌握項目進(jìn)展情況;
能隨時改變需求、功能或優(yōu)先級,同時避免昂貴的再投資;能夠根據(jù)各種變化及時調(diào)整項目計劃;
能夠隨時取消項目;項目取消時,以前的開發(fā)工作不是一堆垃圾,已開發(fā)完的功能是合乎要求的,正在進(jìn)行或未完成的的工作則應(yīng)該是不難接手的。
開發(fā)人員
知道要做什么,以及要優(yōu)先做什么;
工作有效率;
有問題或困難時,能得到客戶、同事、上級的回答或幫助;
對工作做評估,并根據(jù)周圍情況的變化及時重新評估;
積極承擔(dān)工作,而不是消極接受分配;
一周40小時工作制,不加班。
其他問題
靈巧的輕量級軟件開發(fā)方法
一套軟件開發(fā)方法是由一系列與開發(fā)相關(guān)的規(guī)則、規(guī)范和慣例。重量級的開發(fā)方法嚴(yán)格定義了許多的規(guī)則、流程和相關(guān)的文檔工作。靈巧的輕量級開發(fā)方法,其規(guī)則和文檔相對較少,流程更加靈活,實施起來相對較容易。
在軟件工程概念出現(xiàn)以前,程序員們按照自己喜歡的方式開發(fā)軟件。程序的質(zhì)量很難控制,調(diào)試程序很繁瑣,程序員之間也很難讀懂對方寫的代碼。1968年,Edsger Dijkstra給CACM寫了一封題為GOTO Statement Considered Harmful的信,軟件工程的概念由此誕生。程序員們開始摒棄以前的做法,轉(zhuǎn)而使用更系統(tǒng)、更嚴(yán)格的開發(fā)方法。為了使控制軟件開發(fā)和控制其它產(chǎn)品生產(chǎn)一樣嚴(yán)格,人們陸續(xù)制定了很多規(guī)則和做法,發(fā)明了很多軟件工程方法,軟件質(zhì)量開始得到大幅度提高。隨著遇到的問題更多,規(guī)則和流程也越來越精細(xì)和復(fù)雜。
到了今天,在實際開發(fā)過程中,很多規(guī)則已經(jīng)難于遵循,很多流程復(fù)雜而難于理解,很多項目中文檔的制作過程正在失去控制。人們試圖提出更全面更好的一攬子方案,或者寄希望于更復(fù)雜的、功能更強大的輔助開發(fā)工具(CaseTools),但總是不能成功,而且開發(fā)規(guī)范和流程變得越來越復(fù)雜和難以實施。
為了趕進(jìn)度,程序員們經(jīng)常跳過一些指定的流程,很少人能全面遵循那些重量級開發(fā)方法。
失敗的原因很簡單,這個世界沒有萬能藥。因此,一些人提出,將重量級開發(fā)方法中的.規(guī)則和流程進(jìn)行刪減、重整和優(yōu)化,這樣就產(chǎn)生了很多適應(yīng)不同需要的輕量級流程。在這些流程中,合乎實際需要的規(guī)則被保留下來,不必要的復(fù)雜化開發(fā)的規(guī)則被拋棄。而且,和傳統(tǒng)的開發(fā)方法相比,輕量級流程不再象流水生產(chǎn)線,而是更加靈活。
ExtremeProgramming(XP)就是這樣一種靈巧的輕量級軟件開發(fā)方法。
為什么稱為“Extreme”(極限)
“Extreme”(極限)是指,對比傳統(tǒng)的項目開發(fā)方式,XP強調(diào)把它列出的每個方法和思想做到極限、做到最好;其它XP所不提倡的,則一概忽略(如開發(fā)前期的整體設(shè)計等)。一個嚴(yán)格實施XP的項目,其開發(fā)過程應(yīng)該是平穩(wěn)的、高效的和快速的,能夠做到一周40小時工作制而不拖延項目進(jìn)度。
極限編程:核心價值
極限編程中有四個核心價值是我們在開發(fā)中必須注意的:溝通(Communication)、簡單(Simplicity)、反饋(Feedback)、勇氣(Courage)、此外還擴展了第五個價值觀:謙遜(Modesty)。 XP用“溝通、簡單、反饋、勇氣和謙遜”來減輕開發(fā)壓力和包袱;無論是術(shù)語命名、專著敘述內(nèi)容和方式、過程要求,都可以從中感受到輕松愉快和主動奮發(fā)的態(tài)度和氣氛。這是一種幫助理解和更容易激發(fā)人的潛力的手段。XP用自己的實踐,在一定范圍內(nèi)成功地打破了軟件工程“必須重量”才能成功的傳統(tǒng)觀念。
XP精神可以啟發(fā)我們?nèi)绾螌W(xué)習(xí)和對待快速變化、多樣的開發(fā)技術(shù)。成功學(xué)習(xí)XP的關(guān)鍵,是用“溝通、簡單、反饋、勇氣和謙遜”的態(tài)度來對待XP;輕松愉快地來感受XP的實踐思想;自己認(rèn)真實踐后,通過對真實反饋的分析,來決定XP對自己的價值;有勇氣接受它,或改進(jìn)它。
看過“什么是極限編程”的人還看了:
1.
2.
【什么是極限編程-極限編程是什么意思】相關(guān)文章:
7.超越極限人生哲理