極限編程XP一提到 XP ,很多人的第一反應(yīng)是微軟的那個操作系統(tǒng)。沒錯,XP 似乎已經(jīng)是它的代名詞了。但是,在敏捷領(lǐng)域,也有一個 XP ,而且也是一樣的如雷貫耳。那就是傳說中的 ExtremeProgramming 極限編程,它的簡稱就是 XP 。 既然都帶有編程兩個字了,那么很明顯這個理論框架就是出自軟件開發(fā)行業(yè)。之前的文章也說過了,敏捷最初就是一幫軟件大神搞出來的,而 XP ,不僅代表著敏捷,還代表著敏捷中的極限。即使你完全不了解這個 XP ,但有幾個東西你一定聽說過,重構(gòu)、結(jié)對編程、持續(xù)集成、編碼標(biāo)準(zhǔn)。我說出來了,那你也應(yīng)該猜到了,這些東西都是 XP 的關(guān)鍵實踐,也是 XP 大力推廣的內(nèi)容,甚至更有完全是 XP 創(chuàng)建的概念。 XP的核心價值XP 是由 Kent Back 這位大神創(chuàng)建的一個敏捷方法框架。關(guān)于這位大神,如果你要學(xué)習(xí)敏捷,他就是繞不過去的一個人。背景問題我們就不多說了,直接進(jìn)入主題,XP 的核心是什么?只有八個字。 溝通、簡單、反饋、勇氣 溝通不必多說,任何問題到最后都可以歸結(jié)為溝通的問題。特別是在敏捷中,溝通是解決各種問題的一劑萬能藥。而且,溝通不僅限于敏捷項目開發(fā),傳統(tǒng)的 PMP 中,也有專門的一個知識領(lǐng)域就是 項目溝通管理 。在 XP 中,會強(qiáng)調(diào)客戶在現(xiàn)場、會強(qiáng)調(diào)兩個程序員用一臺電腦的結(jié)對編程、會強(qiáng)調(diào)使用隱喻來說明需求,這些,都是為了更好地溝通。 整個敏捷體系都推崇簡單的做事,做好事。而 XP 更是將這個簡單發(fā)揮到了極限,我們在做任何的項目時,都應(yīng)該從最簡單的方向入手,千萬不要一上來就以淘寶的架構(gòu)來設(shè)計一個 PV 過不了百的小網(wǎng)站。而是應(yīng)該一步一步地,通過不斷地重構(gòu)來完善系統(tǒng)。同時,采用測試驅(qū)動開發(fā),來保證代碼具有極高的質(zhì)量。 反饋,就是收集系統(tǒng)、客戶和團(tuán)隊的各方各面的回饋信息,同時,就像上面的測試驅(qū)動開發(fā),其本質(zhì)也是一種代碼上的反饋。它與溝通和簡單是緊密相連的。Kent Back 的原話是“編程中的樂觀主義是危險的,而及時反饋則是解決它的方法?!?/p> 你有重構(gòu)核心代碼的勇氣嗎?你有提醒產(chǎn)品專家或客戶代表不要過度設(shè)計的勇氣嗎?;蛟S有的人天生就喜歡挑戰(zhàn)自我,而有的人可能就喜歡循規(guī)蹈矩。在 XP 中,我們更傾向于用一組實踐來詮釋勇氣,你只要在規(guī)則的限定下,在代碼規(guī)范下,在測試驅(qū)動開發(fā)的框架內(nèi),那么,自然而然就能夠有重構(gòu)的勇氣。當(dāng)你明白了價值是項目和產(chǎn)品最重要的部分,也通過溝通獲得了客戶的信任,那么,你也能夠有勇氣指出產(chǎn)品設(shè)計中的問題。 除了這四大核心之外,現(xiàn)在還有一個詞也慢慢融入到了 XP 的核心思想中,那就是 “尊重” 。尊重團(tuán)隊、尊重客戶,尊重產(chǎn)品,尊重代碼,更重要的是,尊重自己。在一個項目中,做到對自己負(fù)責(zé),能夠有收獲,提交的都是有質(zhì)量的內(nèi)容;對團(tuán)隊負(fù)責(zé),能夠有產(chǎn)出,信任他們的代碼;對客戶負(fù)責(zé),能夠有結(jié)果,相信產(chǎn)品的價值;反過來,他們也自然會尊重你。一個好的 XP 團(tuán)隊,會把尊重放在重要的位置,我們尊重的不僅是你的代碼和能力,更重要的是,我們是通過團(tuán)隊成員間的信任,來達(dá)到真正的尊重。 XP的生命周期只要是牽涉到項目開發(fā),就一定有一個生命周期的概念,PMP 是如此,XP 也是如此,后面我們要學(xué)習(xí)到的 Scrum 也會有它的生命周期。XP 的生命周期就如下圖所示。 在這個圖中,我們看到了 用戶故事 ,注意,它很重要,在敏捷中,需求都會定義為 用戶故事 ,關(guān)于它的內(nèi)容我們后面還會學(xué)到。然后就是根據(jù) 用戶故事 定義的 發(fā)布計劃 。我們會在 發(fā)布計劃 中包含 總體估算 和 隱喻 。在這里,需要記住的是敏捷中的估算都是相對估算,都是不精準(zhǔn)的。 接下來,我們會根據(jù) 發(fā)布計劃 和 用戶故事 來確定每個 迭代中需要做的事情,也就是 迭代計劃 。在這個計劃中,通過客戶對功能的解釋會將 用戶故事 進(jìn)行更加深入的拆分,變成任務(wù)。之后就是通過 結(jié)對編程 來實現(xiàn)我們的產(chǎn)品。 當(dāng) 迭代 結(jié)束時,或者到了 發(fā)布計劃 制定的發(fā)布結(jié)點時,我們就需要通過 小規(guī)模發(fā)布 來實現(xiàn)產(chǎn)品的迭代、增量開發(fā),從而達(dá)到敏捷的能力。 上述幾個步驟,就是一個 XP 項目開發(fā)的整個生命周期過程,完整的產(chǎn)品最后就是通過這樣不停地迭代實現(xiàn)的。在圖中,我們還看到了 架構(gòu)探針 和 探針 這兩個東西。其實,它們是為了些特殊情況而使用的,比如說采用了新的技術(shù)、或者使用了新的架構(gòu)、或者我們第一次嘗試 XP 開發(fā)。這個時候,一個探針就像是一次測試的微型迭代。探針 是為了減少風(fēng)險的,并且可能在整個項目開發(fā)中經(jīng)常會使用到。 總結(jié)本次列車還沒有到站,為什么呢?在文章中,你是不是發(fā)現(xiàn)了一大堆新名詞??赡苡械哪愣?,比如說 溝通、簡單、反饋、勇氣 在 XP 中的意義;有的你可能似懂非懂,比如 重構(gòu)、小規(guī)模發(fā)布、結(jié)對編程;另外有些則感覺非常朦朧,就像 隱喻、簡單設(shè)計 都是什么鬼。別急,關(guān)于 XP 的內(nèi)容一篇文章可講不完,下篇文章我們就將繼續(xù)學(xué)習(xí)關(guān)于 XP 的一些關(guān)鍵實踐,這些關(guān)鍵詞也會一一解答。 參考文檔: 《某培訓(xùn)機(jī)構(gòu)教材》 《用戶故事與敏捷方法》 《高效通過PMI-ACP考試(第2版)》 《敏捷項目管理與PMI-ACP應(yīng)試指南》 |
|
|