敏捷開發 Scrum與精益相得益彰

2021-08-23 13:59:52 字數 2503 閱讀 3284

摘要:   瀑布模型是軟體工程中最初的經典模型。這種方法對於那些在初期需求就很完整清晰,並且在開發過程中不會有太多變化的專案非常適用。但是,大多數情況下在 軟體開發過程中需求會不斷變化,而瀑布式開發很難適應這種變化。針對瀑布模型的這一不足,隨後湧現了許多開發模式,比如螺旋模型和統一過程開發(rup) 模型。儘管與瀑布模型相比,這兩種模型有了很大改進,但它們應用起來依然顯得比較沉重,無法適應快速的需求變化。這正是以scrum為代表的敏捷開發方法 所力**決的核心問題之一。

瀑布模型是軟體工程中最初的經典模型。這種方法對於那些在初期需求就很完整清晰,並且在開發過程中不會有太多變化的專案非常適用。但是,大多數情況 下在軟體開發過程中需求會不斷變化,而瀑布式開發很難適應這種變化。針對瀑布模型的這一不足,隨後湧現了許多開發模式,比如螺旋模型和統一過程開發 (rup)模型。儘管與瀑布模型相比,這兩種模型有了很大改進,但它們應用起來依然顯得比較沉重,無法適應快速的需求變化。這正是以scrum為代表的敏捷開發方法所力**決的核心問題之一。

快速迭代以響應需求的變化

scrum採用時間更短的迭代週期,這種迭代週期稱為sprint。乙個sprint通常為2~4周。每個sprint只開發價值最高 的產品需求部分,並且每個sprint週期可能包含全部的開發階段,如需求分析、設計、編寫**、測試、整合以及產品部署。每個短暫的sprint週期過 後,都能產生乙個可以被審查、展示且可被使用者使用的軟體。使用者使用後的反饋和當前的需求變化整理後可以在以後的sprint週期中得以實現。這樣就產生了 乙個快速的反饋迴圈,它可以動態管理實現使用者頻繁的需求變化。scrum提倡讓客戶全程參與到開發過程中。客戶的高度參與能有效提高scrum專案的成功 率。客戶的代表需要平衡專案利益相關者之間的利益,從而能夠管理產品需求、調整需求的優先順序、 完善需求描述,讓開發團隊有乙個清晰的方向,以獲得最大的投資回報率。與此同時,scrum這一模式也涉及諸如團隊、流程、溝通等其他方面的元素,這些元 素共同發展規範了整個scrum框架結構。

像其他敏捷方法一樣,scrum同樣專注於管理需求變化和團隊潛能的發揮,同時它提出了一套比較完整的短開發周期的操作規程。而精 益則更多地提供一種思維模式,幫助形成具有精益思維和習慣的開發團隊。將scrum的框架與精益的思想結合起來,可以使它們互相補充形成我們前面提到的一 個相對完整並能不斷完善的敏捷開發體系。我們在一些專案中嘗試實現了這種結合。在我們的敏捷協作平台gscrum上,一種稱為wip的特殊週期把 scrum的框架和精益開發中的拉式系統很好地結合了起來,可以適應更快的需求變化。

scrum的三種角色和四個會議

scrum框架主要包括三種角色和四個會議。其中三種角色有:

● 產品擁有者: 該角色負責產品的遠景規劃,平衡各方面的利益,確定不同的產品需求積壓的優先順序等。它是開發團隊和客戶或終端使用者之間的聯絡點。

● scrum專家: scrum專家負責指導開發團隊進行scrum開發與實踐。它也是開發團隊與產品擁有者之間交流的聯絡點。

● 團隊成員: 即專案開發人員。

四個會議包括:

● 週期計畫會: 在產品擁有者和團隊之間對下個週期要完成的需求達成一致,並對其進行規劃.

● 每天例會: 每天15分鐘,團隊成員之間互相交流進展、問題和下一步計畫。

● 週期展示會: 向產品擁有者和相關人員展示新完成的需求並收集反饋意見。

● 週期回顧會: 總結上個週期的經驗和教訓。

把精益思想融入scrum

scrum、精益開發模式以及其他的敏捷方法與傳統的軟體工程或專案管理理論與實踐相比有乙個共同的優點: 簡單。不過,在實際運用過程卻也並不容易。

首先,變化對許多人來說是難以接受的。初次使用敏捷開發的團隊都有乙個從接受到真正應用的過程。一些敏捷開發實踐如測試驅動開發、結對 程式設計以及每天的scrum會議都需要一段時間讓開發團隊逐漸適應。因此,公司領導的強力支援和對團隊的培訓,是讓敏捷模式給乙個公司真正帶來回報的重要因 素。

其次,在scrum實踐中,scrum專家(scrum master)是乙個核心的角色。該角色從字面上很容易被理解為乙個在scrum開發團隊中擁有極高權力,同時管理所有成員的人。實際上,這個角色並未被賦予行政職權,但他必須擁有很強的軟力量及社交技巧。根據我們的實踐經驗,scrum專家需要理解團隊中的每個成員,將所有人團結起來。同時,scrum專家還必須在團隊效率與開發人員的感受之間取得平衡。

對於採用scrum方法的團隊,還可能遭遇許多技術性的問題。敏捷開發團 隊的一大挑戰是如何能夠不斷改進開發過程。剛開始,敏捷開發對於整個開發團隊來說可能還是比較新鮮的。但是開發團隊很快就會對敏捷方式,特別是每天的 scrum會議感到乏味。一旦感到乏味並開始鬆懈,開發團隊要麼會放棄敏捷模式回到原有的開發模式上,要麼會停留在對敏捷開發的膚淺應用層次上。這樣一 來,團隊的積極性和創造性會受到打擊,停滯不前。此時,結合精益開發方法能有效解決這個問題。

精益模式提倡持續不斷地改進、減少流程中的浪費。這個概念應該被注入到整個團隊中,讓團隊形成精益的思維和長期的習慣,這樣一來,不斷的改進和提高會讓團隊保持高昂的士氣和熱情。運用精益開發模式相對比較抽象,而最佳的應用精益軟體開發的途徑是從簡單入手,理解其思想,然後針對團隊情況摸索創新,應用一些精益的有效工具,讓整個團隊習慣精益的思維模式和行為。當然,請有相關經驗的專家或顧問指導、交流會事半功倍。

精益與敏捷開發(隨筆)

在幾年前,我就對軟體的敏捷開發有著很高的興趣的。一直覺得,程式設計師應該是最自由,最輕鬆的一種職業!而且我也一直在向這個方向努力!我們應該如何做呢?一說到程式設計師,大家就公認的是腦力民工!為什麼?在程式設計師自己報怨開發環境不好,工作量大,任務重,壓力大的同時,有沒有想過,有些問題其實是程式設計師...

05精益敏捷專案管理 超越Scrum

00.我們不是不知道它會給我們帶來麻煩,只是沒想到麻煩會有這麼多。威爾.羅傑斯 01.知識點 a.scrum是乙個強大 特意設計的輕量級框架,器特性就是將軟體開發中在製品的數量限制在團隊層級,使團隊有能力與業務落班一起有效地開展工作。b.正確執行scrum專案,提示執行中遇到的障礙,使組織可以針對專...

ScruM與精益(Lean) 軟體開發及應用

scrum在眾多的敏捷方法中更多地提供的是乙個框架,而精益 lean 開發則更多地提供了一種思想。二者能很好的結合並相得益彰。傳統的軟體工程模型與建築過程極其相似,尤其是瀑布模型。但是,scrum 和精益卻源於製造工業。當他們被引入軟體工業的時候,實際上卻繼承並擴充套件了傳統的軟體工程模型和方法。學...