首先告訴大家乙個好訊息,我們的專案採用敏捷scrum進行x專案開發宣告失敗,中途不得不轉向傳統過程。
為什麼是好訊息?我認為:失敗是成功之母。沒有失敗就發現不到所隱含的實際問題,將實際問題解決才是成功的必經之路。如果第一次成功反而不正常,所以這次的失敗是個好訊息。
下面我將結合敏捷scrum在該專案中應用失敗的經驗與大家分享。
引出實際的問題(也是現象)
整個團隊沒有掌握敏捷scrum。
團隊成員不知如何更好地劃分user stories。
在需求分析階段我們更多的是在爭吵需求。
我們對現有的持續整合工具了解甚少。
我們沒有用(自動)測試來驅動開發(tdd)的動力。
開發過程中其他團隊的人需要我們的幫助。
領導們仍然在等待團隊的開發進展匯報。
缺乏有實踐經驗的scrum master的指導。
整個團隊沒有掌握敏捷scrum
整個團隊對敏捷思想還沒有基本的了解,甚至還有很多人認為敏捷就是「裸奔」。有些誤認為僅有狀態牆就是敏捷了。
在x專案敏捷過程中,a同事問我sprint是什麼,backlog又是什麼,等等。
當然這是因為當時缺少敏捷培訓所致。
我個人理解:敏捷就是在合理的時間內高質量迭代式地完成客戶所需軟體的開發過程,去掉多餘的無實際意義的工件。而scrum是敏捷過程的其中之一,它有一定的過程規範要求。
團隊成員不知如何更好地劃分user stories
在需求分析階段我們更多的是在爭吵需求
在討論需求時,我們開發人員一直都是在沒有客戶在場的情況下進行需求分析和爭吵的。
a、b、c都是開發者。a認為x需求應該加入該版本,b認為y需求也應該加入該版本。c發言了,他提出z需求,而且他還情不自禁地說出了z需求如何實現的。c又認為a的x需求不合理,b認為c的z需求不合理。爭吵中……
需求分析時,不是只聽某個人的也不是只聽領導的(領導有時也犯錯),而應該是更多地聽取客戶(或者客戶代表、產品代表)的聲音。之所以敏捷scrum中也把客戶納到軟體開發團隊中來的目的。
我們對現有的持續整合工具了解甚少
在x專案敏捷時誤以為暫時沒有持續整合工具我們也可以做到敏捷,然而結果就是失敗。
持續整合就是每天晚上(充分利用工作以外的時間)自動編譯連線和測試執行所有的模組,盡早地暴露出問題。
在x專案敏捷中都是手動地測試,每次要一起測試時都要重新搭建環境。測試驗證效率低。
我了解到現有的cc.net為免費的,但聽說配置比較複雜。
不管工具怎樣不方便,我們仍需要加快熟悉持續整合工具。
我們沒有用(自動)測試來驅動開發(tdd)的動力
x專案敏捷時的誤區:我們編寫**都是先編寫好後再來手動地進行測試,沒有真正用上tdd。
最大的原因就是大家都不知如何開始tdd,心存疑慮。
在x專案敏捷失敗後,我初試一下tdd開發x專案命令列聯想模組。現正在開發當中就已經感覺到tdd的好處。其中tdd步驟如下:
1、寫乙個測試程式。考慮一下你希望實現的操作(功能)要如何使用**來體現。
2、盡快地讓測試程式可執行。如果明顯存在乙個整潔、簡單的解決方案(例如偽實現),那麼就將其鍵入。如果這個方案需要耗費一分鐘的時間,再仔細想想怎樣才能幾秒鐘內就能執行通過。
3、編寫合格的**。將第2步的簡單方案優化,消除先前引入的重複設計,使測試盡快通過。
開發過程中其他團隊的人需要我們的幫助
a同事在進行x專案開發的同時又要支援m產品。b同事更加是忙不開,因為他比較熱心,其他團隊的人有問題就找他。
我們正在開每日15分鐘例會,其他團隊的某同事要求a幫忙定位乙個問題。
正在開發中,乙個**過來需要參加乙個會議。
同樣正在開發中,乙個使用x專案的使用者打**過來說,strstr函式是如何用的。-_-!
像這種被很多事情干擾的例子數不勝數,開發效率必受到影響,敏捷也許就是空談。
領導們仍然在等待團隊的開發進展匯報
我記得在x專案 v1r2的第1個sprint中,同事a堅持認為要向領導們每週匯報開發進展。
他打心裡上說不匯報,領導們不知道我們在做什麼,做到什麼程度了。當時我也當心領導們不知道如何看我們的狀態牆而沒有反對。
同事a在匯集進展時要向每個人問一問,而且還徵求團隊每個人的同意。這一搞下來1個小時時間整理不到10行的進展匯報。
建議領導們也應該參加敏捷培訓。
缺乏有實踐經驗的scrum master的指導
在x專案敏捷過程中缺少這個角色。
假設對敏捷scrum有著基本的認識和了解,也必須要有經驗的scrum master來引導。因為他可以:
引導實踐過程出現問題時如何解決。
引導我們什麼時候該計畫sprint和如何計畫。
引導我們什麼時候該回顧sprint和如何回顧。
引導我們如何找到真正的story。
引導我們如何玩轉敏捷scrum。
引導我們不會走老路。
敏捷開發 scrum採用的關鍵說法
scrummaster 不是傳統意義上的領導者或管理者,是通過指導,促進以及快速消除任何影響團隊交付交織的障礙來提高團隊對scrum的使用。scrummaster的職責就是確保堅守scrum的基本原則,並使團隊始終遵循他們共同承諾的這些實踐。例如在sprint交付忙的時候,可能會忽略修復bug。這個...
Scrum敏捷專案管理
楚凡科技 www.trufun.net 10年間致力於做中國最專業的軟體工程解決方案提供商 規範軟體開發過程 優化軟體開發流程 保證軟體開發質量 提高軟體開發效率 trufun uml2建模工具 trufun bacon 需求管理工具 trufun 研發雲管理工具等 scrum作為一種專案管理方法,...
SCRUM敏捷專案管理
敏捷專案管理與瀑布以及rup的管理方式有很大的區別,scrum方法彌補了敏捷專案管理的空白,並且得到了實踐運用,而且取得了成功。本書介紹了如何通過scrum方法完成對專案的敏捷管理。本書共分為9章,分別為backdrop the science of scrum,new management res...