【Scrum】藉由數個衝刺,實現產品的敏捷開發!

在敏捷開發過程中,一個產品或者一個發佈版本通常是由多個衝刺來實現的,每個衝刺都能增量交付可運行的系統功能,實現客戶價值。每個衝刺都是從衝刺規劃開始,團隊成員一起商定衝刺目標和明確交付的系統功能,並進行衝刺執行,實現系統功能,再通過沖刺評審和回顧對實現的產品功能和過程進行檢視,期望在下一衝刺過程中對產品功能和過程進行改進和完善。

 

衝刺流程

衝刺包括衝刺規劃衝刺執行衝刺評審衝刺回顧四大過程。衝刺是從規劃開始,團隊成員必須就本次衝刺的目標和計劃達成共識,全體成員在整個衝刺過程按照既定的計劃奔着這個目標前進,每天對取得的成果和麪臨的問題進行溝通討論。衝刺結束階段,在衝刺評審活動中召集相關利益相關方一起演示產品功能並獲得反饋,獲得的反饋是產品列表和下一階段衝刺規劃內容的重要來源。在衝刺回顧活動中,全部團隊成員對沖刺執行過程進行檢視和討論,抓住其中存在的問題並討論優化方案,在下一個衝刺進行改善和優化,實現衝刺過程的優化和衝刺執行效率的提升。

 

衝刺規劃

一般情況下,是在每個衝刺的開始階段進行衝刺規劃,因爲在這個時間點上,能充分利用已掌握的信息最出最優的決策。衝刺規劃過程時間的長度根據衝刺的長度而定,佔用整個衝刺的5%左右時間是比較合理的,比如兩週的衝刺應該控制在4小時以內,一個月的衝刺應該控制在8小時以內。

 

衝刺規劃過程應該由整個團隊協作完成,產品負責人從現有的產品列表清單中選取清單項,提出衝刺的初步目標,並負責解釋開發團隊針對選取的產品清單項提出的任何疑問。開發團隊對沖刺內可交付的工作清單進行評估,並在規劃結束時做出最終的承諾。Scrum Master作爲教練,參與和觀察整個過程,提出可能的風險點,引導和幫助開發團隊做出有效的承諾。

 

在衝刺規劃過程中,基本的流程是:

 

衝刺規劃過程結束時,最終獲取衝刺目標和衝刺清單,開發團隊爲此目標和任務清單做出承諾,並在接下來的衝刺執行中爲此目標而努力。

 

衝刺執行

衝刺執行包括了交付一個增量可發佈的產品而必須完成的所有工作,其本身就像一個超小型的項目,衝刺執行過程佔用了衝刺大部分時間,比如兩週的衝刺中,衝刺執行佔用10天中的8天,所以衝刺執行過程對沖刺目標的順利完成至關重要。衝刺執行包含了規劃、管理、執行和溝通等工作:

 

01 規劃

衝刺執行規劃可以對沖刺清單中的重要工作項進行依賴關係的梳理,但不需要做詳細的執行計劃,比如一個甘特圖,因爲這可能是在浪費時間。團隊不僅僅浪費了製作計劃的時間,還浪費了更多時間試圖將計劃調整爲反映真實執行情況。衝刺執行規劃的原則是見機行事,逐步明確任務規劃,這個活動是一個持續性的,貫穿整個衝刺執行過程。

 

02 管理

衝刺執行管理是保證爲達成衝刺目標而進行的管理活動。開發團隊的特點決定了管理風格。衝刺執行管理具體來說要解決以下幾個問題:

 

  • 應該並行幾個工作項?並行太多的工作項,團隊成員會在不同工作項中切換,造成浪費;並行的工作項太少也會造成資源閒置浪費,適量的並行數量,力求充分利用團隊的生產能力,而又不至於過於繁重,達到合理的平衡,這需要每個團隊根據自身的能力和特點來實踐和探索。

 

  • 從哪個工作項開始?最簡單的方法應該是按優先級的排序從高到低依次進行,但是在具體執行過程中可能會碰到各種問題導致優先級高的工作項暫時無法開始,這種情況下也可以開始次高優先級的工作。

  • 由誰來做?最明顯的答案是由那個能完成得最好最快的人去做。但是每個團隊有自己的考慮因素,比如最合適的人可能在忙於其他的工作抽不開身,或者他可能正在休假中,甚至從團隊發展的角度考慮,可以給其他成員鍛鍊機會,以達到團隊成員在各項技能上的重疊,互爲補充。

 

  • 每日例會是一個關鍵的每日檢視-調整活動,時間控制在15分鐘以內,主要目的是檢視、調整和同步每日工作計劃,幫助團隊把工作做得更好。

 

03 執行

進行Scrum敏捷軟件開發,團隊成員需要熟練一些應用軟件開發技術實踐,比如持續集成、自動化測試、重構、測試驅動開發等,這些技術實踐會給開發團隊提出較高的要求,在短期內會對開發團隊造成進度或其他方面的壓力,但是長期來看,只有積極運用這些良好的技術實踐,才能切實體驗到敏捷的好處。

 

04 溝通

敏捷團隊一般是足夠小的團隊,小團隊成員的溝通不需要複雜的圖表和報告來溝通工作進展,推薦使用以下方法和工具:

 

任務板:顯示衝刺清單隨時間的任務狀態.

衝刺燃盡圖:顯示未完成任務的剩餘工作量曲線。

衝刺燃燒圖:顯示達成衝刺目標過程中所完成的工作量曲線。

 

衝刺評審

衝刺評審過沖關注的重點是產品,即關注的是結果,對沖刺執行期間完成的工作成果進行檢視,參與的人員包括Scrum團隊、內部利益干係人和外部利益干係人等。評審開始前的一項重要準備工作是確認衝刺工作完成,這項工作是由產品負責人來做,他最終確認衝刺清單中的工作項是否完成,確認的時機不是等到評審前最後一刻,可以衝刺執行過程中儘早確認,這樣會及早發現問題,贏得補救的時間。

 

衝刺評審過程中採用的方法包括:

 

01 總結

通常由產品負責人對本次衝刺的工作進行概括性說明,並展示衝刺目標和衝刺清單,說明完成的產品增量的基本情況。

 

02 演示

由開發團隊成員演示已完成的系統功能,對於不那麼容易演示的功能(比如後臺運行的程序)至少要提供一些測試程序來證明已完成的工作滿足產品負責人的要求。需要注意的演示本身不是目的,演示的目的是激發團隊成員的思維碰撞,提出更有建設性的建議和反饋。

 

03 討論

產品增量演示引導參與者就產品功能或目標等方面進行評論、建立和適當的討論,如需要更深入的問題方案的討論,應該另外進行會議獨立進行。

 

04 調整

通過演示和討論,會產生一些變更或新增的需求,這些變更和需求會對產品清單和下階段的衝刺清單帶來調整,通過梳理之後,在每次衝刺結束的時候會得到更新後的產品清單,可以在接下來的衝刺中及時響應變化。

 

衝刺回顧

衝刺回顧關注的是產品構建過程本身,即關注的是過程。團隊一起回顧衝刺過程中發生的事情,分析自己的工作方式,找出可能存在的問題點,提出改進方案和制定改進計劃。每次進行衝刺回顧前,可以先定義回顧的重點內容,以免過於分散。在回顧會議中,需要確保營造“對事不對人”的氛圍,回顧的目的在於改進過程,而非指責某個人員。回顧結束時,讓團隊成員跟進並落實改進措施,使得團隊在下階段的衝刺中更加高效。

 

總結

衝刺包括了整個產品或項目開發和管理中的多數的時間和活動,是產品功能實現的主要環節。本文嘗試從衝刺規劃、衝刺執行、衝刺評審和衝刺回顧四個過程的角度,全方位探討了衝刺涉及的所有活動和工作內容,希望可以對敏捷團隊在衝刺過程的執行中有所啓發和幫助。

作者:李灝 

 

其他優質文章

從我們多年項目實踐中,告訴您企業爲什麼要做IT運維管理轉型?

Linux | 文件的時間屬性

企業如何規劃DevOps落地與演進?

ZooKeeper | 安裝部署、應用場景、開發對接API

【銀行運維】落地平臺化管理,大步邁向銀行4.0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章