《30天軟體開發 告別瀑布擁抱敏捷》一書 讀後總結

小呂-ICE發表於2015-02-01

    週四、發現旁邊一同事在看一本名為《30天軟體開發 告別瀑布擁抱敏捷》的書、“敏捷開發”這個詞雖然我在很早就已獲知,但是我也只是簡簡單單的認識到一個術語,並未去了解和認識什麼是敏捷開發。也剛好趁上個月的專案剛好是採用敏捷開發的模式完成的。於是就向同事借了該書幾天。在閱讀該書內容的過程中並結合自身專案的參與經歷,用對比的方式學習、認識和理解敏捷開發。 

一、初試Scrum

    Scrum是一個用於管理如 軟體開發 這樣的複雜工作的框架。(這裡的框架不是技術上的框架 只是針對專案管理上的一套理論)

    Scrum結構:3個角色 + 3個工件 + 5個事件
        角色:
            1、產品負責人[1人]:簡單的理解為專案經理也行。確定產品的功能和達到要求的標準,指定軟體的釋出日期和交付的內容。
            2、開發團隊[3-9人]: 完成軟體開發過程中的直接參與者。
[開發團隊最佳規模:足夠小以保持敏捷性、足夠大以完成重要的工作。少於3人的開發團隊,成員間缺乏足夠的互動,因而生產率不會很大。
大於9人的團隊需要過多的協調溝通工作,產生太多複雜性]
            3、Scrum Master[1人]: 流程管理員,負責確保所有人都能正確地理解並實施Scrum。服務型領導、服務於產品負責人、服務於開發團隊。

         工件:
            1、增量:
            2、產品待辦列表
            3、Sprint待辦列表

         事件:
            1、Sprint
            2、Sprint計劃會議
            3、每日站會
            4、Sprint評審會議
            5、Sprint回顧會議


二、Scrum實施流程
首先我們需要明白一個術語:什麼是Sprint?
Sprint:一次迭代開發的時間週期
Scrum的核心,其週期小於或者等於一個月,其產出是“完成的”、“可用的”、潛在可釋出的產品增量,Sprint的長度在整個開發過程中保持一致。
新的Sprint必須在上一個Sprint完成之後立即開始。

一個Sprint迭代開發週期流程如下:
1、Sprint計劃會議
   目的是為這個Sprint的工作做計劃。
   Sprint計劃會議要解決以下兩個問題:
      1、接下來的Sprint交付的增量中要包含什麼內容?
      2、要如何完成交付增量所需的工作?

2、每日Scrum站會
   每日站會以15分鐘為限、開發團隊成員在這時分享各自的工作情況、完成進度、併為接下來的一天制定計劃。
   會議上,每個開發成員需要說明以下幾點:
   1、昨日我為開發團隊達成Sprint目標做了什麼?
   2、今天我準備如何幫助團隊達成Sprint目標
   3、有什麼事情阻礙了我幫助團隊達成Sprint目標
目標:增強團隊交流溝通、確定開發過程中需要移除的障礙、強調和提倡快速決策,提高每個成員對專案的認知程度,同時也是監視和調整的關鍵會議.

3、Sprint評審會議(非正式會議)
會議內容通常含以下內容:
1、產品負責人說明哪些工作“完成”了,哪些工作沒有“完成”。
2、開發團隊討論哪些工作進展順利、遇到了什麼問題、問題是如何解決的等。
3、參會所有人就下一步的工作進行探討,這樣 Sprint評審會議就能為接下來的Sprint計劃會議提供有價值的資訊。
4、為下個產品版本的釋出評審時間表、預算、潛在功能。

4、Sprint回顧會議
會議目的:檢視自身並建立下個Sprint改進計劃的機會。
會議內容:
   1、對前一個Sprint週期中的人、關係、過程和工具進行檢視。
   2、找出做的好的和潛在需要改進的主要方面、並進行排序。
   3、制訂改進Scrum團隊工作方式的計劃
Sprint回顧會議提供了一個專注於檢視和調整的正式機會。


三、實際專案驅動 如何實施Scrum開發?
1) 將整個產品的backlog分解成Sprint Backlog(按優先順序排列的一個產品需求列表),這個Sprint Backlog是按照目前的人力物力條件可以完成的。由產品負責人完成。
   

2) 召開Sprint計劃會議,劃分任務,確定這個Sprint內需要完成的任務,標註任務的優先順序並分配給每個成員。確定需求中各功能模組的具體完成時間。如圖:


---



3) 進入sprint開發週期,在這個週期內,每天需要召開每日站會(Daily Scrum meeting)。如圖:

                                               (圖片來源於網路)


                                         (圖片來源於網路)

   任務看版包含 未完成、正在做、已完成 的工作狀態,假設你今天把一個未完成的工作已經完成,那麼你要把小卡片從未完成區域貼到已完成區域。
   每個人的工作進度和完成情況都是公開、透明的。

4) 整個sprint週期結束,召開Sprint評審會議(Sprint review meeting),將成果演示給產品負責人.
   
5) 團隊成員最後召開Sprint回顧會議(Sprint retrospective meeting),總結問題和經驗。

6) 這樣周而復始,按照同樣的步驟進行下一次Sprint開發週期. 直至整個專案開發完成。

整個Scrum開發流程如下圖所示:
                 

四、個人總結
    ①首先關於敏捷開發 並不是什麼新的技術、也不是什麼新的名詞、而只是專案開發管理上的一個概念性、經驗性的理論,是一種開發方法 也就是一種軟體開發的流程。
其實在國外很早就盛行啦、在國內大概在09年、10年才開始將這種開發模型得以應用。不要被他的“敏捷”而 敏捷。
    ②敏捷的關鍵是人,scrum更適合小型團隊、初創公司、外包公司。還要求團隊內成員的水平較高、技術水平平均。要求團隊開發人員態度積極、熱情、參與、成員穩定性高。適用開發週期短、緊急型的專案。
    ③概念歸概念、理論終究是理論、真正的掌握和理解敏捷開發的精髓 關鍵在於實際的專案驅動和環境的允許、在專案實踐中積累和學習!
更針對走專案管理方向者學習,路漫漫其修遠兮... ...


五、擴充套件閱讀

如需更多、更詳細的瞭解敏捷開發可前往 Scrum中文資料站>>




相關文章