iT邦幫忙

DAY 24
4

PMP的敏捷之路系列 第 24

PMP的敏捷之路-eXtreme Programming簡介(2)

測試驅動開發、策劃遊戲、全隊、結對程式設計
測試驅動開發(Test-driven development)
傳統的程式開發方式通常是等到程式開發完畢後,再來撰寫相關的單元測試程式碼。因此會經常聽到沒時間撰寫測試程式或是偷懶僅測試Happy path的藉口,使得程式的品質無法獲得保證,也無法對其重構。

測試驅動開發指的是先撰寫Unit test測試程式,再來寫測試程式所要測的程式。如此一來,不僅保證程式一定會有對應的測試程式,並且程式在撰寫的同時也會先考慮到如何能讓程式可以被測試。除了以上基本的好處外,測試驅動開發是一種系統設計分析的方法,與敏捷方法強調「射擊再瞄準」的精神相同,測試驅動開發要求的是程式僅需撰寫足夠通過測試的部分就好,藉由逐漸完備測試的範圍,同時也確保系統維持在單純,沒有過度設計的情況發生。

策劃遊戲(Planning game)
策劃遊戲分為兩個部分:發佈計畫(Release Planning)及反覆計畫(Iteration Planning)。發佈計畫用於規劃整個產品的發佈次數及時程,而反覆計畫則在規劃每次反覆的工作內容。發佈計畫跟反覆計畫又包含了以下三個階段:探索階段(Exploration phase)、承諾階段(Commitment phase)和監督階段(Steering phase)。基本上這些活動就是在探索需求,承諾完成時間並且監督掌握開發時程。

全隊(Whole team)
全隊在之前版本的XP當中原本是客戶駐點,也就是要求客戶需派代表駐點在開發團隊當中,以接受團隊隨時能詢問需求的細節及解答問題。不過這點實在是太難做到了 XD,因此之後便改用全隊的觀點來包裝。除了將客戶駐點的概念隱藏在全隊外,另外更加強調開發工作是全體團隊一同努力的,並且應將整個團隊視為一體。

結對程式設計(Pair programming)
結對程式設計指的是兩個開發人員坐在一起,共用一組鍵盤螢幕,一起輪流協同開發同一份程式。這種看似讓兩個人做一個人的事會白白浪費一個人的時間,實則會大幅提升效率及節省時間的浪費。原因是通常一個人在工作時,通常不會乖乖地進入到全速的工作狀態,會過個5分鐘就看一下FB、回個MSN或是被其他干擾打斷,8小時的工作小時有5小時是在工作就已經非常厲害了。但是如果是兩個人坐在一起時情況便會不同了,沒辦法沒事再開個網頁看個塗鴉牆,只能專心地在工作上。除了這種互相監視(誤)的效果外,由於這此程式碼至少被兩個人所檢視過,因此BUG發生的機率會相對比較少,亦能減少日後除錯時浪費的重工時間。以長期來看,結對程式設計的投資報酬率是相當高的。


上一篇
PMP的敏捷之路-eXtreme Programming簡介 (1)
下一篇
PMP的敏捷之路-eXtreme Programming簡介 (3)
系列文
PMP的敏捷之路30

尚未有邦友留言

立即登入留言