敏捷開發簡述
敏捷開發是一種以人為核心進行迭代的開發方法。
在敏捷開發中,軟件項目的構建被切分成多個子項目,每一個子項目的成果都經過測試,具備集成和可運行的特征。
敏捷開發現在主要包括:極限編程、SCRUM、Crystal Methods、FDD(特性驅動開發)等。
敏捷開發簡單理解就是,開始項目的時候不追求一步到位完美的代碼,而是在盡量短的時間周期內,開發出產品的核心功能。盡快上線發布,后面按照周期進行迭代升級,完善產品。
在說敏捷開發的應用之前,先聊聊為什么需要敏捷開發。
程序員大多數都會碰到需求一直變一直變,無限延。而且老項目基本是牽一發動全身,我們以為的一個BUG,會影響到另一個問題。還有各種開發文檔、產品文檔、接口文檔和測試報告沒有契合過等各種問題。
如果你遇到這種情況,可以開始了解敏捷開發流程了。
敏捷開發的應用
敏捷開發的流程:需求規劃和分期,需求評審,需求講解,方案評審,每日會議,性能測試,CodeReview,Demo,測試階段,線上BUG修改流程。
一個敏捷開發小組的日常:
如果一個管理還把產品和開發分家成兩個部門,一定會有一些矛盾。我們比如是一個網站開發,基于微服務負責網站的某一個小模塊成立一個敏捷開發小組。標準配置應該是:4個開發,其中一個起碼是高級程序員。一個產品經理,一個測試,一個項目經理。項目經理主要負責網站的某模塊的維護和協調。
日常分工:
產品經理:寫需求設計文檔,要把需求整理成Ticket,隨時和項目成員進行確認溝通。
開發人員:按照需求文檔的優先級提取Ticket,完成日常的開發任務;
測試人員:測試已經部署到測試環境的程序,如果發現Bug,提交到Ticket;
項目經理:保證日常工作的正常流程,執行反饋,并且協調組員,組織每日會議。
敏捷開發各崗位職責
產品經理:產品經理的職責就不光是畫原型圖了,而是給產品的模塊分期,制定好優先級和功能是最重要的。產品經理要做的是證明自己的功能是合理的。
但是在敏捷開發中產品經理不需要為開發進度負責,負責開發進度的是項目經理或者是小組Leader。還有是要在開發團隊開發項目的時間內去做下一個產品的迭代設計。
小組Leader或者項目經理:需要組織組內所有成員參與,如果整個公司實行敏捷開發,那就是組織各職能的Leader開需求評審會。
這個需求評審的目標是可以放到臺面上并且執行下去的方案,如果這里還要繼續討論是否合理,那這個會就很糟。
項目經理應該負責整個項目的調控,比如人員成本,時間成本,項目是否延期,還是調整功能。
開發組員:除了日常開發,主要是當項目完工以后,應該交叉去做CodeReview,并且出性能測試報告,以及組織Demo。
測試人員:不是單一的做功能或者是性能測試了,應該是做邊界測試和回歸測試。最簡單的功能測試應該都是開發直接完成了,如果有很麻煩的功能測試,才是測試人員來測。敏捷開發中,應該是組員全部承擔風險。
測試人員在敏捷開發中還是很重要的,要準確地記錄以及bug的統計。甚至測試人員可以給開發人員打績效。回歸測試是要做的,如果可以有很多自動化測試用例就正常用,如果不能就減少回歸測試。
總結
其實敏捷開發就是每個人各盡其職主動承擔一些工作,高效透明的溝通。如果整個開發團隊龐大,可以先成立敏捷開發小組。只要管理者明確職責合理分工,不斷地強化跟進培養大家去做事情就可以了。