敏捷開發的基本概念:
1.什么是敏捷開發?
1)敏捷開發是一種以“人為核心,迭代式(循環漸進)”的開發方式,也就是一種軟件開發流程
2)為什么說是以“人為核心”?
a.相對于瀑布開發模型,它是以文檔為驅動
b.敏捷開發只選優必要的文檔,或盡量少寫文檔,敏捷開發注重的是“人與人之間,面對面的交流”,所以它強調的以“人為核心”
3)什么是迭代?
a.指把“一個開發周期很長且負責”的開發任務,分解成“多個開發周期短且可以完成”的任務,其中每一個短周期就是稱為一次迭代(一般為二周)
b.同時保證每一次迭代結束后,有一個“可交付”的軟件演示產品
關于Scrum 和 XP
前面說的敏捷開發是一種“指導思想或開發方式”,它沒有明確的告訴我們到底怎么做,而Scrum 和 XP就是敏捷開發的,具體方式:
1.Scrum:一種迭代式增量
軟件開發過程
2.XP(極限編程):任何一個軟件項目都可以從四個方面入手進行改善:加強交流,從簡單做起,尋求反饋,勇于實事求是
3.Scrum偏重于過程
,XP 則偏重于實踐
,實際開發中兩者結合使用;
這里主要講Scrum:
Scrum開發流程中的三大角色
1.產品負責人(Product Owver)
主要負責確認產品功能
,指定軟件的發布日期和交付的內容
, 同時擁有權利接受或拒絕開發團隊的工作成果
2.流程管理員(Scrum Master)
主要負責整個Scrum流程在項目中的順利實施和進行,清除
擋災客戶和開發工作之間的溝通障礙,使得客戶可以直接驅動開發
3.開發團隊(Scrum Team)
負責開發工作,保質(可交付性)
的完成每個迭代(Sprint)的任務
如何進行Scrum開發?
Scrum開發模型
.首先由產品負責人(Product Owver)確定一個Product Backlog(按優先順序
排列的一個產品需求列表)
。Scrum Team根據Product Backlog列表,做工作量的預估和安排
(開工作預估會議:讓每個人負責的部分做工作量預估,精確到
每人天)
。下面就是開
迭代會議
,從中挑選出一個Story(可交付的任務)作為本次迭代完成的目標,這個Story一般控制在兩周。開發團隊成員從Story中認領自己的任務(
認領任務過程有一個紙牌游戲
)。將自己這個迭代任務再細分,拆成多個小任務,一般精確到
每人天
,將自己分類的這些小任務貼到任務墻上,任務墻分為5欄:未完成的任務(根據不同的顏色進行標注顯示不同的優先級),正在進行的任務,已完成的任務,測試,集成
. 在迭代的過程要進行
每日站立會議
,一般控制在15分鐘以內
:會議內容:
1.主要匯報昨天任務的完成情況,以及遇到不能解決的問題,可以提 出來大家一起解決 2.明確今天的任務,要完成什么,會議結束后在任務墻上更新自己的任務
. 做到
每日集成
,至少保證單元測試
通過(單元測試很重要,主要保證一些可預知的bug不會發生). 每個迭代任務完成后要進行一次
交付演示會議
,也稱評審會議,會上產品負責人 和 客戶都要參加. 演示會議后團隊內部還要針對這次迭代開一次
總結會議
,說說這次迭代種遇到的問題,并解決它,以及在下面的迭代種避免類似的問題再次發生.之前我們就遇到如下問題:`1.寫后臺的同事,文檔接口更新了,默默的完成下一個任務,而前端和移動端的同事不知道就傻傻的等,大大浪費了開發的時間
2.開發人員打測試包的時候就直接把包的下載鏈接給測試人員,啥也不說,測試的哥們懵逼了:“這個包我需要測試的是哪些內容?難道我從頭到尾再來測試一次?”
再提出問題后,那么就需要解決:
我們實行互相監督的方式:
A 監督 B 每次發布測試包的時候要標明修改了哪些,如果沒有標明A 提醒B
B 監督C 文檔接口更新了 未說明,B 提醒C
`