摘要:html
我表明全國人民祝福你…… 表明什麼!這星球上誰都表明不了誰!!敏捷流派這麼多,我想經過一篇文章說清楚還真有難度,因此請容許我選一個表明吧,那就是近年來最火的SCRUM!對於敏捷的其餘流派,我只能說:誰叫你不如人家火呢!本文將以SCRUM爲表明,讓你經過一篇短文大體瞭解敏捷流程框架、團隊角色及各類敏捷最佳實踐。程序員
大綱:數據庫
1.神馬是SCRUM?
2.SCRUM 的流程框架
3.SCRUM 的團隊角色
4.敏捷最佳實踐一覽編程
本文是系列文章的第2篇,若是尚未看過第1篇,建議先看看!架構
第一篇:敏捷的「官方」定義框架
連接:http://www.cnblogs.com/umlonline/p/3450032.html數據庫設計
1.神馬是SCRUM?分佈式
問:「SCRUM」是什麼意思?post
答:橄欖球唄!學習
繼續問:老兄,我問的是敏捷的SCRUM!
答:哦!嗯……(停頓幾秒)這是由於這種敏捷方法論和橄欖球比賽的特色有點相似,因此才叫SCRUM。
橄欖球比賽雙方對攻,每一次進攻叫作SPRINT(衝刺),橄欖球比賽也很是注重團隊合做,這些都符合這種敏捷方法的特色,因此引用了「SCRUM」這個名稱來命名這個敏捷的方法論。另外「SCRUM」這個名字很形象、響亮、容易記憶,有噱頭利於宣傳。那天你也能夠首創一種神祕的敏捷方法論,而後配上一個很酷的名稱,說不定會把SCRUM的風頭蓋過去呢!SCRUM多是近年來最火的一種敏捷,適用於大中小型項目,也適用於分佈式的團隊。
美國有敏捷SCRUM聯盟,能夠認爲這就是SCRUM官方機構,搞了一個SCRUM認證培訓。中國有一家SCRUM中文網網站,她是中國領先的Scrum認證及敏捷培訓受權服務機構,我仍是SCRUM中文網的顧問呢!在中國若是你想搞一個SCRUM相關的認證證書,你須要參加官方受權老師講授的相關課程,例如:SCRUM Master的課程,好像是7000大元(人民幣)/人(最近不知道漲價木有),國外的老師來中國授課,配上中文助教。這個課程至關貴,其中一個緣由是由於這是官方受權的課程,須要頒授官方承認的證書,官方實際上是要收取費用的,因此價錢就上去了。
SCRUM這麼火其實可能並非由於她真的比其餘敏捷方法優秀不少,而是一種商業操做模式,有利益驅動,背後天然就有不少推手。這個國外的SCRUM聯盟很會賺錢,設立標準,而後受權給不一樣的敏捷培訓及服務機構,只要你作官方發證的培訓,我就會賺到錢。SCRUM越火,認知度越高,越容易賺到錢。這道理和PMP證書、CMMI認證、ISO認證等的商業模式是一致的。證書在咱們中國,你懂滴,總會有人前赴後繼地去花錢搞證!
上面一段話說了SCRUM的商業模式,我並非爲了說明SCRUM商業模式很濃,純粹爲了賺錢,而是讓你知道是怎麼一回事。其實SCRUM仍是不錯滴,不少最佳實踐至關有用,不過須要結合中國國情來處理。若是你能讓公司報銷,或者你是土豪,那麼花7000大元去參加培訓獲得一個證書,這也是至關不錯的事情。若是你和我同樣是土鱉,沒有這麼多銀兩,也沒有關係,證書什麼滴實際上是浮雲,由於你還能夠經過不少途徑和實踐來學習和體會SCRUM。
另外須要說明,不要盡信敏捷,也不要盡信SCRUM,不管是什麼知識,咱們都須要用「拿來主義」的心態來處理。
2.SCRUM 的流程框架
SCRUM的內涵究竟是怎樣的?一個圖就能夠搞定!
圖2.1 SCRUM一張圖搞定
這張圖展現了SCRUM的流程框架及團隊架構,咱們先看流程框架部分,下小節才說團隊架構部分。
你能夠由左到右看這張圖:
1)左邊部分是須要完成的工做,由左到右分別是:產品代辦列表(Product Backlog)、衝刺代辦列表(Sprint Backlog)、工做項分解。
一般經過「用戶故事」的方式來表示產品代辦列表、衝刺代辦列表,產品代辦列表的用戶故事可能比較大,須要進一步細分爲比較細的用戶故事,而後放入不一樣的Sprint中,做爲不一樣Sprint的代辦事項,而Sprint中的用戶故事,還能夠繼續拆分紅更細的工做項分解。這段內容先大體這樣理解就能夠後,之後再會爲你們詳細分享需求拆解方面的文章。
2)右邊部分說明了:這些須要完成的工做,須要經過大小迭代來完成。
大迭代是指:Sprint(衝刺,也就是小版本),一般是30天的時間,每30天增量式的交付「可運行的軟件」。「可運行的軟件」這個說法還不太好,應該是「可工做的軟件」,不然你可能認爲編譯經過程序能跑就是「可運行」了,而「可工做」纔是重要指標,不只僅能運行,還能爲客戶帶來實在價值,才叫「可工做」。
小迭代是指:天天的項目會議,一般是15分鐘內。其實「站立」開會不是必須的,你能夠「坐」着開,甚至「躺」着開。開會時間能夠是早上、中午或下班前。形式和時間都不是關鍵,關鍵是要有效,要領會24小時開一次會議的核心思路!咱們都知道問題越早發現越早處理,處理成本越低,24小時開會讓問題被發現時間不會超過24小時,將問題消滅萌殺狀態,同時天天修正項目的方向,保證咱們一直在作正確的事情。
3.SCRUM 的團隊角色
圖2.1右下方有三種角色:產品負責人、Scrum Master、開發團隊,下面分別介紹。
產品負責人(Product Owner)
這個角色負責的事情主要是:
1)提供遠景;
2)提供邊界;
3)提供用戶故事的優先級。
該角色和產品經理是否是相似甚至同樣呢?
某些公司的產品經理很強勢(特別是互聯網公司),開發團隊常常會這樣抱怨產品經理:
1)上午提要求,下午就要交付。
2)需求常常變!
3)需求解釋不清楚,想找你澄清需求的時候,找不到你!
4)人仰馬翻好不容易作出來了,但這些功能基本沒有人用。
SCRUM中的產品負責人還須要注意作到如下兩點:
1)要和開發團隊溝通需求。
2)要尊重開發團隊的研發能力。
也就是說若是產品負責人不能讓開發團隊理解好需求,這是某種失職;若是開發團隊老是疲於奔命常常加班來完成工做,那就是不尊重開發團隊的研發能力,不尊重軟件研發工做的客觀規律。
Scrum Master
這個中文不知道怎樣翻譯好,翻譯成「橄欖球教練」,這不太好吧?因而有人翻譯成:SCRUM教練、敏捷教練。
這個角色要作的主要事情:
1)訓練團隊用正確的方法作事,遵循SCRUM的流程和作事原則。
2)不代替團隊作決定。
這實際上是一個很爽很舒服的角色,由於他只須要講道理,不須要作決定!他主要職責是訓練你們作事情,而不是親自負責這個事情,這跟項目經理是很不同的。
咱們的項目經理須要安排不少事情,作不少決定,還須要監督你們。項目經理就是一個大坑,什麼均可以放進去!但SM(Scrum Master)就舒服多了……
Scrum Master這個角色,還須要注意如下幾點:
1)你沒有行政權力。例如:你不能決定項目團隊某成員薪金或獎金,你無權說:你被解僱了。
2)你要忍住幫團隊作決定的衝動,讓團隊學會自我成長。
3)不建議你同時兼任產品負責人。產品負責人須要作很多重要的決定,這其實與Scrum Master角色衝突,一我的同時作兩種角色的事情,容易搞混了角色,固然你是超人能分得很清楚的話例外。
Scrum Master 這種角色理想很豐滿,現實很骨感,實踐中會遇到不少問題,後續文章再爲你們詳細分享。
開發團隊
這個詞前面還須要加上一個詞才比較合適,應該叫:「自組織」的開發團隊。
這種角色在現實工做中更加「難以想象」,甚至是不可能存在,不過咱們仍是先看看這個開發團隊包含什麼角色吧:
1)業務分析師
2)程序員
3)測試人員
4)軟件架構師
5)數據庫設計師
6)用戶體驗設計師
……
開發團隊雖然有「開發」兩個字,不是說僅包含「開發角色」,而不包括「非開發角色」,一般咱們所說的「開發角色」就是指程序員,好像測試、實施、配置管理、QA等角色就不是在作開發工做。這個開發團隊是指:除了產品負責人和Scrum Master之外的,全部對項目有貢獻的角色,這些角色的名字也不是固定的,各公司狀況不同,上面僅是一個例子。
這一波人若是能自我管理、主動溝通、相互協調地完成工做,這樣才能叫「自組織的開發團隊」,這樣才能敏捷。惋惜的是咱們的開發團隊若是沒有項目經理這樣的角色來協調和指揮,極可能會成爲「烏合之衆」,沒法談得上敏捷。
如何才能打造「自組織」的團隊呢?後面再爲你深刻分享。
4.敏捷最佳實踐一覽
敏捷最佳實踐至關多,咱們先來個一覽,先讓你有個大概認識吧,後續再爲你逐一分享。
這裏列出來的敏捷實踐並不限於SCRUM範圍內的,我儘可能將全部流派的敏捷實踐來了一個小小的總結。
需求方面最佳實踐:
1)User Story(客戶故事)
2)客戶全程參與
設計方面的最佳實踐:
3)簡單設計
測試方面最佳實踐:
4)測試驅動開發(TDD)
5)自動化測試
編碼方面最佳實踐:
6)重構
7)結對編程
8)代碼共有
9)強調編碼規範
10)持續集成(每日構建)
項目管理方面最佳實踐:
11)Sprint(衝刺)、小版本發佈
12)每日站立會議、每日晨會
13)每週工做40小時
14)Burn Down Chart(燃盡圖)
15)Lesson Learned
16)隱喻
請看下一文!
下一篇將爲你分享:神馬是敏捷?(3)——敏捷在中國的水土不服
摘要:中國軟件項目的「兩大限死,兩不肯定」,中國軟件研發人員的「可愛」特色……
做者:張傳波
創新工場創業課堂(敏捷課程)講師
軟件研發管理資深顧問
CMMI首席專家
《火球——UML大戰需求分析》做者
軟件知識原創基地創辦人