敏捷開發過程剖析及工具推薦
敏捷開發,要求在開發過程中不斷增強,從而提高軟件質量,以達到提高商業收入的目的。它是一個迭代的過程,一個不斷提高企業投資回報率和服務質量的 過程。值得注意的是,成功的敏捷開發,單純依附于活躍的開發過程和理解敏捷所帶來的效益并對此有濃厚興趣的企業用戶。本文將介紹敏捷開發的五大過程及這些 過程中所要用到的工具。
敏捷計劃
典型的敏捷開發將整體工作分為一系列的發布過程,每個發布過程都是一個迭代循環,每個迭代循環都會發布一組功能特性。
敏捷計劃規定了每個循環中所需要完成的工作(發布/迭代)。在該階段,產品所有者將描述每個循環過程中他希望看到的產品樣子。
敏捷計劃包含發布計劃與迭代計劃,兩者的內容及執行者不同。
發布計劃:包含每次發布的功能組。產品所有者負責在產品發布之前制定發布計劃。
迭代計劃:開發團隊需要在開發工作及迭代開始前確定需要完成的工作。可以通過每天的站立會議來實現。
工具:制定敏捷計劃,有很多工具可以使用,如:
創建用戶故事
用戶故事,是對功能、特性的簡單描述。每個特性也可能由很多故事組成。用戶故事要簡單且容易理解,能在幾分鐘內通過幾行字表述清楚。請注意,用戶故事是由項目所有者或主要用戶群體來定義的,而非開發者。
正如Mike Cohnrn所建議的,用戶故事應該遵循下面的格式:
作為一個(某種角色),我需要(某事)如此如此。
例如,作為一個用戶,我希望通過姓名來查找我的客戶。
工具:最好的方法是使用索引卡片來記錄各個故事。有很多種工具可以幫助完成故事圖譜與故事追蹤,如
注意:故事并不是一次性完成的,它循環往復,且貫穿于整個項目開發周期中。
評估你的工作
在敏捷中,評估用于預測功能實現的復雜程度,并根據以前完成相似復雜度功能的經驗預估所需要的完成時間。它是一個持續的過程,基于之前的經驗和模式學習,不斷提高評估的準確性。
通常,評估故事的復雜程度多基于故事要點,而非所耗費的時間。要點解釋了故事的復雜性,并通過數據1,2,3……來體現。
評估有助于做出更好的商業決策,定義發布/迭代的范圍。例如,我們可以很容易地為每次迭代/發布中的所有故事分配同樣的數字。
工具:Planning Poker是定義和改善你評估的最好技術。
站立會議
站立會議是開發團隊每天進行的簡短會議。會上每個人需要說明昨天所完成的事,及今天的計劃和被分配任務現在的狀態。商業用戶和領域專家偶爾也會參加,這將給他們更多關于項目的信心。
它不是例行會議,僅僅對項目實施情況給出粗略的描述,而是要提供更多關于項目的可視性內容,增強團隊間的協作,對當天的計劃給出正確指導。
工具:在站立會議中,白板是非常有效的工具。
項目監控技術
速率:
通過速率,可以精確地測量開發團隊發布商業價值的速度。速率是對生產力的測量。通過計算一定間隔內完成工作的單元數來計算速率。
在每次迭代的最后,為了計算速率,敏捷團隊會查看該過程所完成的工作要求,并累加與這些要求相關聯的故事點。所完成故事點的總數便是團隊的速率。首次小小的迭代之后,你會逐漸發現某種趨勢,且能計算出平均速率。
下面一些工具可以幫助追蹤速率。
Burndown Reports:
Burndown Report是追蹤項目進度的另一個標尺。它用來追蹤完成故事點的個數,監控簡單的迭代、發布和整個項目積壓的工作。它可以顯示進度,反映產品交付的價值和團隊的速率。
以下一些工具可用于測量Burndown Reports:
原文鏈接:http://techmytalk.com/2013/07/14/agile-software-development-process/