Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scrum&ALM Introduction(DST Systems)

Scrum&ALM Introduction(DST Systems)

國立虎尾科技大學資訊管理系 - 管理資訊系統個案簡報
簡報人 : 任家輝(BlueRen)

Bleu (Jia-Huei Ren)

December 04, 2013
Tweet

More Decks by Bleu (Jia-Huei Ren)

Other Decks in Education

Transcript

  1. 公司簡介 • 公司類型 : 上市公司 • 創立時間 : 1969年 •

    總部位置 : 美國密蘇里州堪薩斯城 • 關鍵人物 : Steve Hooley (CEO) • 網站 : www.dstsystems.com
  2. 比較 過去 • 使用傳統瀑布型開發方法 • 各團隊間不同的開發工具 • 流程尚未擬訂統一標準 • 分工不透明

    • 無法斷定特定資產的狀態 現在 • 使用Scrum敏捷型開發方法 • 統一開發工具 • 使用統一開發環境的ALM產 品 • 進度透明化 • 能快速獲得客戶回應
  3. Scrum核心元素 • Scrum 敏捷開發是個簡單的框架 ( framework ),核心元素包含有: 3種角色、4種會議、3項產出 – 3種角色:Scrum教練(Scrum

    Master)、產品負責人( Product Owner ) 和團隊 ( Team )。 – 4個會議:衝刺規畫會議 ( Sprint Planning Meeting )、每日站立會議 ( Daily Scrum )、衝刺審查會議 ( Sprint Review Meeting ) 以及衝 刺回顧會議 ( Sprint Retrospective )。 – 3項產出:產品清單 ( Product Backlog )、衝刺清單 ( Sprint Backlog ) 和燃盡圖 ( Burndown Chart )。
  4. Scrum開發時程 • 其主要概念就是將開發時程切割成較少的跌代 ( iterations ) ,這些跌代的名字在 Scrum 的術語裡叫做衝 刺

    ( Sprint ) 。在每一次衝刺(一個15到30天的周期,其長 度由開發團隊決定)當中,開發團隊會建立一個可用的(可以 隨時推出)軟體的一個增量。每一個衝刺所要實現的功能來自 產品清單 ( Product Backlog )。
  5. Scrum中的角色(續) 雞組 • 雞,並不是實際Scrum過程 的一部分,但是必須考慮 他們。 敏捷 方法的一個 重要方面是使得用戶和利 益相關者參與到過程中的

    實踐。參與每一個衝刺的 評審和計劃,並提供反饋 對於這些人來說是非常重 要的。 豬組 • 豬,是在Scrum過程中全身 投入專案的各種角色,他 們在專案中承擔實際工作。 他們有些像上邊那個笑話 里的豬,要把自己身上的 肉貢獻出來。
  6. 實踐原則 • 以下是一些Scrum的通用實踐: • 客戶成為開發團隊中的一部分。(例如客戶肯定對開發的結果真正感興趣。) • 和所有其他形式的敏捷軟體過程一樣,Scrum有頻繁的包含可以工作的功能的 中間可交付成果。這使得客戶可以更早的得到可以工作的軟體,同時使得項 目可以變更項目需求以適應不斷變化的需求。 •

    頻繁的風險和緩解計劃是由開發團隊自己制定。– 在每一個階段根據承諾進 行風險緩解,監測和管理(風險分析)。 • 計劃和模塊開發的透明 – 讓每一個人知道誰負責什麼,以及什麼時候完成。 • 頻繁的利益所有人會議,以跟蹤項目進展 – 平衡的(發布,客戶,員工, 過程)儀錶板更新 – 利益所有者更新 – 你必須擁有預警機制,例如提前 了解可能的延遲或偏差。 • 沒有問題會被藏在地毯下。認識到或說出任何沒有預見到的問題並不會受到 懲罰。 • 在工作場所和工作時間內必須全身心投入。– 完成更多的工作並不意味著需 要工作更長時間。
  7. 優缺分析 優點 缺點 Scrum開發方法 • 高效率 • 彈性 • 快速對變化做回應

    • 進度透明化 • 低風險與失敗率 • 提升客戶滿意度 • 架構簡單、容易上手 • 降低整體成本、快速回收投資 • 強化關係、增進團隊合作默契 • 僅給予管理上的建議。缺 少開發人員技術上的建言 • 過度強調團隊自我管理, 缺乏管理團隊適時輔助。 • 客戶隨意要求變更,增加 團隊負擔 瀑布型開發方法 • 階段劃分明確,每個流程都必 須經過確認、驗證或測試的機 制。 • 成本及資源需求估計不準 確 • 開發時程長、高風險 • 不能迅速反應需求改變 • 無法提早獲得使用者的測 試
  8. 舉例比較 瀑布型開發 • 為了控管進度,專案經理 先把畫這幅畫像的工作切 成九等份,然後交給開發 人員開始施工。 • 等好不容易整合好,系統 可以執行了,一拿給客戶

    看就被打槍說:「這不是 我們要的功能,拿回去重 做」 Scrum開發 • 假設鄉民們必須要在三個 禮拜之內把蒙娜麗莎畫像 給畫好,在此我們選擇一 週為一個疊代。所以到第 三個疊代的時候必須要交 貨。 • 線條草圖→低解析度圖樣 →清楚圖樣
  9. ALM核心元素 • 系統分析:需求管理、系統分析工具 • 系統設計:模組架構設計、介面設計、整合設計等模型設計工 具 • 程式設計:開發工具、偵錯工具、使用者介面設計工具... • 測試:單元測試、負載測試、性能測試、自動測試...

    • 發行:部屬工具,一般我們又會分為測試環境與生產環境 • 控制:原始碼控制、版本控制、流程控制、文件控制... • 一個完整的開發週期,應該要進行前述幾項程序,而一套完整 的ALM更應該將整個程序給串起來,每個步驟產出的內容應該是 對下個步驟有意義的。
  10. 影片與簡報分享 Scrum • NEW Intro to Agile Scrum in Under

    10 Minutes - What is Scrum? • 沒有 Visual Studio 2012 到不了的地方 - Scrum 敏捷開發! • 矽谷敏捷軟體開發 • ALM • ALM Everywhere
  11. 個案研究問題 • DST Systems舊有的軟體開發環境有哪些問題? • 不同的開發工具造成的適應不良、開發時程長造成無法 提早測試、管理者無法決定資源如何分配或斷定資產的 狀態。 • Scrum開發方法如何協助解決那些問題中的一部分

    • 縮短開發時程,讓產品能夠提早上線測試。(軟體開發 週期由24個月→6個月)、開發工程師生產力提升20% • DST還做了哪些調整,能夠在軟體專案中更有效率地運 用Scrum? 處理了哪些管理、組織與技術面的問題? • 改善流程問題、統一開發平台(引進CollabNet的協同作 業工具)
  12. 參考文獻 • 《系統分析與設計–理論與實務應用》三版,吳仁和、林信惠 著,智勝出版社 • 搞笑談軟工:Scrum, teddy-chen, teddysoft • 軟體團隊多大才需要ALM工具?

    - bdablog • Scrum/Agile Failings or the Theses of Uncle Bob Martin - Mark Levison • Scrum / Agile's inherit shortcomings? - Chris Brookins • Agile Software Development: Principles, Patterns, and Practices - Robert C. Martin, Prentice Hall, 2002 • The New New Product Development Game - Takeuchi and Nonaka, Harvard Business Review, Jan-Feb 1986 • Peter DeGrace, Leslie Hulet Stahl, Wicked problems - righteous solutions, 1990, ISBN 0-13-590126-X • AGILE DEVELOPMENT: LESSONS LEARNED FROM THE FIRST SCRUM - Jeff Sutherland, 2004 • (PDF) Rising, L., Janoff, N.S. (2000). The Scrum Software Development Process for Small Teams Retrieved March 15,2007 • (PDF) Schwaber, K. Advanced Development Methods. SCRUM Development Process Retrieved August 15,2006 • (video) Jeff Sutherland in Scrum Tuning: Lessons learned from Scrum implementation at Google Retrieved 2007-12-15 • (video) Ken Schwaber in Scrum et al. Retrieved 2008-01-19