敏捷開發已在國內大多數的企業成功推行,它包括了管理實踐和技術實踐,但在不少公司,對於敏捷開發的衡量標準和活動的執行的標準仍有爭議,有人說敏捷不須要流程,敏捷沒有質量評價標準,敏捷只關注進度......這些觀點均存在於各大公司的開發團隊中,那麼,跟CMMI同樣,敏捷有沒有度量的標準呢?數據結構
根據共創力公司的諮詢與培訓的案例,結合業務著名的通訊公司華爲的實踐,咱們把敏捷分爲五個層次:-1(阻礙)、0(中立)、1(協做)、2(操做)、3(適應)。架構
-1阻礙:當前的過程限制了敏捷的實行工具
0中立:既不阻礙也不有利於敏捷軟件開發單元測試
1協做:具有實施敏捷軟件開發的基礎測試
2操做:經過對相關技術的掌握和相應的紀律支持了敏捷軟件開發的持續實施優化
3適應:當前團隊的過程已經足夠成熟,可以良好地響應變化spa
對於敏捷成熟度的評估主要從如下幾個方面衡量:設計
管理實踐方面:需求管理、團隊文化、迭代管理 ;blog
技術實踐方面:軟件構建、測試、簡單設計;繼承
上圖是一個敏捷的評估模型,針對每個評估項有以下的問題能夠對標:
1)需求管理:
一、需求是怎麼獲取的?
二、需求如何跟蹤?優先級是如何肯定的?優先級在整個版本開發過程當中會有什麼樣的變化?有哪些因素會致使優先級變化?
三、 需求變動是怎麼進行的?會有哪些人蔘與?
四、需求實現人員與需求提出人員之間是如何交流的?交流頻率是什麼樣的?
5. 誰來定義驗收條件?誰作驗收測試?何時作?
六、需求估計何時作?誰會參與估計?
七、用的什麼需求管理工具?
八、當需求須要進行澄清時,怎麼辦?
2)團隊協做:
一、版本的人員間信息獲取渠道有哪些?不一樣角色之間的信息需求是如何知足的?
二、開發人員是否結對?怎樣結對?在什麼狀況下結對?通常結對時間有多長?
三、是否交換結對?多長時間一次?
四、團隊成員如何認領任務?
五、在文檔權限、代碼權限上,不一樣的角色是否是有區別?
六、to PM: 哪一個人的忽然離開會形成項目損害?爲何?你如何應對?
七、項目狀態是否你們都清楚?
八、是否是有規律的作迭代回顧?回顧中討論什麼事情?討論結果如何處理?
九、在哪裏/經過何種形式能夠找到項目相關的信息和知識?
十、當你解決了一個技術問題,你如何與他人分享你的經驗?
十一、知識共享有沒有創建?
十二、面對面交流是否頻繁 ?
1三、新員工進入團隊如何得到幫助?
1四、團隊內部以及團隊與外部的交流會議是否例行?
1五、開發人員經過評審代碼的方式,是否能達到質量保證和知識傳遞的目的?
1六、開發人員是否只瞭解本身的工做?
1七、配置庫的權限如何分配?是否是都有權限訪問?
3)迭代管理
一、計劃的精細程度?整個項目只有一個計劃,仍是每一個迭代都有計劃?
二、計劃有多長?幾個月,仍是幾個星期?
三、在項目進行中發現業務重心發生轉移,如何應對?
四、交付是否分爲若干次發佈?
五、迭代計劃誰來參與制定,根據什麼制定?
六、每一個迭代多長?週期固定麼?
七、項目狀態報告如何獲取?
八、如何更新進度?你如何瞭解項目進度?
九、迭代是否交付可工做的軟件,是否交付價值?
十、團隊成員是否熟悉迭代流程和Story流程?
十一、迭代中的Story可否獨立測試?
十二、是否有有效的可視化管理手段?
1三、團隊成員是否有迭代的意識?
1四、是否有風險管理機制?
1五、如何處理需求變動?
4)軟件構建
1 成功構建的標準是什麼?
2 構建是自動化的嗎?每一個人的構建過程是一致的嗎?
3 構建的頻率是多少?每次構建的大概時間是多少?
4 使用什麼樣的版本管理工具?
5 配置管理工具是否支持原子提交?
6 每日構建結果報告怎麼通知?
七、提交衝突如何解決?
八、開發人員通常多長時間提交一次代碼?
九、開發人員天天check in 代碼有沒有什麼規則?
十、CI搭建在什麼機器上,是否是有專人維護CI環境?持續集成的硬件資源環境是否充足?
十一、CI須要執行哪些測試?
十二、是否有嚴格的持續集成紀律?
1三、若是有本地構建的話,本地構建包含哪些內容,時間大概多長?
1四、CI構建的輸出報告有哪些內容,是否有人關注?
1五、自動化測試成功比率?自動化測試用例數量?
5)測試
一、當前的開發過程當中,開發和測試人員主要開展哪些工做?之間是如何配合的?
二、當前版本的測試活動主要有哪些?分別涵蓋哪些內容,由誰進行?每類測試活動的週期比例(重點關注story測試、迭代驗收測試、系統驗收測試等)
三、版本的測試策略與計劃是如何制定的?都包含哪些內容?
四、測試用例是否能繼承,繼承後的修改量是否巨大?
五、測試可以作到自動化嗎?哪些測試能自動化?
六、測試活動在整個版本中人力是怎麼一個分佈趨勢?測試E2E效率如何?(代碼行/測試人天)
七、開發人員是否寫測試?寫哪些測試?
八、測試可以穩定的重複執行麼?
九、隨着項目演進,你們積極維護重構測試嗎?
十、何時寫測試?哪些角色寫測試?
十一、有迴歸測試包嗎?其中包含了哪些測試?
十二、使用什麼工具來跟蹤bug?
1三、開發和測試人員怎樣合做重現並修復bug?
1四、何時寫單元測試?單元測試覆蓋率是多少?是否是全部人都寫單元測試?是否有單元測試培訓?
1五、開發和測試是否結對ST,怎麼作測試?
1六、測試環境是否是共享?
1七、開發者測試、story測試、迭代測試等分別使用什麼工具來跟蹤bug?各階段測試bug分佈比例?
6)簡單設計
一、設計文檔包括哪些文檔?
二、設計文檔怎麼寫出來的?哪些人蔘與?
三、那個文檔對開發的指導性較強?怎麼指導開發?
四、會不會出現後面設計變更較大的狀況?
五、設計須要更改的時候怎麼處理?描述一下場景
六、何時進行重構?重構的頻率是什麼樣子的?
七、重構有哪些具體實踐?是否代碼優化?
八、如何保證重構的正確性?
九、描述一下重構是怎麼作的
十、什麼工具輔助重構?
十一、接口、數據結構的演進怎麼作的?
十二、架構如何演進,是SE決定仍是與你們討論?