選單

「Java」一文搞懂敏捷開發,各崗位職責與傳統開發有什麼不同?

敏捷開發簡述

敏捷開發是一種以人為核心進行迭代的開發方法。

在敏捷開發中,軟體專案的構建被切分成多個子專案,每一個子專案的成果都經過測試,具備整合和可執行的特徵。

敏捷開

發現

在主要包括:極限程式設計、SCRUM、Crystal Methods、FDD(特性驅動開發)等。

敏捷開發簡單理解就是,開始專案的時候不追求一步到位完美的程式碼,而是在儘量短的時間週期內,開發出產品的核心功能。儘快上線釋出,後面按照週期進行迭代升級,完善產品。

在說敏捷開發的應用之前,先聊聊為什麼需要敏捷開發。

程式設計師大多數都會碰到需求一直變一直變,無限延。而且老專案基本是牽一髮動全身,我們以為的一個BUG,會影響到另一個問題。還有各種開發文件、產品文件、介面文件和測試報告沒有契合過等各種問題。

如果你遇到這種情況,可以開始瞭解敏捷開發流程了。

敏捷開發的應用

敏捷開發的流程:需求規劃和分期,需求評審,需求講解,方案評審,每日會議,效能測試,CodeReview,Demo,測試階段,線上BUG修改流程。

一個敏捷開發小組的日常:

如果一個管理還把產品和開發

分家

成兩個部門,一定會有一些矛盾。我們比如是一個網站開發,基於微服務負責網站的某一個小模組成立一個敏捷開發小組。標準配置應該是:4個開發,其中一個起碼是高階程式設計師。一個產品經理,一個測試,一個專案經理。專案經理主要負責網站的某模組的維護和協調。

日常分工:

產品經理:寫需求設計文件,要把需求整理成Ticket,隨時和專案成員進行確認溝通。開發人員:按照需求文件的優先順序提取Ticket,完成日常的開發任務;測試人員:測試已經部署到測試環境的程式,如果發現Bug,提交到Ticket;專案經理:保證日常工作的正常流程,執行反饋,並且協調組員,組織每日會議。

「Java」一文搞懂敏捷開發,各崗位職責與傳統開發有什麼不同?

敏捷開發各崗位職責:

產品經理:產品經理的職責就不光是畫原型圖了,而是給產品的模組分期,制定好優先順序和功能是最重要的。產品經理要做的是證明自己的功能是合理的。

但是在敏捷開發中產品經理不需要為開發進度負責,負責開發進度的是專案經理或者是小組Leader。還有是要在開發團隊開發專案的時間內去做下一個產品的迭代設計。

小組Leader或者專案經理:需要組織組內所有成員參與,如果整個公司實行敏捷開發,那就是組織各職能的Leader開需求評審會。

這個需求評審的目標是可以放到檯面上並且執行下去的方案,如果這裡還要繼續討論是否合理,那這個會就很糟。

專案經理應該負責整個專案的調控,比如人員成本,時間成本,專案是否延期,還是調整功能。

開發組員:除了日常開發,主要是當專案完工以後,應該交叉去做CodeReview,並且出效能測試報告,以及組織Demo。

測試人員:不是單一的做功能或者是效能測試了,應該是做邊界測試和迴歸測試。最簡單的功能測試應該都是開發直接完成了,如果有很麻煩的功能測試,才是測試人員來測。敏捷開發中,應該是組員全部承擔風險。

測試人員在敏捷開發中還是很重要的,要準確地記錄以及bug的統計。甚至測試人員可以給開發人員打績效。迴歸測試是要做的,如果可以有很多自動化測試用例就正常用,如果不能就減少迴歸測試。

總結

其實敏捷開發就是每

個人

各盡其職主動承擔一些工作,高效透明的溝通。如果整個開發團隊龐大,可以先成立敏捷開發小組。只要管理者明確職責合理分工,不斷地強化跟進培養大家去做事情就可以了。