一、敏捷開發
敏捷開發基本概念
敏捷開發(Agile Development)是一種以人為核心、叠代、循序漸進的開發方法。在敏捷開發中,軟件項目在構建初期被切分成多個子項目,各個子項目的成果都經過測試,具備可視、可集成和可運行使用的特征。
敏捷開發是針對傳統的瀑布開發模式的弊端而産生的一種新的開發模式,目标是提高開發效率和響應能力。
敏捷開發的核心價值觀
以人為本
目标導向
客戶為先
擁抱變化
Scrum 不是一個标準化過程,不能保證你按步驟流程一步一步的執行就能産生高質量産品。
1.框架
Scrum是一個用于組織和管理工作的框架。Scrum框架建立在一套價值觀、原則和實踐之上,在這個框架的基礎上,各個組織可以添加相關工程實踐特有的實現方法以及在實際Scrum實踐時所采取的特定方法。
Scrum框架好比一座建築物的地基和牆體,Scrum的價值觀、原則和實踐是重要的構件。
如果對這些價值觀、原則和實踐置之不理或是做出根本性的改變,必然會帶來倒塌的風險,但是可以在Scrum結構内部進行定制,添加一些固定設施和裝置,直到得到一個可行的過程。
3.Scrum實踐
産品負責人:
定義所有産品功能
決定産品發布的内容以及日期
對産品的投入産出負責
根據市場變化對需要開發的功能排列優先順序
合理的調整産品功能和叠代順序
認同或者拒絕叠代的交付
ScrumMaster:
對項目的直接管理
領導團隊完成Scrum的實踐以及體現其價值
排除團隊遇到的困難
确保團隊的勝任其工作,并保持高效的生産率
使得團隊緊密合作,使得團隊個人具有多方面職能的工作能力
保護團隊不受到外來無端影響
Team:
經典團隊擁有 5-9 人
團隊成員都是是多面手
團隊成員都全職工作
團隊自我組織和管理
5.Scrum 活動與工件
三、敏捷開發管理實踐Scrum
Scrum是一種靈活的軟件管理過程,它提供了一種經驗方法,可以幫助你駕馭叠代,實現遞增的軟件開發過程。這一過程是迅速、有适應性、自組織的,它發現了軟件工程的社會意義,使得團隊成員能夠獨立地集中在創造性的協作環境下工作。
Sprint
是短距離賽跑的意思,這裡面指的是一次叠代,而一次叠代的周期是1個月時間(即4個星期),也就是我們要把一次叠代的開發内容以最快的速度完成它,這個過程我們稱它為Sprint。
Product Backlog(産品訂單)
整個項目的概要文檔,它包含已劃分優先等級的、項目要開發的系統或産品的需求清單,包括功能和非功能性需求及其他假設和約束條件。
Sprint Backlog(沖刺訂單)
是大大細化了的文檔,用來界定工作或任務,定義團隊在Sprint中的任務清單,這些任務會将當前沖刺選定的産品訂單轉化為完整的産品功能增量。
任務看闆
用來組織三種視角(時間、任務和團隊),目的是使整個團隊都能理解項目的當前狀态,并以一種自發、有動力且互相合作的方式來工作。令項目可視化。
Epic
通常是一個比較籠統的業務需求,來源于用戶或業務部門。需對其進行拆分,同時本身保留,用于團隊追溯起源。
Story
用戶故事是敏捷開發中的需求表達方式,每個用戶故事代表了從産品的用戶視角表達的一條用戶需求,即一個需求點,通常由客戶、産品經理或者需求人員來編寫,開發人員也可以編寫一些非功能的用戶故事,比如安全、性能、質量等層面。
任務
在用戶故事下拆分任務,即項目團隊成員需做的事,拆分為完成這個需求的所有的任務,包括設計,開發,測試,交付,甚至包括申請機器,部署測試環境等等。
每日站會(Daily Scrum Meeting)
1個Sprint開始叠代後。ScrumMaster需要組織團隊成員每天開站會. 這個會議是用15分鐘的時間來讓大家過一下scrum的狀态。在會上,每個團隊成員需要問3個問題:我昨天做了什麼,今天做什麼,遇到哪些障礙。誰都可以參加這個會議,但隻有Scrum團隊成員有發言權。這個會議的目标是得到一個項目的全局觀,用于發現任何新的依賴,定位項目成員的要求,實時的調整當天開發計劃。
燃盡圖
全稱應該是“總剩餘時間的燃盡圖”,就是本次叠代中,所有故事(或拆分的任務,以下僅稱故事)的剩餘時間總和,随日期的變化而逐日遞減的圖。
Sprint Review Meeting(評審會議)
會議産品負責人和客戶都要參加,每一個Scrum Team的成員都要向他們演示自己完成的軟件産品。
2. Scrum – 角色職責與工作流程
如下2張圖所示,3種角色,産品負責人,Scrum主管,開發團隊如何工作:
角色職責介紹
産品負責人(Product Owner)
負責編寫用戶需求(用戶故事),排出優先級,并放入産品訂單(Product Backlog),從而使項目價值最大化。
Scrum主管(Scrum Master)
負責Scrum過程正确實施和利益最大化的人,确保它既符合企業文化,又能交付預期利益。(備注:Scrum主管并非團隊的領導(由于他們是自我組織的),他的主要工作是去除那些影響團隊交付沖刺目标的障礙,屏蔽外界對開發團隊的幹擾。)
開發團隊(Scrum Team)
負責找出可在一個叠代中将産品待開發事項(沖刺訂單)轉化為功能增量的方法。每個成員可能負責不同的技術方面(一般由5~9名具有跨職能技能的人(設計者,開發者等)組成),要求每個成員必須要有很強的自我管理能力,同時具有一定的表達能力,成員可以采用任何工作方式,隻要能達到Sprint的目标。
3. Scrum – 主要活動
主要活動有4種:
沖刺規劃會議(Sprint Plan Meeting)
每日站立會議(Scrum Daily Meeting)
沖刺複審會議(Sprint Review Meeting)
沖刺回顧會議(Sprint Retrospective Meeting)
文章來源:悅讀有進Gene
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!