Member-only story
無止境的前進-衝刺(Sprint)的內涵
長跑馬拉松
Sprint從原文的字義上理解,解釋為短期快跑。在敏捷管理中,則是橫貫一個專案從啟動到交付的迭代週期。這樣比喻或許生硬,如果以長跑競賽來想像,假設馬拉松總長20公里,每1公里設置一個休息點,那麼跑者必須完成20段賽程才能完賽,一段賽程就能視為一個Sprint,當然每段都可能發生各種意外,例如:賽道更改、規則變動、天候變化等等,因此每一段賽程結束就必須要針對前一段的狀況做重新調整的動作,確保最後能夠達到目標。
因此Sprint本身就會帶有幾項特性:
- 短期 - 跑步路程分成許多小段,可以短時間檢視跑者狀況
- 快速反饋 - 長跑賽事被切成很多小段,許多狀況或調整效果可迅速知道
- 適應變動 - 必須對所有可能的狀況作彈性異動,確保下場賽事進行
我要你衝,但不是莽撞
那到底什麼是Sprint? 從字面上的意義來看,可能會被誤以為Just Do It,一旦發現目標就立刻前進,但在敏捷裡面衝刺不代表橫衝直撞,他其實有一套規範,引領團隊在開發的過程中能夠有彈性的面對變化。
衝刺(Sprint)本質上是敏捷的核心,涵蓋了所有的敏捷活動,因此也可以被看作是一個容器(Container),裝載著所有能支持團隊實現3大精神的工具。每一場衝刺最多不應該超過一個月,若超過,那麼可能會造成很多問題無法儘速得到反應與反饋,甚至會意外地導致專案失敗的風險、複雜度上升。而每場衝刺結束後,則可以即刻啟動下一場衝刺,藉由反覆的迭代滾動檢驗前次調整後的效果。
所有敏捷活動,包含衝刺計畫(Sprint Planning)、每日討論(Daily Scrum)、衝刺檢視(Sprint Review)、衝刺回顧(Sprint Retrospective),都會在一場衝刺裡走過,期待每當衝刺結束後,能夠達成預設的衝刺目標(Sprint Goal)。
一個良性的衝刺應具備幾個特質:
- 過程中任何異動都不應該危及衝刺目標
- 產出價值不應該縮減
- 待辦清單會隨著需求變化而修改
- 當專案內容隨著團隊開發以及市場變化而習得更多資訊時,敏捷團隊可以和產品負責人釐清並協調項目範疇
死路也是路,只要你還記得回頭
講到這裡,你腦中可能已經有一幅畫面,就是每場衝刺會包含幾項活動,每項活動都是為了讓專案的過程有足夠的透明、檢視和調整,反覆迭代下去,最後走到專案想完成的目標。
難道衝刺永遠都是勇往直前? 只要沒有死,剩下的都是擦傷!?