• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 敏捷軟件開發中的Scrum開發模式

    發表于:2012-11-15來源:Csdn作者:xm18love點擊數: 標簽:SCRUM
    敏捷軟件開發中的Scrum開發模式 名詞解釋 Scrum: Scrum是一種迭代式增量軟件開發過程,

      ——于2012年11月13日整理

      名詞解釋

      Scrum: Scrum是一種迭代式增量軟件開發過程,通常用于敏捷軟件開發。包括了一系列實踐和預定義角色的過程骨架。Scrum中的主要角色包括同項目經理類似的 Scrum主管角色(ScrumMaster)負責維護過程和任務,產品負責人(PO, Product Owner)代表利益所有者,開發團隊(Team)包括了所有開發人員

      一、為什么Scrum是有效的開發組織方式

      (一) 經驗型流程VS預定義型流程

      如果所需實現的對象清晰,技術準備充分,則適用于預定義型流程.如果所需實現的對象模糊,技術準備不充分,則適用于經驗型流程.

      在這里,流程不僅僅是軟件開發中的流程,這是一個廣義的定義,包含各個行業生產中產生的流程.對于預定義型流程,很經典的例子就是造汽車.比如造一輛奧迪 A6,工作人員只需要拿到圖紙,根據圖紙上提供的信息去裁割鋼板,定型,組裝.在預定義型流程下,一輛A6將很快的開下生產線.對于經驗型流程,如果還是以汽車為例的話,那就可以放在如何降低汽車的風阻?如何降低油耗?如何使駕駛人更舒服?這些事情,在以前可能做過,也可能沒有做過,這就需要根據我們以往的經驗去考慮問題,但這里經驗起的作用只是一本字典,更多的事情,需要我們在經驗的基礎上去升華解決.

      對于Scrum,適合的是經驗型流程.在較短的迭代中(2周左右),需要我們快速的整理好PO提出的用戶情景(User Story)(PO提出的需求在這里稱作用戶情景),然后選定技術(這個技術也可能是新技術)進行快速開發.

      (二) 軟件項目中的兩個復雜度

      簡單項目=熟悉的技術+固定的需求;復雜項目=技術不確定+變更.

      試想,在我們以前做過的項目中,有多少是”簡單項目”呢?因此,Scrum在不斷迭代的過程中,屏蔽或者減少了需求的不確定性以及不確定技術帶來的弊端.

      (三) 案例分析

      假如公司希望遷移SharePoint服務器,并和當前流行的社交網站如FaceBook進行集成.

      你覺得會有哪些問題?

      1、 我們有哪些可用的技術?

      2、 如何使用這些技術來實現所需功能?

      3、 對于目標,我們要實現到何種程度?

      4、 最糟糕的,PO并不清楚他需要什么!

      解決方式:

      1、 縮短迭代;

      2、 增加與PO的溝通頻率;

      3、 將技術調研和實現放在不同的迭代中進行。

      (四) 經驗型流程控制

      1、 需要通過檢查和適應來改進流程(需要很好的透明度來支持)

      2、 透明度的實現需要企業文化的支持

      在 Scrum模式中,團隊的規模應控制在5~9人之間,充分發揮每個成員在團隊中的作用。在應用Scrum模式進行開發過程中,需要建立人與人之間的信任, 充分調動團隊成員的積極主動性,也就是注重每個團隊成員在團隊中發揮的作用,而不是下派、監控這種不是以人為本的模式。那么在這種情況下,就需要很好的透明度來支持,要讓團隊成員知道ScrumMaster都和哪些人說了什么,PO提出了新什么需求,面臨著什么新問題,甚至是上級的壓迫也要上團隊成員知道。

      二、計劃質量

      (一) Scrum是否需要計劃?

      無可置疑,在Scrum中,需要更多的計劃。在這里介紹一下戴明環。

      作為幫助我們做出進一步決策的迭代型方法,戴明環通過4 個簡單的步驟來驗證所獲取的經驗,以便幫助我們做出更好的決策。

      (二) 質量和成本的關系

      1、 關注質量將會最終降低成本并提供更好的質量

      2、 關注成本,將會犧牲質量同時遠期成本反而增加

      那么該如何提高質量呢?

      停止使用通過檢查來提高質量的方式,而通過完善的計劃在產品開發的一開始就構建質量。理解起來可能稍微有點難以接受,但是集合上面的兩點并結合戴明環,不難理解,質量應該是一個度,一個高度,一個保證,因為你不能保證你生產的家電永遠不會壞掉。

      (三) 來看Scrum的計劃(Plan)和執行(Do)

      Scrum通過在迭代中不斷的計劃和執行來推進,通過不斷的計劃,不斷的完善計劃,相應的質量也會隨之提高,相比傳統的(計劃——執行——穩定)具有更高的可操作性和可控性。

      三、Scrum”以人為本”的體現

      我們可以來做一個實驗來證明Scrum的優越性。

      情景一:有N個小隊,每個小隊有一個隊長,所有小隊的成員成矩形聚攏在一起(很緊湊),然后每個小隊的隊長給隊員發號施令(在矩形內移動30步,然后移動出矩形)。

      情景二:有N個小隊,沒有隊長,每個小隊的成員成矩形聚攏在一起,然后每個小隊成員在矩形內移動30步,然后移動出矩形。

      四、Scrum角色介紹

      (一) ScrumMaster:

      1.保證Scrum團隊可以遵守Scrum的價值,實踐和規范

      2.幫助Scrum團隊和組織采用Scrum模式進行項目流程組織

      3.指導并帶領團隊變得更加高效,實現更高質量

      4.保護團隊不要受到外界因素的干擾

      5.保證各個不同角色之間的良好寫作,消除障礙

      6.幫助PO更好地利用團隊的能力

      7.不要管理團隊

      給ScrumMaster的一些建議:

      1、協助甄選PO人選,并幫助PO了解其職責; 如果PO不了解 如何很好的利用團對的價值,ScrumMaster需要承擔負責

      2、ScrumMaster 永遠不能同時擔任PO

      3、ScrumMaster 可以由團隊的成員來擔任,但是在這種情況下他將有很重的負擔

      如果打破了第二點,ScrumMaster同時兼任PO,那么就打破了Scrum的價值和規范,因為ScrumMaster+PO=PM。而在Scrum中是沒有PM這個概念存在的。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>