1. 程式人生 > >Scrum到底是個神馬玩意兒

Scrum到底是個神馬玩意兒

定位 一般來說 方式 傳統 rev pri img 協作 通過

從前有一種非常火爆的體育運動,對陣雙方各派出11位猛男,在寬闊的草皮球場內爭搶一顆可憐的小皮球。哪方能夠通過團隊協作拿到皮球,並且運送到對方場地的特定位置即得分。

技術分享圖片

沒錯,你沒有走錯片場,快到超級碗裏來~

咳咳,其實我們要說的是在IT領域內,從這種運動中引申出來的一個名詞,叫做SCRUM-爭球。

相信接觸過敏捷(agile)項目的讀者,都聽說過SCRUM這個名詞,那他到底指代的是怎樣一個事務呢?

其實你可以結合著上面這張圖片去理解,筆者覺得總結起來,SCRUM就是‘一個小規模團隊,通過緊密的團隊合作,一步一步推進團隊目標’的理念。

歸根結底,SCRUM是敏捷開發項目中的一種組織形式

,嚴格來說他其實不能算是一種技術而是一種方法論(Methodology),更不能等同於敏捷開發理念本身。

現如今,我們人類社會的運轉節奏已經快的令人發指了,這種快節奏也非常顯而易見的對IT行業產生了沖擊。在這樣的前提下,敏捷開發或者叫敏捷項目的應用漸漸浮出水面而且越來越呈流行的趨勢。

現在的IT企業,不搞敏捷開發感覺出門都不好意思跟人打招呼。而SCRUM就是敏捷項目最喜歡采用的一種組織方式。

那麽SCRUM怎麽開展,我的團隊到底適不適合采取SCRUM形式呢?

我們來看看SCRUM為一個敏捷性項目定義了哪些特性:

第一個是待辦產品列表(backlog):它包括了整個敏捷項目中,團隊要完成的所有任務;包括待開發的產品功能,非功能性需求,待修復的缺陷等等。

其次是沖刺期(sprint):也就是將一個敏捷項目劃分成數個小階段,每個階段定義該階段需要完成的任務量。一般來說這個階段時長是一至四周,以兩周為最常見。本質上這種做法與我們平常說到的‘叠代-增量’開發模型沒有根本的區別。在沖刺期結束的時候,我們規劃好的任務應該全部完成:這就包括了開發,集成,測試和歸檔。

其次是沖刺期計劃會(sprint planning):顧名思義,就是在每個沖刺期開始的時候,對所有待開發的產品部件進行討論,估算和決定哪些可以在當前沖刺期完成,並進而進行任務分派。在敏捷項目中,理論上類似計劃是一個民主的過程,團隊的成員秉承高度專業的態度來決定當前可完成的任務量。

再次是每日站立會議

(daily scrum)有時候提到scrum,我們可能會和站立會議等同起來。確實從命名上而言每日站立會議(daily scrum)也用到了scrum這個名詞,不過嚴格來說scrum不單單特指這個會議,也包含我們本文提到的對整個敏捷項目的組織方式。在會議上,每個團隊人員要回答三個問題:

  • 我昨天完成了什麽工作
  • 我今天準備完成什麽工作
  • 我發現了哪些可能阻礙工作的問題

技術分享圖片

PS:在筆者以前經歷過的一個敏捷項目裏,老外們真的拿著一顆玩具橄欖球在會議上傳來傳去:P

技術分享圖片

再次是沖刺期回顧(sprint review):回顧當前沖刺期完成的任務,展示項目成果,以及計劃完成卻沒有完成的任務,整理下一階段待完成的任務。

SCRUM對於敏捷項目而言是有很大價值的,通過這種組織形式能夠很好的實現敏捷項目的核心訴求:

  • 高度叠代
  • 強周期性
  • 持續響應客戶

當然話說回來,理念和理論總是聽起來很美好,實現起來卻往往很讓人頭疼,SCRUM也是如此。

敏捷的開發理念摒棄很多傳統開發模式中的復雜流程和管理方法,但它這種強調人,強調自身動力的理念也容易使得團隊缺乏計劃,行動松散。

所以SCRUM就像一把雙刃劍,用得好可能產生非常高的生產力;用的不好,則不但生產效率不高,還會讓團隊陷入混亂。並不是每個項目都適用敏捷開發,也不是所有團隊都要采取SCRUM得形式,具體如何選擇還是要取決於團隊的構成和實力。

Scrum到底是個神馬玩意兒