本節書摘來自華章出版社《靈活可執行需求說明 scrum提煉及實作技術》一 書中的第3章,第3.2節,作者:(美)mario cardinal,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
為了實作考慮周全的探索過程,靈活架構(例如scrum)力求采用嚴格的試錯流程。他們通過短周期回報環不斷地根據幹系人的需求說明檢查和調整軟體。頻繁的回報環提供給人們以最小的成本代價修正錯誤的能力。團隊的責任是不僅要從問題中學到教訓,還要幫助幹系人了解團隊正在給他們建構的是什麼。對于需求探索來說,需要很早就啟動不斷循環的回報環。
在scrum架構裡,一個回報回路就是一個sprint。如圖3-1所示,一個sprint就是一個可以傳遞産品增量的疊代時間盒。
同一個項目裡,每一個sprint的周期都是一緻的,大概是一個月曆月(或更短)。它們以同樣的節奏依據需求進行檢查。新的sprint從上一個sprint結束後馬上開始。sprint引起的回報環使得團隊能夠根據幹系人的願望進行調整。
最好的回報環來自幹系人跟團隊一起檢查和調整正在進行中的sprint。每個sprint,團隊都在建構為幹系人帶來價值的功能。這些能夠運作的功能以疊代的形式進行傳遞。可運作的軟體是用來幫助挖掘理想結果的基本機制。sprint促進開發團隊和幹系人之間的對話,建立了一個更好地了解後者的認知。當幹系人能夠盡早看到可運作的軟體時,就會産生強大的且重要的回報環。幹系人們通過真實的軟體來進行試驗,産生新想法,并改變他們的舊想法和認知。
回報環和釋出
很多開發團隊都以一個由若幹sprint組成的釋出為周期傳遞軟體。筆者的觀點是,一個釋出應當傳遞單個sprint的産出。不幸的是,在許多組織裡,釋出與sprint之間仍然存在着差别。因為有許多限制使得團隊無法以sprint的節奏部署軟體。結果,隻有釋出才能傳遞可工作的軟體。在這種情況下,就會有兩種回報環:釋出回報環和sprint回報環。sprint和釋出之間的差別并不可取,因為它降低了團隊擁抱變化的能力。幹系人不能參與研發團隊的每月一次的sprint裡。