這個詞猛一聽起來感覺很高大上,其實現在已經是主流的團隊開發流程 了。
一. 先說一下官方的定義:
敏捷不是指某一種具體的方法論、過程或框架,而是一組價值觀和原則。符合敏捷價值觀和原則的開發方法包括:極限編程(XP),Scrum,精益軟件開發(Lean Software Development),動態系統開發方法(DSDM),特征驅動開發(Feature Driver Development),水晶開發(Crystal Clear)等等。所有這些方法都具有以下共同特征:
迭代式開發。即整個開發過程被分為幾個迭代周期,每個迭代周期是一個定長或不定長的時間塊每個迭代周期持續的時間一般較短,通常為一到六周。
增量交付。產品是在每個迭代周期結束時被逐步交付使用,而不是在整個開發過程結束的時候一次性交付使用。每次交付的都是可以被部署到用戶應用環境中被用戶使用的、能給用戶帶來即時效益和價值的產品。
開發團隊和用戶反饋推動產品開發。敏捷開發方法主張用戶能夠全程參與到整個開發過程中。這使需求變化和用戶反饋能被動態管理并及時集成到產品中。同時,團隊對于用戶的需求也能及時提供反饋意見。
持續集成。新的功能或需求變化總是盡可能頻繁地被整合到產品中。一些項目是在每個迭代周期結束的時候集成,有些項目則每天都在這么做。
開發團隊自我管理。擁有一個積極的、自我管理的、具備自由交流風格的開發團隊,是每個敏捷項目必不可少的條件。人是敏捷開發的核心。敏捷開發總是以人為中心建立開發的過程和機制,而非把過程和機制強加給人。
二. 然后是我理解的敏捷
主要說一下我們公司自己的開發流程,因為接觸時間尚淺,所以有點地方可能說的不是很到位,希望大家多多包含。
需求評審(參與人員是 客戶+產品+UI+開發+測試,也就是所有人員)
主要是產品人員講解需求,用戶需要給出反饋或者提出意見,其他人員可以相應的提出自己的見解。
Story劃分(產品+UI+開發)
產品根據UI做出來的原型圖給開發人員講解系統構成和運行,將整個網站按照功能劃分成一個個細粒度的story來說明,開發人員(前端和后端)也需要明白自己應該關注那些關鍵點。
人員劃分(leader+開發)
主要是項目小組的leader 根據story劃分,給前端和后端開發人員劃分story,開發人員根據自己的情況去估算所需時間。
方案設計(數據庫設計文檔、接口設計文檔、方案設計文檔)
先根據系統的實際情況去設計DB,包括數據庫和表的名字,以及具體的字段。
然后設計接口文檔,按照頁面和功能進行設計,包括具體的請求地址和入參出參。
最后是根據接口文檔中出現的疑難點去做方案設計文檔,對遇到的問題進行分析并拿出至少兩種具體的解決方案。
方案評審(所有人員)
對前端和后端給出的方案評審其它人員給出各自的意見,有問題的話下次再次開始。
禪道任務拆分(開發人員)
方案評審通過以后開發人員就需要按照預估的總開發時間去拆分story,可以分成多個小的任務,但是一個任務的時間最好不要超過4個小時。
開發(項目日報+工作日報+進度郵件)
每天實際開發過程中遇到問題可以寫成項目日報;每天的任務完成情況寫成工作日報;相比較整個系統的進度完成情況需要寫進度郵件。
端對端(接口)測試(開發人員)
前端寫好了頁面,后端完實現了接口,就可以進行端到端的測試,可以遠程測試,也可以本地測試。
壓力測試+集成測試
系統完成以后需要用Jmeter 進行模擬用戶訪問,通過設置線程來提高并發量的方式達到一定的效果,測試生成的數據需要總結成測試報告。
Demo
對于復盤來說,這就是最后一個程序了,在前后端大師兄的評審下,主要是前端人員進行系統演示,各個功能是否實現、頁面是否達到用戶要求、有沒有什么需要完善的地方。點評過之后如果有問題那就修改之后再次評審;如果沒有問題那就算完成復盤項目了。
這么一個流程走下來,特別期間各個環節的良好運行以及團隊合作的情況都是確保項目能夠正常實現并交付的重要因素,敏捷開發強調的是人的充分能動性,通過這種相互合作的開發模式,相信在前后端分類開發的盛行時代,公司或者團隊可以在約定的時間內較好地完成用戶委托的項目。
技能樹. IT 修真院
“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷茫”。
這里是技能樹. IT 修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄 1 對 1 免費指導。快來與我一起學習吧~