Scrum是一種用於開發創新產品和服務的敏捷開發方式,咱們首先來看一下敏捷開發過程和特色,並着重介紹Scrum框架的角色、活動和工件等內容,而後介紹團隊利用TAPD中的需求管理、缺陷管理、迭代管理等應用功能來幫助團隊有效實踐Scrum敏捷開發。網絡
敏捷開發所倡導的是經過若干個短時間的迭代週期(也稱爲衝刺sprint,範圍通常是1周- 1個月),按必定的優先級不斷增量開發和實現產品功能,每次迭代得到一個可運行的產品增量功能包。架構
敏捷開發首先須要創建一個按優先級排列的產品列表,其中由產品需求、功能優化或功能缺陷等類型清單項組成,排在前面的是優先級高的項,優先歸入迭代計劃進行實現,這些項在歸入迭代計劃前進行分解和細化,達到知足開發團隊實現的粒度。框架
越日後排的項優先級越低,這部分需求暫時不會提上開發實現日程,當前階段能夠粗略描述,也沒必要急於細化,以應對可能的變動。運維
每次迭代開始階段,從產品列表中選取必定數量的清單項做爲本次迭代須要完成的目標任務,一般是由各方利益相關者討論決定的,數量的多少視開發團隊的狀況而定,儘可能匹配開發團隊的開發節奏。測試
迭代過程當中開發團隊天天經過站立會的形式溝通工做進展和麪臨的問題,在這期間通常再也不接受新的產品項或其餘開發任務,特殊狀況能夠接受任務的置換。優化
在每次迭代結束時,團隊一塊兒評審已實現的產品功能等工做項,並根據反饋優化當前的工做和開發方式。在這過程當中,須要對產品列表進行持續的維護和梳理,好比插入新的需求、更新現有產品功能描述或移除不須要的工做項,並從新排列其優先級。在每次迭代結束後,開始規劃下一次迭代內容,從新開始整個過程。spa
Scrum是敏捷開發方式的一種,在其框架中定義了三種角色:.net
產品負責人:負責敲定開發什麼,以什麼順序開發,產品列表的維護主要由其負責維護;3d
ScrumMaster:幫助團隊成員理解並樂於接受Scrum的價值觀和原則,指導和協助Scrum框架在組織內的執行和優化;blog
開發團隊:包括了架構師、開發人員、測試人員等傳統軟件開發角色。開發團隊做爲一個總體,負責構建可工做的軟件產品;
下圖說明了Scrum框架中的角色、活動和工件:
TAPD上的應用主要包括需求管理、缺陷管理、迭代管理、故事牆、wiki以及報表等,利用這些TAPD應用功能,能夠方便有效地實踐Scrum敏捷開發過程。
Scrum框架中的產品列表的項在TAPD中主要來自於需求和缺陷兩個中的管理內容,每一個衝刺清單都從這兩部分工做中挑選和分配,其中:
需求清單主要記錄產品的功能需求、技術研究、以及非功能性需求等,經過需求分類進行歸類管理,還能夠經過子需求的方式對粗粒度的需求進行分解和細化,對優先級的設置對需求項進行排序,另外也能夠自定義視圖來篩選指定範圍的需求項,主要界面以下:
缺陷管理主要記錄已實現產品功能bug等,經過定義缺陷的錄入模板,明確缺陷的記錄內容,包括問題描述、排查過程、解決方案等,一樣能夠定義視圖篩選指定條件的缺陷清單等,界面以下:
在TAPD中經過迭代管理來實如今衝刺的計劃和執行,建立迭代時定義本次迭代的目標,並從需求和缺陷兩個列表中選取高優先級的項分配到衝刺計劃中,每一個任務項落實到開發團隊中的具體人員。在執行過程當中,每一個需求任務的狀態遵循規劃中 →實現中 →已實現/已拒絕流程變更,每一個缺陷任務的狀態遵循新 →接收處理 →已解決 →已驗證 →已關閉流程進行變更,經過對每一個任務狀態進行更新和跟蹤,實現對衝刺計劃跟蹤與控制。
另外TAPD提供故事牆的形式展現衝刺計劃,包括了狀態故事牆和資源故事牆,經過資源故事牆能夠了解開發團隊中每一個人的任務狀況與進展,天天能夠根據此故事牆的展現內容來各自說明負責的工做狀況和難點問題。
在衝刺結束階段,經過沖刺評審和回顧對當前衝刺的成果和過程進行反饋和整理,利用Wiki應用記錄衝刺回顧的內容和相關技術知識的整理內容。項目團隊全部人均可以訪問和更新,而且支持全文搜索,很是方便使用關鍵字查詢。開發團隊經過對衝刺的評審,確認產出的成果;經過對衝刺的回顧,找出執行過程的不足並加以優化;經過對業務和技術知識的沉澱,加速相關知識在團隊成員之間的流動。
Scrum框架並不定義標準化過程,不能保證團隊在依照其步驟一步一步執行後,就必定能在規定時間內產出一個客戶滿意的產品。相反,每一個團隊必須結合自身的狀況,不斷摸索和改進,才能在基於Scrum敏捷框架之上創建一套特有且有效的實踐方法,造成自身的Scrum版本。
做者:李灝
◆ ◆ ◆ ◆ ◆