互聯網時代,產品迭代速度快,傳統的瀑布流開發模型已經沒法知足產品快速開發的需求,敏捷開發的思想應運而生。
考拉技術團隊在CEO的大力推行下,一直沿用scrum開發模型,保證產品每週一次的迭代。今天咱們先來入個門,瞭解下scrum模型的基本內容。安全
在開始介紹scrum模型以前,咱們先來回顧下以前軟件開發模式。
起初,軟件開發最基礎的模型叫作瀑布模型(Waterfall Model)。瀑布模型式是最典型的預見性的方法,嚴格遵循預先計劃的需求分析、設計、編碼、集成、測試、維護的步驟順序進行。瀑布模型下的產品開發各部分都是獨立分開,各不干擾,通常適應於大型軟件。 但瀑布模型也存在不能在開發過程更改需求、沒法遇上變化迅速的市場,容易形成資源浪費等缺點。
在這個基礎上,引入敏捷開發模型對於小開發團隊來講是比較合適的。
微信
敏捷開發是一種以人爲核心、迭代、按部就班的開發方法。框架
Scrum做爲敏捷的方法之一,用不斷迭代的框架方法來管理複雜產品的開發。工具
原詞來自於橄欖球中「帶球過人」。在橄欖球比賽的每次衝刺前,都將有一個計劃安排的過程,但衝刺開始後則由隊員在原計劃的基礎上隨機應發。
學習
靈活性、適應需求變化、更適合團隊比較小的狀況、每個迭代均有產出,容易學習。
Why choose Scrum? 緣由以下 (敏捷宣言):測試
個體交互重於過程和工具;優化
可用的軟件重於完備的文檔;編碼
客戶協做重於合同談判;設計
響應變化重於遵循計劃。3d
概況地說,它適用於快速變化的市場,能夠根據客戶不斷更換的需求,調整產品的方向,按時交付客戶想要的產品。這在今天競爭激烈的市場來講,優先於競爭對手交付一個不完美但能不斷改進優化的產品是很是重要的。
scrum團隊的成員由開發人員、測試人員以及其餘幫助研發的人組成:
核心團隊:
任務板
任務板用可視化方式展現,將一個sprint分爲四個階段:
Product Backlog:按照需求的優先級,將團隊在sprint中要進行的backlog放在該列;
To Do :將當前sprint須要完成的任務放入該列;
In Progress:當團隊開發進行某個任務以後,便將任務對應的卡片放到該列中。若是該任務在該列中所處時間超過1天,則應該將任務拆分爲更小的部分,並將新任務放到該列中,移出原有的任務。若一個新任務因某個障礙沒法完成,master就會將其標記爲障礙,用特定紅點標記。
Done:完成一個任務以後,便將任務放到該列。繼續開始下一個任務。
看板(kanban)開發方法做爲一種敏捷方式,在改善協助,優化管理、提升交付速度、質量以及靈活性方面有顯著做用。下篇文章會着重講述kanban開發模型在技術團隊中的應用。
燃盡圖
sprint的開發時間須要團隊跟進,燃盡圖能夠幫助團隊評估sprint開發任務的時間以及效率。
燃盡圖是以圖表展現隨着時間的減小工做量的完成狀況。燃盡圖的橫軸表示整個Sprint 的總時間,縱軸表示 Sprint 中全部的任務,其單位能夠是小時,人天等。 爲了更好表示任務開發狀況,團隊天天要更新燃盡圖,而且要根據燃盡圖中任務的完成狀況對任務進行調整:若是燃盡圖一直是上升狀態,或當 Sprint 進行一段時間以後,Sprint 燃盡圖上的Y值仍然與 Sprint 剛開始時相差無幾,就說明這個 Sprint 中的 Story 過多,要拿掉一些 Story 以保證這個 Sprint 能順利完成。 若是Sprint 燃盡圖降低得很快,例如 Sprint 剛過半時Y值已經接近0了,則說明這個 Sprint 分配的任務太少,還要多加一些任務進來。
爲了方便管理燃盡圖,在設計燃盡圖的時候,從簡出發。
Jira
做爲敏捷團隊用來管理開發項目流程以及進展的工具,Jira提供了豐富的功能,方便開發團隊對開發中的問題進行記錄跟蹤,並經過可視化圖表展示出來。當團隊進行一次sprint時,Jira會幫你記錄任務的完成狀態,團隊的分工狀況以及完成狀況。,支持將任務簡化,把開發時間分配到每一個具體任務中,在規定的時間內完成任務。這與敏捷開發的思想不謀而合。
儘管scrum很美好很輕量,可是這種模型不必定適用於全部的企業。爲了保持產品的快速優化,團隊在進行敏捷開發模式的同時,還應該注重敏捷開發過程的不斷優化。敏捷的出發點是爲了提升工做效率,以人爲本。沒有誰的敏捷之路是一路順風,不斷優化,小步快跑的方式纔是敏捷可行的路。