1. 程式人生 > >敏捷開發的一些東西

敏捷開發的一些東西

提升團隊的交付能力?如何實踐敏捷軟體開發。這個是很多團隊必須面對的問題,也是讓專案經理比較頭疼的問題。如果一個專案不能有一個很好的交付,那麼專案就是失敗的。

下面是一個關於對於提升團隊交付能力的一些實踐建議或者準則。

這些準則是百度的路寧老師總結,非常感謝路寧老師在百度開發者大會上的分享。

一,制定基於交付物的增量交付計劃

上圖是路寧老師在演講中用到軟軟體編碼過程的迭代過程,橫軸代表個時間段,每一個代表一週時間,縱軸是代表同一時間正在進行的工作狀態。

迭代式模型和瀑布模型的比較:迭代模型,在每一次迭代都會算作一次小的交付,而瀑布式一次上線。靈活性和成功的機率可以明顯的看出來。

第二點:組成全功能團隊,拋棄內部合同,MRD評審,批量提需求。

這個過程包括:idea產生 -〉預估專案,對需求排優先順序 -〉 分析 、驗收條件 -〉 迭代啟動會 -〉需求牆 -〉故事啟動 -〉 開發 -〉mini驗收 -〉測試,fix bug -〉show case -〉上線。在這個過程中團隊成員要合理組合,不同的階段組合可能不同。

第三點:建立圍繞交付物的合作流程。

敏捷開發社群對交付物完成的定義是: Done, Done!客戶滿意,上線成功。

第四:制定需求完成和迭代完成的標準

可能會遇到這樣的問題:各個開發角色間相互等待,總有幾個人容易成為瓶頸。

一個人負責一個模組:如果有一個人離職或者請假,專案就無法繼續進行,會造成等待狀態,使專案無法按時交付。

所有人都可以做任何部分:這樣的好處是造成相互等待的情況減少。

提高單兵作戰能力,培養所有人可做所有部分。

第五:善用雲基礎服務

 重複搭建和維護千篇一律的各種平臺:專案管理平臺,bug跟蹤平臺,應用部署平臺,持續整合平臺,版本管理工具。

Project Hosting(git hub)

App Engine(EC2, GAE, Heroku, BAE)

CI Cloud (Travis CI)

Testing Cloud(MTC)

第六:持續整合

後期整合耗時且風險大

由於每次整合消耗大,無法頻繁釋出。

Jenkins, Team City, go, pulse, Travis CI, BAMBOO ,cruise

第七:自動化驗收測試

se

第九,應用single branch分支管理策略

每一個功能一個分支,學習開源專案的分支管理策略。

第十:資料庫的版本控制,建立獨立的沙盒

dbdeploy.com