Scrum是一種靈活的軟件管理過程,它可以幫助你駕馭迭代,遞增的軟件開發過程。這個輕量的過程可以作為包裝器,也就是說你可以把Scrum與其它靈活的過程框架組合起來,比如說RUP。
RUP(Rational Unified Process,Rational 統一過程),是一種被廣泛使用的軟件過程框架。它可以很好地迎合你的軟件開發過程的需要,還可以容納其他技術。Scrum是一系列有趣的,用來包裝靈活軟件項目的項目管理模式。
Scrum提供了一種經驗方法,它使得團隊成員能夠獨立地,集中地在創造性的環境下工作。它發現了軟件工程的社會意義。這一過程是迅速,有適應性,自組織的,它代表了從順序開發過程以來的重大變化。Scrum認為軟件的開發不應使用和一般制造業相同的方法,也就是不應采用一種反復的模式。這種重復使得輸入和輸出參數更加容易預測和描述,但這并不是當今軟件工程的有益目標。現代軟件工程的主要挑戰包括上市時間,投資回報,以及影響顧客的需要等。RUP和其他敏捷軟件工程過程能夠很好地迎接這些挑戰。
Scrum區別于其他開發過程之處是什么?最顯而易見的不同將是每天的短會,通常在每天的同一時間在同一個房間內舉行。這個會議也叫Scrum,在會議中每個團隊成員僅就以下三點發言:
自上次Scrum會議后你做了什么?
從現在到下次Scrum會議的時間里你準備做什么?
你在工作中遇到了哪些困難?
Scrum團隊的組成
由于一個Scrum團隊最多由7人組成,會議應當不超過15分鐘。Scrum管理者*主持會議,并且對整個項目的成敗負責。他傾聽每個成員的發言并設法解決會議中提到的各種障礙。Scrum管理者在會上對障礙提出即時的解決方案或指導,使團隊不斷向著目標前進。Scrum會議不同于項目會議,對團隊來說,它起到了快速簡報的作用。如果問題得不到解決,團隊成員應向Scrum管理者或大項目成員提出質疑。
只有團隊成員可以在Scrum會議上發言,但是允許有旁聽者。對于人數多于7人的項目團隊,Scrum建議與其擴大團隊規模不如將團隊分組。分組可依據功能,結構主體,或者應用,包括子應用等進行。分組后各個子團隊就可以并行工作了,而且Scrum管理者可以通過Scrum會議對各個子團隊的工作進行同步。Scrum甚至可以兼顧在其他地方工作的團隊成員。
Scrum團隊不止是一個程序員隊伍,它由各種背景下的不同角色組合而成,包括商業分析者,設計師,程序員和測試者等等。更多時候,成員可以身兼多職;正確的組合決定了團隊的能力和效率。
項目規劃
Scrum的迭代過程被稱為“疾跑”,時間為30天。在RUP中,迭代過程通常在2至6周之間,每次“疾跑”都以獲得可執行可測試的代碼為結束。
產品擁有者持有產品訂單,他控制并區分功能的開發次序,但是工作量的評估是由Scrum團隊來完成的。產品風險的所有承擔者,包括Scrum團隊和產品所有者,共同檢視訂單,然后根據優先級次序決定先開發哪一功能。除去優先級,RUP的迭代規劃過程也是基于風險的。
現在團隊定義的“疾跑”目標已經成為了進展控制的指導。“疾跑”過程一旦開始,團隊全部與外界的交流都必須經由Scrum管理者進行。Scrum管理者務必保證團隊能夠專心于既定目標而不受外界干擾。
Scrum團隊持有自己的“疾跑”訂單,上面記錄了更多關于待實現目標的具體任務的細節。在團隊對“疾跑”的作用有更多了解以后,團隊成員就可以調整原始的產品評估,并將“疾跑”過程中獲得的信息加入到產品訂單中。這些做法對Scrum進度回溯都是有益的。
Scrum團隊由每天的Scrum會議,每月的“疾跑”計劃和“疾跑”審查會議緊密相連,鑒于此,整個組織必然存在一種縱向的透明度。這就使得組織上的問題和挑戰清晰明顯。由于團隊成員都親自觀察整個項目,交流也就變得簡短,迅速和有效。團隊是自組織的,著眼于“疾跑”的目標,這樣就最大限度發揮了每一個團隊成員的作用。Scrum管理者充當一個問題和交流的“票據交換所”,而不是一個控制整個團隊的老板。
“疾跑”審查會議持續半天。在會上,團隊向項目的風險承擔者展示完成的功能模塊。團隊按照既定的“疾跑”目標來演示完成的內容。
訂單,“疾跑”計劃和回顧,管理承諾,每日Scrum會議,進度回溯,以及其他Scrum技術都是基于主要用于軟件項目管理的進程模式的。這些模式在過去的大小項目和不同商業領域中都獲得了成功。
http://www.cnblogs.com/epjnpe/archive/2006/06/30/440034.html