極限程式設計 - 角色
在極限程式設計中,重點在於整個團隊的協作,團隊成員集中在一起並保持持續溝通。
然而,極限程式設計專案需要一些特定的角色才能有效運作,承擔這些角色的人員需要承擔相應的責任,並對其在這些角色中的貢獻負責。建議為這些角色分配合適的人員,而不是試圖改變人員以適應這些角色。
極限程式設計中的角色
在極限程式設計中被發現有效的角色包括:
- 開發者(一些團隊也稱為程式設計師)
- 客戶
- 經理(也稱為跟蹤者)
- 教練
開發者
開發者的角色在極限程式設計中是最重要的。要成為極限程式設計中的開發者,你需要習慣以下內容:
開發者權利
你有權瞭解需要什麼,並獲得清晰的優先順序宣告。
你有權始終產出高質量的工作。
你有權向同行、上級和客戶尋求並獲得幫助。
你有權進行並更新自己的估算。
你有權承擔自己的責任,而不是被分配責任。
你將需要為以下主要責任負責:
估算使用者故事
從使用者故事中定義任務
估算任務
編寫單元測試
編寫程式碼以透過編寫的單元測試
執行單元測試
重構
持續整合
開發者技能
結對程式設計
溝通 - 必要的且細節充分的溝通
始終使用隱喻來使用正確的名稱
只編寫必需的程式碼。
保持簡單
集體所有權
如果有人更改了你編寫的程式碼,無論是在系統的哪個部分,你都必須信任這些更改並學習。如果更改方向錯誤,你有責任改進,但要小心,不要責怪任何人。
準備好承認你的恐懼。記住,你是團隊的一員,勇氣是極限程式設計成功的必要條件。
在團隊中,作為開發者,你需要扮演不同的角色,例如:
程式設計師。
架構師和設計師。
介面架構師/UI 設計師。
資料庫設計師和 DBA。
運維和網路設計師。
有時,開發人員中的一員需要扮演測試人員的角色。
幫助客戶選擇和編寫功能測試。
定期執行功能測試。
報告測試結果。
確保測試工具正常執行。
客戶
在極限程式設計中,客戶角色與開發者角色一樣至關重要,因為客戶應該知道要編寫什麼程式,而開發者應該知道如何編寫程式。
這引發了客戶角色的一些必要技能:
以必要且充分的細節編寫所需的使用者故事。
培養對專案成功的態度。
在無法控制專案的情況下影響專案。
及時做出關於所需功能範圍的決策。
願意隨著產品的演變而改變決策。
編寫功能測試。
在極限程式設計中,要求客戶與團隊保持持續溝通,並以統一的聲音與團隊溝通。這是因為:
客戶可能是多個利益相關者。
客戶可能是一個社群。
客戶並不總是負責人(代理)。
客戶可以是一個團隊,其中可能包括以下成員:
產品經理
市場營銷、銷售
業務分析師
終端使用者、他們的經理
業務/系統運維
客戶的主要責任包括:
編寫使用者故事
編寫功能測試
設定使用者故事的優先順序
解釋使用者故事
決定關於使用者故事的問題
客戶需要對這些責任負責。
經理
在極限程式設計中,經理的主要責任包括:
定義計劃遊戲的規則。
讓團隊和客戶熟悉計劃遊戲的規則。
監控計劃遊戲,修復任何偏差,並在必要時修改規則。
安排和主持釋出計劃和迭代計劃會議。
在團隊進行估算時參與其中,以提供關於現實如何符合他們先前估算的反饋,包括團隊級別和個人級別,最終幫助他們在下次提出更好的估算。
確保團隊在迭代中取得進展並朝著下一個釋出目標前進,同時保持承諾的進度和功能。
跟蹤功能測試缺陷。
跟蹤每個團隊成員的實際花費時間。
培養獲取所有必要資訊的能力,而不會干擾團隊的工作。經理需要對這些責任負責。
教練
極限程式設計是團隊中每個人的責任。但是,如果團隊是極限程式設計的新手,那麼教練的角色至關重要。
教練的職責包括:
深入瞭解極限程式設計在專案中的應用。
識別在出現任何問題時有幫助的極限程式設計實踐。
即使在其他人恐慌時也要保持冷靜。
默默觀察團隊,只有在預見到重大問題時才進行干預,並讓團隊也看到問題。
確保團隊能夠自力更生。
隨時準備提供幫助。