雖然Scrum是為管理軟件開(kāi)發(fā)項(xiàng)目而開(kāi)發(fā)的,它同樣可以用于運(yùn)行軟件維護(hù)團(tuán)隊(duì),或者作為計(jì) " /> 成人美女黄网站,中文成人激情娱乐网,精品国产一区二区三区四区vr

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

Scrum 實(shí)施經(jīng)驗(yàn)

  什么是 Scrum ?

  Scrum是一種迭代式增量軟件開(kāi)發(fā)過(guò)程,通常用于敏捷軟件開(kāi)發(fā)。Scrum在英語(yǔ)的意思是橄欖球里的爭(zhēng)球。
  雖然Scrum是為管理軟件開(kāi)發(fā)項(xiàng)目而開(kāi)發(fā)的,它同樣可以用于運(yùn)行軟件維護(hù)團(tuán)隊(duì),或者作為計(jì)劃管理方法:Scrum of Scrums 。
  相關(guān)線(xiàn)上資料:http://zh.wikipedia.org/wiki/Scrum

  角色

  Scrum定義了許多角色,根據(jù)豬和雞的笑話(huà)分為兩組,豬和雞:

  一天,一頭豬和一只雞在路上散步,雞看了一下豬說(shuō),“嗨,我們合伙開(kāi)一家餐館怎么樣?”,豬回頭看了一下雞說(shuō),“好主意,那你準(zhǔn)備給餐館賣(mài)什么呢?”,雞想了想說(shuō)“餐館賣(mài)火腿和雞蛋怎么樣?”,“我不這么認(rèn)為”,豬說(shuō),“我全身投入,而你只是參與而已”。

  這個(gè)笑話(huà)挺冷的……不過(guò)倒是比較準(zhǔn)確的劃分了項(xiàng)目參與人員。

  豬組

  豬組的成員是在Scrum過(guò)程中全身投入項(xiàng)目的各種角色,他們?cè)陧?xiàng)目中承擔(dān)實(shí)際工作。他們有些像上邊那個(gè)笑話(huà)里的豬,要把自己身上的肉貢獻(xiàn)出來(lái)。

  • 產(chǎn)品負(fù)責(zé)人
    產(chǎn)品負(fù)責(zé)人代表了客戶(hù)的意愿。這保證了Scrum團(tuán)隊(duì)在做從業(yè)務(wù)角度來(lái)說(shuō)正確的事情。產(chǎn)品負(fù)責(zé)人編寫(xiě)用戶(hù)故事,排出優(yōu)先級(jí),并放入產(chǎn)品訂單。
  • Scrum主管(或促進(jìn)者)
    Scrum主管促進(jìn)Scrum過(guò)程,他的主要工作是去除那些影響團(tuán)隊(duì)交付沖刺目標(biāo)的障礙。Scrum主管并非團(tuán)隊(duì)的領(lǐng)導(dǎo)(因?yàn)閳F(tuán)隊(duì)是自我組織的),而是一個(gè)負(fù)責(zé)屏蔽外界對(duì)開(kāi)發(fā)團(tuán)隊(duì)的干擾的角色。Scrum主管確保Scrum過(guò)程被按照初衷使用。Scrum主管是規(guī)則的執(zhí)行者。
  • 開(kāi)發(fā)團(tuán)隊(duì)
    負(fù)責(zé)交付產(chǎn)品的團(tuán)隊(duì)。一個(gè)團(tuán)隊(duì)通常由5至9名具有跨職能技能的人(設(shè)計(jì)者,開(kāi)發(fā)者等)組成,承擔(dān)實(shí)際的開(kāi)發(fā)工作。

   雞組

  雞組的成員并不是實(shí)際Scrum過(guò)程的一部分,但是必須考慮他們。敏捷方法的一個(gè)重要方面是使得用戶(hù)和利益相關(guān)者參與到過(guò)程中的時(shí)間。參與每一個(gè)沖刺的評(píng)審和計(jì)劃,并提供反饋對(duì)于這些人來(lái)說(shuō)是非常重要的。

  • 用戶(hù)
    軟件是為了人而開(kāi)發(fā)的。有人說(shuō),“假如森林里有一棵樹(shù)倒下了,但沒(méi)有被人聽(tīng)到,那么它算是發(fā)出了聲音嗎?”同樣地,人們可以說(shuō),“假如軟件沒(méi)有被使用,那么它算是被開(kāi)發(fā)出來(lái)了么?”
  • 利益相關(guān)者(客戶(hù),提供商)
    影響項(xiàng)目成功的人,但只直接參與沖刺評(píng)審過(guò)程。
  • 經(jīng)理
    為產(chǎn)品開(kāi)發(fā)團(tuán)體搭建環(huán)境的人。

  經(jīng)驗(yàn):

  1. Scrum主管開(kāi)發(fā)的時(shí)間可能不會(huì)很多,一般來(lái)說(shuō)也不適合參與開(kāi)發(fā),因?yàn)榕沤馔獠扛蓴_,解決項(xiàng)目組障礙都會(huì)花去很多零碎時(shí)間進(jìn)行溝通以及其他事務(wù),都會(huì)干擾個(gè)人的正常開(kāi)發(fā)。
  2. 建議不要讓開(kāi)發(fā)主力擔(dān)任Scrum主管,應(yīng)當(dāng)由擅長(zhǎng)溝通,有較深技術(shù)底蘊(yùn),對(duì)產(chǎn)品比較熟悉或者理解深刻的人員擔(dān)任。
  3. Scrum主管與開(kāi)發(fā)人員是平級(jí)的,身份對(duì)等,所做的工作更有點(diǎn)偏向于服務(wù)形式。其本身基本上可以看做是一個(gè)“人形文檔”,項(xiàng)目執(zhí)行中任何需要產(chǎn)品文檔的地方,比如咨詢(xún),需求變更,新成員培訓(xùn)等等都由Scrum主管負(fù)責(zé)。
  4. 對(duì)一個(gè)項(xiàng)目來(lái)講,Scrum主管非常重要,其他成員可以變更,但絕對(duì)要避免Scrum主管的變更。Scrum主管的責(zé)任也很龐雜,需要擅長(zhǎng)處理并發(fā)事件的人來(lái)?yè)?dān)當(dāng)此角色。
  5. Scrum的效率核心就是“排除干擾”,開(kāi)發(fā)人員可以為一個(gè)項(xiàng)目全力以赴。Scrum主管對(duì)干擾的排除能力直接決定了項(xiàng)目執(zhí)行效率。
  6. 所有的分歧交由Scrum主管來(lái)敲定,因此其技術(shù)能力與現(xiàn)實(shí)業(yè)務(wù)解決能力不能忽視,應(yīng)當(dāng)從開(kāi)發(fā)人員中抽取人員負(fù)責(zé)此工作。考慮到離開(kāi)開(kāi)發(fā)崗位一段時(shí)間,技術(shù)能力會(huì)有所退化,建議輪崗。

  會(huì)議

  在沖刺中,每一天都會(huì)舉行項(xiàng)目狀況會(huì)議,被稱(chēng)為“scrum”或“每日站立會(huì)議”。每日站立會(huì)議有一些具體的指導(dǎo)原則:

  • 會(huì)議準(zhǔn)時(shí)開(kāi)始。對(duì)于遲到者團(tuán)隊(duì)常常會(huì)制定懲罰措施(例如罰款,做俯臥撐,在脖子上掛橡膠雞玩具)
  • 歡迎所有人參加,但只有”豬”可以發(fā)言。
  • 不論團(tuán)隊(duì)規(guī)模大小,會(huì)議被限制在15分鐘。
  • 所有出席者都應(yīng)站立。(有助于保持會(huì)議簡(jiǎn)短)
  • 會(huì)議應(yīng)在固定地點(diǎn)和每天的同一時(shí)間舉行。

  假設(shè)會(huì)議定在每天下午下班前,在會(huì)議上,每個(gè)團(tuán)隊(duì)成員需要回答三個(gè)問(wèn)題:

  1. 今天你完成了那些工作?
  2. 明天你打算做什么?
  3. 完成你的目標(biāo)是否存在什么障礙?(Scrum主管需要記下這些障礙)

  每一個(gè)沖刺完成后,都會(huì)舉行一次沖刺回顧會(huì)議,在會(huì)議上所有團(tuán)隊(duì)成員都要反思這個(gè)沖刺。舉行沖刺回顧會(huì)議是為了進(jìn)行持續(xù)過(guò)程改進(jìn)。

  會(huì)議的時(shí)間限制在4小時(shí)。

  經(jīng)驗(yàn):

  1. Scrum會(huì)議的核心是:不要太長(zhǎng)!應(yīng)當(dāng)盡量避免任何可能導(dǎo)致會(huì)議延長(zhǎng)的事情。
  2. 項(xiàng)目開(kāi)發(fā)開(kāi)始前的會(huì)議不要過(guò)長(zhǎng),主要確定方向,任務(wù)與最關(guān)鍵的技術(shù)細(xì)節(jié)。應(yīng)提供一個(gè)技術(shù)預(yù)備期供大家分享要使用的技術(shù)知識(shí)或者制定開(kāi)發(fā)規(guī)范。
  3. 項(xiàng)目開(kāi)發(fā)正式開(kāi)始前,必須達(dá)成必要的開(kāi)發(fā)共識(shí),必須完成基本的開(kāi)發(fā)約定。每個(gè)人并不是只維護(hù)自己的代碼。
  4. Scrum會(huì)議的督促作用非常明顯,但也會(huì)給成員帶來(lái)相當(dāng)?shù)膲毫ΑT谛掳鏁?huì)員中心開(kāi)發(fā)過(guò)程中,曾發(fā)生成員開(kāi)發(fā)壓力過(guò)高而離職的事件。Scrum主管有必要注意排解成員壓力。

  下面幾點(diǎn)有助于降低成員壓力:

  1. 讓開(kāi)發(fā)人員領(lǐng)取自己喜歡和擅長(zhǎng)的任務(wù)。
  2. 項(xiàng)目開(kāi)始前充分預(yù)估時(shí)間,務(wù)必實(shí)事求是,并考慮到成員的開(kāi)發(fā)能力。
  3. 開(kāi)發(fā)前(或者日常)最好能進(jìn)行幾次技術(shù)培訓(xùn),避免成員在開(kāi)發(fā)中遇到不熟悉的技術(shù)。

  沖刺訂單

  • 沖刺訂單(sprint backlog)是大大細(xì)化了的文檔,包含團(tuán)隊(duì)如何實(shí)現(xiàn)下一個(gè)沖刺的需求的信息。
  • 任務(wù)被分解為以小時(shí)為單位,沒(méi)有任務(wù)可以超過(guò)16個(gè)小時(shí)。
  • 如果一個(gè)任務(wù)超過(guò)16個(gè)小時(shí),那么它就應(yīng)該被進(jìn)一步分解。
  • 沖刺訂單上的任務(wù)不會(huì)被分派,而是由團(tuán)隊(duì)成員簽名認(rèn)領(lǐng)他們喜愛(ài)的任務(wù)。
  • 一個(gè)任務(wù)分為todo ,開(kāi)發(fā)中,自測(cè),提交測(cè)試,完成幾個(gè)階段。

  經(jīng)驗(yàn):
  WEBIM項(xiàng)目實(shí)施白板:
  左邊的用戶(hù)故事,實(shí)際上是對(duì)沖刺訂單的分類(lèi)。

  訂單一開(kāi)始都在 todo 的下面,每個(gè)開(kāi)發(fā)人員到實(shí)施白板前,審核還有那些訂單在todo當(dāng)中,從中選擇自己喜歡或者相對(duì)擅長(zhǎng)的訂單,寫(xiě)上自己的名字,放在開(kāi)發(fā)中,然后回去開(kāi)發(fā)相應(yīng)組件。

  當(dāng)組件基本開(kāi)發(fā)完畢,就將訂單放在自測(cè)欄下面。

  如果準(zhǔn)備將該組件提交測(cè)試,就將訂單放在測(cè)試欄下面。

  如果組件通過(guò)測(cè)試,就放在完成欄下面。這樣一個(gè)組件就走完了整個(gè)開(kāi)發(fā)流程。

  實(shí)際開(kāi)發(fā)中發(fā)現(xiàn),由于測(cè)試實(shí)際上是在所有組件都完成開(kāi)發(fā)后才執(zhí)行的,所以訂單放到自測(cè)階段就基本上可以視為開(kāi)發(fā)完畢,開(kāi)發(fā)人員就應(yīng)該去領(lǐng)新的訂單了。

  WEBIM項(xiàng)目中訂單用便簽實(shí)現(xiàn):
  WEBIM開(kāi)發(fā)中,每個(gè)訂單對(duì)應(yīng)的是一個(gè)開(kāi)發(fā)組件,標(biāo)記了組件名稱(chēng),類(lèi)別,開(kāi)發(fā)人員,預(yù)估時(shí)間。對(duì)應(yīng)開(kāi)發(fā)組件模型如下:

NameEvents
Extends 
Property_$events
MethodsaddEvent
removeEvent
addEvents
removeEvents
fireEvent
SP0.25

  Name為組件名稱(chēng),也是開(kāi)發(fā)時(shí)的小文件名稱(chēng)。
  Extends 為該組件繼承自哪一個(gè)組件。
  Property 為組件應(yīng)當(dāng)具有的屬性。
  Methods 為組件應(yīng)當(dāng)具有的方法。
  SP 為開(kāi)發(fā)該組件可能的耗時(shí)。1SP表示1個(gè)工作日(單個(gè)成員8個(gè)工作時(shí))

  項(xiàng)目開(kāi)始前的集中會(huì)議非常重要,需要所有開(kāi)發(fā)成員集中在一起執(zhí)行。
  應(yīng)當(dāng)集群體之力一起分析項(xiàng)目,拆解組件,但注意非關(guān)鍵性的細(xì)節(jié)不要過(guò)分追究,避免會(huì)議耗時(shí)。
  應(yīng)當(dāng)有一個(gè)文檔保存所有畫(huà)出的組件模型。

  燃盡圖

  燃盡圖可以非常形象的表現(xiàn)項(xiàng)目執(zhí)行進(jìn)度。
  以下圖舉例:
  X軸原點(diǎn)為項(xiàng)目開(kāi)始日期,末端為項(xiàng)目結(jié)束日期。每天為一格。
  Y軸為預(yù)估的工作時(shí)。

  • 在項(xiàng)目準(zhǔn)備會(huì)議結(jié)束時(shí),沖刺訂單已經(jīng)預(yù)備好,就可以統(tǒng)計(jì)出預(yù)估的總工作時(shí),將其標(biāo)在Y軸頂部。
  • 每天檢查實(shí)施白板,確認(rèn)哪些訂單已經(jīng)完成,然后計(jì)算剩下的總工作時(shí),然后在圖上標(biāo)記一個(gè)點(diǎn),點(diǎn)的X位置為第二天的日期,Y位置為剩下的總工作時(shí)。
  • 在起點(diǎn)坐標(biāo)(X為開(kāi)始日期,Y為總時(shí)間)和終點(diǎn)坐標(biāo)(X為結(jié)束日期,Y為0)之間畫(huà)一條直線(xiàn),這就是理想狀況下的項(xiàng)目完成進(jìn)度曲線(xiàn)。
  • 在項(xiàng)目執(zhí)行中,發(fā)現(xiàn)曲線(xiàn)高于理想曲線(xiàn),說(shuō)明項(xiàng)目有可能延期,需要增派援手,或者催促成員加快進(jìn)度。如果曲線(xiàn)低于理想曲線(xiàn),說(shuō)明項(xiàng)目有可能提前完成。

  經(jīng)驗(yàn):
  先看一下WEBIM項(xiàng)目的燃盡圖:
  不可思議的是曲線(xiàn)一開(kāi)始居然還有個(gè)增高。這說(shuō)明一開(kāi)始時(shí)間預(yù)估就不完善,開(kāi)發(fā)中增加了預(yù)估時(shí)間。

  一開(kāi)始認(rèn)為訂單放到完成,才能從工作時(shí)中減去時(shí)間,但由于測(cè)試實(shí)際上是在所有組件開(kāi)發(fā)完成后,所以當(dāng)訂單放在自測(cè),就從工作時(shí)中減去時(shí)間。

  這個(gè)圖后期并沒(méi)有完成。實(shí)際上是因?yàn)轫?xiàng)目組件提前在12日都開(kāi)發(fā)完成,但是新的問(wèn)題出現(xiàn):組件完成后還有一個(gè)聯(lián)調(diào)的時(shí)間,未被預(yù)估在內(nèi)。還好最終還是保證了項(xiàng)目按期聯(lián)調(diào)完畢。

  燃盡圖后期的陡峭往往說(shuō)明了任務(wù)分割與時(shí)間估算的不完善。但是有時(shí)這不可避免,可以考慮用完成度百分比乘以工作任務(wù),或者將任務(wù)分階段(將預(yù)備階段,開(kāi)發(fā)階段與測(cè)試階段分開(kāi))來(lái)平緩燃盡圖曲線(xiàn),達(dá)到更細(xì)致描繪工作進(jìn)度的目的。

  可以考慮聯(lián)調(diào)前的訂單被開(kāi)發(fā)完成了70%,聯(lián)調(diào)完畢才標(biāo)記為100%,然后從總工作時(shí)中減去剩下百分比的時(shí)間。

  一開(kāi)始預(yù)估完總工作時(shí)間后,應(yīng)當(dāng)乘以一個(gè)系數(shù)(大于1,從未預(yù)估過(guò)時(shí)間,建議這個(gè)系數(shù)接近甚至大于2,否則建議為1.5)。以這個(gè)時(shí)間為總工作時(shí)間,以應(yīng)付項(xiàng)目執(zhí)行中可能遇到的突發(fā)事件。

  總結(jié)

  Scrum 效率相當(dāng)明顯,執(zhí)行過(guò)程中可以使成員中開(kāi)發(fā)速度緩慢的地方被迅速暴露出來(lái),使得項(xiàng)目中可能存在的問(wèn)題被極早暴露,以便進(jìn)行針對(duì)性的解決。

  開(kāi)發(fā)中要求成員有充分的自發(fā)性,自己如果能提前完成訂單,應(yīng)當(dāng)負(fù)責(zé)起其他訂單的開(kāi)發(fā)任務(wù),減輕項(xiàng)目整體的開(kāi)發(fā)負(fù)擔(dān)。

  一開(kāi)始的溝通會(huì)議非常重要,必須當(dāng)面進(jìn)行溝通會(huì)議,不可以有缺席。以保證每個(gè)成員對(duì)項(xiàng)目的細(xì)節(jié)都有所了解,可以負(fù)責(zé)任意一個(gè)組件的開(kāi)發(fā)。

  Scrum不僅僅用于軟件開(kāi)發(fā),它是一種計(jì)劃管理方式,適用于被限制時(shí)間,需要多人協(xié)作的團(tuán)隊(duì)項(xiàng)目。

it知識(shí)庫(kù)Scrum 實(shí)施經(jīng)驗(yàn),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 遂溪县| 文成县| 中牟县| 城口县| 万山特区| 宜良县| 安西县| 通州区| 黄骅市| 义马市| 盐津县| 衡阳市| 建平县| 邛崃市| 泰和县| 北票市| 渝中区| 仙游县| 萨嘎县| 东台市| 南阳市| 江安县| 子长县| 丹凤县| 册亨县| 台山市| 安顺市| 博白县| 乐昌市| 锡林浩特市| 恩平市| 明水县| 清涧县| 叙永县| 宝应县| 金乡县| 宁强县| 牙克石市| 大姚县| 北安市| 宁阳县|