Scrum開發(fā)過程

?本文轉(zhuǎn)自:Scrum中文網(wǎng)

SCRUM方法如下:

SCRUM將工業(yè)過程控制中的概念應(yīng)用到軟件開發(fā)中來,認(rèn)為軟件開發(fā)過程更多是經(jīng)驗(yàn)性過程(Empirical Process),而不是確定性過程(Defined

Process)。確定性過程是可明確描述的、可預(yù)測的過程,因而可重復(fù)(Repeatable)執(zhí)行并能產(chǎn)生預(yù)期的結(jié)果,并能通過科學(xué)理論對其最優(yōu)化。經(jīng)驗(yàn)性過程與之相反,應(yīng)作為一個黑箱(Black box)來處理,通過對黑箱的輸入輸出不斷進(jìn)行度量,在此基礎(chǔ)上,結(jié)合經(jīng)驗(yàn)判斷對黑箱進(jìn)行調(diào)控,使其不越出設(shè)定的邊界,從而產(chǎn)生滿意的輸出。SCRUM方法將傳統(tǒng)開發(fā)中的分析、設(shè)計、實(shí)施視為一個黑箱,認(rèn)為應(yīng)加強(qiáng)黑箱內(nèi)部的混沌性,使項(xiàng)目組工作在混沌的邊沿,充分發(fā)揮人的創(chuàng)造力。如將經(jīng)驗(yàn)性過程按確定性過程來處理(如瀑布模型),必將使過程缺乏適應(yīng)力。

3.2.1 SCRUM

方法的開發(fā)過程包括三個過程:

(1)

計劃和體系結(jié)構(gòu)設(shè)計(確定性過程)將Backlog(急待完成的一系列任務(wù),包括:未細(xì)化的產(chǎn)品功能要求、Bugs、缺陷、用戶提出的改進(jìn)、具競爭力的功能及技術(shù)升級等)按優(yōu)先級排序形成Backlog 列表,根據(jù)該表和風(fēng)險評估制訂產(chǎn)品交付基線。建立系統(tǒng)體系結(jié)構(gòu)(如為已有系統(tǒng)改進(jìn),則只作有限分析、調(diào)整),將Backlog項(xiàng)按高內(nèi)聚低耦合的原則分解為一系列問題包(Packets,每個Packet是一組對象或構(gòu)件的集合) ,依據(jù)同樣原則相應(yīng)劃分若干個開發(fā)小組(SCRUM 小組),分配各小組合適的Backlog項(xiàng)或問題包。建立開發(fā)運(yùn)行環(huán)境。

(2) Sprint

(經(jīng)驗(yàn)性過程)該過程由若干個迭代的沖刺(Sprint) 活動組成,直至風(fēng)險評估認(rèn)為產(chǎn)品可交付為止。一個Sprint是在限定時間段內(nèi)(Sprint周期,通常為1~6周,可在前一個Sprint結(jié)束時調(diào)整)的一系列開發(fā)活動(包括分析、設(shè)計、編碼、測試等),每個SCRUM小組并行開發(fā)且必須步調(diào)一致(在一個Sprint結(jié)束后,均須完成所分配的Backlog項(xiàng)并有可執(zhí)行的產(chǎn)出)。每個Sprint包含以下活動:

l

開發(fā)。對分配的Backlog工作進(jìn)行分析,將所需改動(changes)映射到各packets,打開packets,進(jìn)行領(lǐng)域分析,然后設(shè)計、開發(fā)、實(shí)施、測試、文檔化這些改動。

l

打包(Wrap)。封裝packets,產(chǎn)生一個滿足Backlog需求的可執(zhí)行版本。

l

評審(Review)。所有的SCRUM小組一起開會,提交各自的工作并演示(Demo),然后提出和解決問題(Issue)及難點(diǎn)(problem),增加新的Backlog項(xiàng);發(fā)布、審查或調(diào)整產(chǎn)品的標(biāo)準(zhǔn)規(guī)范;進(jìn)行風(fēng)險評估并提出合適的對策;確定下一個Sprint的工作內(nèi)容和結(jié)束時間。

l

調(diào)整(Adjust)。根據(jù)評審會匯集的信息,對受影響的Packets進(jìn)行適當(dāng)調(diào)整和鞏固。

(3)

交付和鞏固(確定性過程)一旦根據(jù)風(fēng)險評估結(jié)果認(rèn)為可交付產(chǎn)品時,即進(jìn)入該階段。該階段的活動包括:組裝,系統(tǒng)測試和回歸測試(Regression),準(zhǔn)備培訓(xùn)材料,完成最終文檔。

SCRUM

過程認(rèn)為一個產(chǎn)品的開發(fā)將一直持續(xù)下去,除非經(jīng)風(fēng)險評估后認(rèn)為應(yīng)停止。產(chǎn)品交付后的鞏固活動類似于傳統(tǒng)方法中的維護(hù)和改善,目的在于整理Sprint期壓力下忽略的工作,為下一階段的開發(fā)做準(zhǔn)備,以便輕裝上陣。

3.2.2 SCRUM

對過程的管理:

(1) SCRUM

的控制手段。

SCRUM

提出了八個控制項(xiàng)(Controls)用于開發(fā)過程的調(diào)控,其中風(fēng)險控制是首要的手段。

l Backlog

。

l

對象/構(gòu)件。

l Packets

。

l

變動(Changes)。實(shí)施一個Backlog項(xiàng)時,對相應(yīng)Packet的改動。

l

難點(diǎn)(Problems)。實(shí)施一個變動時所必須解決的技術(shù)難點(diǎn)。

l

問題(Issues)。涉及到整個項(xiàng)目或在Backlog項(xiàng)分解到Packet之前須解決的問題。

l

措施(Solutions)。對問題或難點(diǎn)的解決,通常會導(dǎo)致變動。

l

風(fēng)險(Risks)。影響項(xiàng)目成功的風(fēng)險,應(yīng)持續(xù)跟蹤評估并相應(yīng)做出調(diào)整。風(fēng)險評估的結(jié)果將影響其他所有控制項(xiàng)。SCRUM定義了六個概念性變量來用于風(fēng)險評估:用戶需求,時間壓力,競爭,質(zhì)量,遠(yuǎn)見(vision)和可用資源。在SCRUM的各個階段都使用這些控制項(xiàng)來評估和權(quán)衡,管理人員側(cè)重于以此管理Backlog,開發(fā)組用以處理變動和難點(diǎn)。所有人員一起來管理問題、風(fēng)險和措施。根據(jù)對控制項(xiàng)特別是風(fēng)險的不斷度量評估和權(quán)衡,一方面,計劃和進(jìn)度(在每個Sprint結(jié)束時)不斷相應(yīng)調(diào)整,保證實(shí)現(xiàn)產(chǎn)品的商務(wù)目標(biāo);另一方面,對開發(fā)中的工作任務(wù)Backlog動態(tài)地進(jìn)行優(yōu)先級排序,開發(fā)組總是先開發(fā)優(yōu)先級最高的Backlog項(xiàng),這樣就保證了資源的最合理使用。另外,SCRUM強(qiáng)調(diào)度量(采用標(biāo)準(zhǔn)功能點(diǎn)度量方法)的重要性,通過對每個Sprint中生產(chǎn)率等的度量,計劃和進(jìn)度將越來越趨于準(zhǔn)確。

(2)

項(xiàng)目組織。項(xiàng)目組由全職開發(fā)人員及與該交付產(chǎn)品有關(guān)的市場人員、銷售人員、用戶等組成。設(shè)以下小組:

l

項(xiàng)目管理組。由產(chǎn)品經(jīng)理領(lǐng)銜,包括總設(shè)計師,各SCRUM小組組長,市場、銷售的高級職員及典型用戶等。

l

若干個SCRUM小組。各小組由組長(SCRUM Master)領(lǐng)銜。每個小組都是跨專業(yè)的(通常包括開發(fā)人員,文檔人員,質(zhì)量控制人員或用戶代表等),通常為3~7人,以使小組內(nèi)有充分的交流。小組的劃分最好是功能導(dǎo)向的(按所分配的問題包或Backlog),也可是系統(tǒng)層次導(dǎo)向(按體系結(jié)構(gòu)中的分層)。.

在項(xiàng)目組人數(shù)增大時,可在管理組之上再設(shè)管理組(SCRUM of SCRUM),從而使SCRUM方法的應(yīng)用到大項(xiàng)目中。

(3) Sprint

期間的調(diào)控。在Sprint期間,應(yīng)使各SCRUM小組盡量避免外界的干擾(不可將新的Backlog任務(wù)加進(jìn)來,組內(nèi)產(chǎn)生的Backlog可放到整個項(xiàng)目的Backlog列表中,也可在本次Sprint中解決),使小組成員專心于目前的工作,使他們工作在混沌的邊沿。為避免項(xiàng)目組在Sprint期間不陷入混亂,SCRUM采取兩個措施:

l SCRUM

會議(SCRUM Meeting)。對小組行為進(jìn)行監(jiān)控和刺激。會議在Sprint期間每天在同一地點(diǎn)舉行,由SCRUM Master主持。會議上,SCRUM Master對每個小組成員提三個問題:

1

) 昨天的工作進(jìn)展如何。

2

) 有否遇到困難和障礙。

3

) 今天的工作打算。會后SCRUM

Master集中精力排除障礙,小組成員則進(jìn)行當(dāng)天的開發(fā)。

l Sprint

評審會議。評審后根據(jù)對每人的工作成績,進(jìn)行相應(yīng)的激勵。

3.2.3 SCRUM

方法的實(shí)踐效果和發(fā)展方向:

SCRUM

在實(shí)踐中大大提高了生產(chǎn)率(據(jù)軟件生產(chǎn)率組織的Capers Jones稱可提高6倍),在實(shí)施中有一個”間斷平衡”(Punctuated equilibrium)現(xiàn)象(類似于自然界中物種的進(jìn)化,在經(jīng)過一段相對平衡的各自獨(dú)立、并行的發(fā)展期后,在交匯處發(fā)生變異),即在經(jīng)過緊張、并行的Sprint開發(fā)后,在Sprint評審時,軟件產(chǎn)品產(chǎn)生較劇烈的變化。SCRUM方法的最近動向是設(shè)法借鑒XP方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Scrum指南的目的 Scrum是用于開發(fā)和持續(xù)支持復(fù)雜產(chǎn)品的一個框架。本指南包含了Scrum的定義,其中包 括S...
    iceinto閱讀 2,507評論 0 10
  • 《Scrum 敏捷軟件開發(fā)》豆瓣鏈接 第一部分 啟航 第1章 為什么敏捷轉(zhuǎn)型難(但值得) 為什么轉(zhuǎn)型困難 成功的變...
    小鐳Ra閱讀 1,213評論 0 2
  • 勇哥通常一個人在宿舍打譜,偶爾我會過去學(xué)習(xí)幾局。 周末的時候,他會跑去南門口(湖南邵陽市區(qū)的一個地名)的一個棋館下...
    曾愛兵閱讀 611評論 2 6
  • 這可能是我自打上班以來,haha……最閑暇的幾天,不得不說這六月的酷夏,還未到最炎熱的時刻,就已經(jīng)熱得焦灼,讓人頭...
    來自矮泥房里的光線閱讀 135評論 0 0
  • 文/土豆書生 二零一七 冬至又如約赴宴 餃子上桌了 好香 我全部的簡友 帥哥美女們 要多吃幾枚 更亮 若...
    牧馬天山閱讀 306評論 0 2

友情鏈接更多精彩內(nèi)容