敏捷2 2 極限程式設計XP

2022-09-14 19:21:12 字數 2109 閱讀 6627

一提到 xp ,很多人的第一反應是微軟的那個作業系統。沒錯,xp 似乎已經是它的代名詞了。但是,在敏捷領域,也有乙個 xp ,而且也是一樣的如雷貫耳。那就是傳說中的 extremeprogramming 極限程式設計,它的簡稱就是 xp 。

既然都帶有程式設計兩個字了,那麼很明顯這個理論框架就是出自軟體開發行業。之前的文章也說過了,敏捷最初就是一幫軟體大神搞出來的,而 xp ,不僅代表著敏捷,還代表著敏捷中的極限。即使你完全不了解這個 xp ,但有幾個東西你一定聽說過,重構、結對程式設計、持續整合、編碼標準。我說出來了,那你也應該猜到了,這些東西都是 xp 的關鍵實踐,也是 xp 大力推廣的內容,甚至更有完全是 xp 建立的概念。

xp 是由 kent back 這位大神建立的乙個敏捷方法框架。關於這位大神,如果你要學習敏捷,他就是繞不過去的乙個人。背景問題我們就不多說了,直接進入主題,xp 的核心是什麼?只有八個字。

溝通、簡單、反饋、勇氣

溝通不必多說,任何問題到最後都可以歸結為溝通的問題。特別是在敏捷中,溝通是解決各種問題的一劑萬能藥。而且,溝通不僅限於敏捷專案開發,傳統的 pmp 中,也有專門的乙個知識領域就是 專案溝通管理 。在 xp 中,會強調客戶在現場、會強調兩個程式設計師用一台電腦的結對程式設計、會強調使用隱喻來說明需求,這些,都是為了更好地溝通。

整個敏捷體系都推崇簡單的做事,做好事。而 xp 更是將這個簡單發揮到了極限,我們在做任何的專案時,都應該從最簡單的方向入手,千萬不要一上來就以**的架構來設計乙個 pv 過不了百的小**。而是應該一步一步地,通過不斷地重構來完善系統。同時,採用測試驅動開發,來保證**具有極高的質量。

反饋,就是收集系統、客戶和團隊的各方各面的回饋資訊,同時,就像上面的測試驅動開發,其本質也是一種**上的反饋。它與溝通和簡單是緊密相連的。kent back 的原話是「程式設計中的樂觀主義是危險的,而及時反饋則是解決它的方法。」

你有重構核心**的勇氣嗎?你有提醒產品專家或客戶代表不要過度設計的勇氣嗎。或許有的人天生就喜歡挑戰自我,而有的人可能就喜歡循規蹈矩。在 xp 中,我們更傾向於用一組實踐來詮釋勇氣,你只要在規則的限定下,在**規範下,在測試驅動開發的框架內,那麼,自然而然就能夠有重構的勇氣。當你明白了價值是專案和產品最重要的部分,也通過溝通獲得了客戶的信任,那麼,你也能夠有勇氣指出產品設計中的問題。

除了這四大核心之外,現在還有乙個詞也慢慢融入到了 xp 的核心思想中,那就是 「尊重」 。尊重團隊、尊重客戶,尊重產品,尊重**,更重要的是,尊重自己。在乙個專案中,做到對自己負責,能夠有收穫,提交的都是有質量的內容;對團隊負責,能夠有產出,信任他們的**;對客戶負責,能夠有結果,相信產品的價值;反過來,他們也自然會尊重你。乙個好的 xp 團隊,會把尊重放在重要的位置,我們尊重的不僅是你的**和能力,更重要的是,我們是通過團隊成員間的信任,來達到真正的尊重。

只要是牽涉到專案開發,就一定有乙個生命週期的概念,pmp 是如此,xp 也是如此,後面我們要學習到的 scrum 也會有它的生命週期。xp 的生命週期就如下圖所示。

在這個圖中,我們看到了 使用者故事 ,注意,它很重要,在敏捷中,需求都會定義為 使用者故事 ,關於它的內容我們後面還會學到。然後就是根據 使用者故事 定義的 發布計畫 。我們會在 發布計畫 中包含 總體估算 和 隱喻 。在這裡,需要記住的是敏捷中的估算都是相對估算,都是不精準的。

接下來,我們會根據 發布計畫 和 使用者故事 來確定每個 迭代中需要做的事情,也就是 迭代計畫 。在這個計畫中,通過客戶對功能的解釋會將 使用者故事 進行更加深入的拆分,變成任務。之後就是通過 結對程式設計 來實現我們的產品。

當 迭代 結束時,或者到了 發布計畫 制定的發布結點時,我們就需要通過 小規模發布 來實現產品的迭代、增量開發,從而達到敏捷的能力。

上述幾個步驟,就是乙個 xp 專案開發的整個生命週期過程,完整的產品最後就是通過這樣不停地迭代實現的。在圖中,我們還看到了 架構探針 和 探針 這兩個東西。其實,它們是為了些特殊情況而使用的,比如說採用了新的技術、或者使用了新的架構、或者我們第一次嘗試 xp 開發。這個時候,乙個探針就像是一次測試的微型迭代。探針 是為了減少風險的,並且可能在整個專案開發中經常會使用到。

《某培訓機構教材》

《使用者故事與敏捷方法》

《高效通過pmi-acp考試(第2版)》

《敏捷專案管理與pmi-acp應試指南》

敏捷開發之極限程式設計(XP)

極限程式設計是敏捷開發的一種方法,極限程式設計針對小型的開發團隊來說是乙個不錯的方法.極限程式設計本質是務實主義的體現,快速穩定的實現每乙個使用者要求,是極限程式設計的基本要求。1.客戶盡量和開發人員在一起,一是可以知道開發的進度 二是可以和開發人員進行溝通,實時調整功能點的優先順序。2.對使用者提...

敏捷實踐之XP極限程式設計

團隊協作 whole team 規劃策略 the planning game 主要思想就是先快速地制定乙份概要的計畫,然後隨著專案細節的不斷清晰,再逐步完善這份計畫,產生的結果是一套使用者故事及後續的一兩次迭代的概要計畫。結對程式設計 pair programming 所有的產品軟體都是由兩個程式設...

RUP,極限程式設計(xp),敏捷過程簡介

1.rup rational unified process,統一軟體開發過程,統一軟體過程 是乙個物件導向且基於網路的程式開發方 統一過程 rup 是rational軟體公司 rational公司被ibm併購 創造的軟體工程方法。rup描述了如何有效地利用商業的可靠的方法開發和部署軟體,是一種重量...