講師: 李智樺 職稱: 架構師 Waveface corp. 崴峰科技

Slides:



Advertisements
Similar presentations
Web Role 的每台虚机运行有 IIS ,用于处理 Web 请求 Worker Role 用于运行后台进程 Cloud Service 是什么? 支持多层架构的应用容器 由多个 Windows 虚拟机集群构成 集群有两种类型: Web 和 Worker Cloud Service 做什么 进行应用的自动化部署.
Advertisements

应用技术 陕西华辉科技有限公司.
泛舆情管理平台 ——助力媒体业务创新 新模式 新格局 创新盈利增长点 2/26/2017 1:59 AM 屈伟: 创始人,总裁
中国银行业前置端操作系统移植研究.
3/3/ :01 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
请点击以下链接下载WinHEC的演讲材料
借助公有云实现游戏的弹性运营 Shaun Fang (方兴) Azure开发技术顾问
Windows Hyper-V与集群共享卷
请点击以下链接下载WinHEC的演讲材料
Eliyas Yakub 首席开发经理 US-Device & Storage
1. 设定愿景,确定业务场景 Microsoft Corporation
广东省广州市花都区教育局教研室 汤少冰 优化评估方式, 促进中学英语的教与学 广东省广州市花都区教育局教研室 汤少冰
張書源 Microsoft MVP MCT 趨勢科技 技術經理 網酷科技 資深顧問 集英信誠 資深顧問
Office 2013 全新功能介紹 台灣微軟 Office 大使 楊承恩 Marcus Microsoft Office
講師姓名:黃信嘉、黃振宇 職稱:微軟技術支援副理 公司名稱:台灣微軟 課程代碼:WCL305
四川省集体林权流转平台 中国西部林权交易网
全国信息技术标准化技术委员会 (SAC/TC28)工作交流
Windows 10 混合现实 Mingfei Yan 高级项目经理
W371 如何使网络设备更好的和Windows Vista工作
MBL 340 Tablet PC SDK:在您的应用程序中使用数字墨水
資料檔案的安全性管理 羅英嘉 2007年4月.
今天很高兴能够利用Web Cast和大家讲解嵌入式XP的新增功能。
什麼是電子軟體下載 Electronic Software Download (ESD).
OFC 302 InfoPath2007新特性及解决方案.
最新 Windows Server 徽标 要求和计划
Windows Mobile 轻松接轨GPS
Microsoft Office SharePoint Server 2007 事件追蹤與專案管理
SOLUTIONACCELERATORS Windows Vista Hardware Assessment 1
MSG 321 统一消息架构和PBX集成.
朝雲端專業DBA邁進: 深入剖析 Windows Azure SQL Database 完整資料庫管理、雲端報表建立、建置分散式雲端資料庫
利用最新Hyper-V Replica 功能達成Hyper-V 災難備援機制
Windows Server 2008 NAP整合802.1x網路安全控管
互聯網安全資訊 助您達至更安全的網上體驗.
服務啟用、導入流程、 郵件移轉步驟簡介 Microsoft Office 12/2/2018
MBL 325 开发跨平台的 Windows Mobile应用程序
MBL 327 Windows Mobile开发中的异构系统集成
Cameron Brodeur Program Manager US-Device & Storage PM
构建 Windows TV Tuner 产业 生态环境的重要观点
微软新一代云计算 面向企业的 Office 365 客户培训大纲
1/2/ :39 PM 讀經 以弗所書 4:31-32 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may.
1/2/ :38 PM 耶利米書 33:1-3 約翰福音 14:12-14 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
使徒行傳 21:17-23章「保羅的見證(一)」 引言 預言保羅為主的名受許多的苦難的實現
2/24/2019 5:40 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Exchange 2007 系統部署 -- 儲存預測與測試
教师课堂教学能力提升培训 ---“互联网+教育”考勤小测验 Plickers 洛阳理工学院
Microsoft SQL Server 2008 報表服務_設計
利用 ASP.NET MVC 提升您的 Web 應用程式


橫跨電腦、手機與軟體的全方位端點管控解決方案
请点击以下链接下载WinHEC的演讲材料
CON223 UDDI:服务的发现和搜索.
呂政周 精誠恆逸教育訓練處 資深講師 Windows PowerShell 呂政周 精誠恆逸教育訓練處 資深講師
使用WPF创建Windows应用和Web应用
水深之處 Launch Out into the Deep
4/30/2019 7:40 AM 約翰福音 15:9;17:20-23 加拉太書 6:1-2 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product.
DEV 343 VS2005超快速开发方案/EEP2006控件包.
5/4/2019 4:42 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
使徒行傳 24-26章 [ 保羅的見證(二)] 徒9:15 “  主 對 亞 拿 尼 亞 說 、 你 只 管 去 . 他 是 我 所 揀 選 的 器 皿 、 要 在 外 邦 人 和 君 王 並 以 色 列 人 面 前 、 宣 揚 我 的 名 。 ”]
TechEd /6/ :36 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Windows 徽标计划工具:综述与发展趋势
5/5/2019 7:06 PM 两跨框架梁截面配筋图的绘制 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may.
顧武雄 台灣微軟特約資深講師 Exchange 2007 管理工具活用秘訣 Entry Slide
百万亿次超级计算机诞生记 姓名 Xiangyu Ye 职务 微软中国技术中心资深HPC顾问 公司 微软中国
5/15/2019 姓名: 公司名称: 云赛空间BP模板 Now let’s take a look at who we are, what we’re doing and why we’re doing it in China... This is an image of a technology.
DEV 343 VS2005超快速开发方案/EEP2006控件包.
MGT 213 System Management Server的昨天,今天和明天
Bob Combs Lead Program Manager Microsoft Corporation
Ron Jacobs 高级技术专员 Microsoft
Windows Workflow Foundation CON 230
Presentation transcript:

講師: 李智樺 職稱: 架構師 Waveface corp. 崴峰科技 AAP301 研發主管的管理實踐 - 建立敏捷開發的團隊 講師: 李智樺 職稱: 架構師 Waveface corp. 崴峰科技

Scrum / Agile 敏捷開發 1. Scrum 敏捷開發是什麼? 解決哪些專案管理上的 2. 開發團隊如何管理及適當的管理工具。 問題? 2. 開發團隊如何管理及適當的管理工具。 3. 從版本管控到持續產出(Continuous Delivery), 進而到使用者的持續回饋(Continuous Feedbacks) 如何進行。 參考場次: AAP302 徐鈞安 Scrum 敏捷開發與 Team Foundation Server 2012 新功能 AAP303 胡百敬軟體測試實務與 Visual Studio 2012

SCRUM 的歷史 •1986年, 竹內弘高 和 野中郁次郎闡述了一種新的整體性的方法 ,該方法能夠提高商業新產品開發的速度和靈活性:他們將這種新的'整體性方法與橄欖球相比較, 前者各階段相互重疊,並且由一個跨職能團隊在不同的階段完成整個過程, 而後者整個團隊"tries to go to the distance as a unit, passing the ball back and forth"。 ◦他們對來自汽車,照片機器,計算機和印表機等產業的案例進行了研究。 •1991年, Peter DeGrace和Stahl在《Wicked Problems, Righteous Solutions》一書中將這種方法稱為 [ Scrum ],在竹內弘高和 野中郁次郎的文章中提到的橄欖球術語。 •1990年代初, 肯•施瓦伯在其公司使用了一種方法Advanced Development Methods(先進開發方法),這種方法後來發展為Scrum。 •同時,傑夫•薩瑟蘭在Easel公司開發了一種類似的方法,並首次稱之為Scrum。 •1995年,在奧斯汀舉辦的OOPSLA '95上,薩瑟蘭和施瓦伯聯合發表了論文首次提出了Scrum概念。施瓦伯和薩瑟蘭在接下的幾年裡合作,將上述的文章,他們的經驗,以及業界的最佳實踐融合起來,形成我們現在所知的 Scrum。 •2001年,施瓦伯與 麥克·比竇(Mike Beedle)合著了《敏捷軟體開發-使用Scrum過程》一書,介紹了Scrum方法。

SCRUM 的歷史 •1986年, 竹內弘高 和 野中郁次郎闡述了一種新的整體性的方法 ,該方法能夠提高商業新產品開發的速度和靈活性:他們將這種新的'整體性方法與橄欖球相比較, 前者各階段相互重疊,並且由一個跨職能團隊在不同的階段完成整個過程, 而後者整個團隊"tries to go to the distance as a unit, passing the ball back and forth"。 ◦他們對來自汽車,照片機器,計算機和印表機等產業的案例進行了研究。 •1991年, Peter DeGrace和 Stahl在《Wicked Problems, Righteous Solutions》一書中將這種方法稱為 Scrum,在竹內弘高和 野中郁次郎的文章中提到的橄欖球術語。 •1990年代初, 肯•施瓦伯在其公司使用了一種方法Advanced Development Methods(先進開發方法),這種方法後來發展為Scrum。 同時,傑夫•薩瑟蘭在Easel公司開發了一種類似的方法,並首次稱之為 Scrum。 •1995年,在奧斯汀舉辦的OOPSLA '95上,薩瑟蘭和施瓦伯聯合 發表了論文首次提出了Scrum概念。施瓦伯和薩瑟蘭在接下的幾 年裡合作,將上述的文章,他們的經驗,以及業界的最佳實踐融 合起來,形成我們現在所知的 Scrum。 •2001年,施瓦伯 與 麥克·比竇(Mike Beedle)合著了《敏捷軟體開發-使用Scrum過程》一書,介紹了Scrum方法。

SCRUM framework 肯•施瓦伯 傑夫•薩瑟蘭 2012 Microsoft

SCRUM framework

Scrum 肯•施瓦伯 A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value. Scrum is: Lightweight Simple to understand Extremely difficult to master

Scrum 過程 Scrum是一個包括了一系列實踐和預定義角色的過程框架。 Scrum中的主要角色包括與專案經理有一點類似的Scrum Master角色,負責維護過程和任務,產品負責人(Product Owner)代表利益所有者,開發團隊 包括了所有開發人員。 在每一次衝刺 Sprint(一個15到30 天週期 ,長度由開發團隊決定),開發團隊開發可用的(可以隨時推出)軟體的一個增量。 每一個衝刺所要實現的特性來自產品訂單(product backlog), 產品訂單是按照優先順序排列的要完成的工作的概要的需求。那些訂單項會被加入一次衝刺由衝刺計劃會議決定。 在會議中,產品負責人告訴開發團隊他需要完成產品訂單中的哪些訂單項。開發團隊決定在下一次衝刺中他們能夠承諾完成多少訂單項。在衝刺的過程中,沒有人能夠變更衝刺訂單(sprint backlog),這意味著在一個衝刺中需求是被凍結的。 管理Scrum過程有很多實施方法,從白板上的即時貼到軟體工具。 Scrum最大的好處是它非常容易學習,而且應用Scrum不需要太多的投入(才怪~)。

Scrum 也可以用在其他地方 《用作行銷專案管理方法》 由於市場行銷通常以專案的方式運作,許多一般專案管理的原則應用在市場行銷上。市場行銷也可以像專案管理技術那樣進行優化。 以Scrum方法進行市場行銷被認為有助於克服市場營銷經理們所遇到的問題。短時和固定的會議對於小的市場營銷團隊來說很重要,這是因為團隊的每一個成員都可以了解其他人在做些什麼,以及整個團隊在朝著什麼方向前進。Scrum在市場行銷中應用可以: •在早期發現可能的問題,可以更快地,最小損失地應對問題。 根據Scrum的主要原則 「沒有問題被掃入地毯下」,Scrum鼓勵每一個團隊成員描述他所遇到的困難,而這個困難可能會對整個團隊的工作造成影響。 •降低財務風險。 在每一個衝刺周期的開始,企業所有者可以不付出任何代價的改變任何市場營銷的因素:包括增加投資以誇大顧客數量,減少投資直至未知風險被減輕,或用於支持其他活動。 •使得市場行銷計劃更靈活。 採用衝刺的短期市場營銷計劃可以更加有效。如果一種促銷方法在衝刺過程中顯示無效,市場營銷經理有機會將其換成另一種促銷方法。向每一個團隊成員說明每一個小的,但重要的任務的交付時間也變得更容易。 •使得客戶以不同的方式參與。

從哪裡開始 Scrum角色和職責 產品負責人 (Product Owner) Scrum Master 團隊 定義開發目標,需要實現的feature和優先順序 Scrum Master 保證團隊高效而不受打擾地工作,優化工作條件、過程 團隊 自組織地完成專案開發,使用一切可行手段保證進度和品質

Scrum 的精髓 Scrum是一個“檢查並適應”的框架,在三個角色(產品負責人/Scrum Master/團隊)、 四種會議(Sprint計畫/Sprint展示/ Sprint回顧/每日例會)和三種製品(產品Backlog/Sprint Backlog/燃盡圖 Burn down chart)的基礎上。 你可以根據公司或者專案的情況,因地制宜引入任何有利於縮短開發週期、提高產品品質的實踐。

實施Scrum — Sprint 前 產品負責人(PO)收集整理產品需求,形成產品Backlog。 產品負責人可以通過任何管道、方式獲取和確認需求。

實施 Scrum — Sprint (1) 產品負責人、Scrum Master和團隊成員(包括QA)召開Sprint會議,Scrum Master主持會議。 Sprint會議上詳細溝通產品負責人選定的重要性高的產品Backlog細節,確保團隊對需求的理解無誤。 團隊就對需求的理解將Backlog拆分成任務,並給出每個Backlog的估算時間。 產品負責人和團隊根據Sprint內可用的人天和Backlog的時間估算,選定需要排入本次Sprint的Backlog 。 Scrum Master和團隊分派任務,制定Sprint計畫。 一個Sprint的週期是兩周;一次Sprint會議時間大約一個下午。

實施 Scrum — Sprint (2) 整理一面任務牆,將Sprint內的Backlog和任務按照待辦事項(To do)、進行中(In progress)、已完成(Completed)等狀態進行歸類;同時展示Sprint的燃盡圖。 Scrum Master每日早上固定時間組織團隊的每日例會,確認每個成員前一天完成的工作、當天要進行的工作、工作中碰到的困難或issue,並更新任務牆。 任何需求變更都進行即時評估,超過規劃人天的Backlog視情況進行拆分或者推遲其他重要性低的Backlog。 任何完成的Backlog都需要演示給產品負責人和QA後才能夠交付測試。

SCRUM 的任務牆 任務牆: 傳統白板+便利貼 任務牆: 瀏覽器

Scrum — Sprint後 Scrum Master召集、組織Sprint展示會議 展示會議: 展示這個Sprint的開發結果。 回顧會議以頭腦風暴的方式Review Sprint過程和結果,發現和列舉存在的問題。 與會人員投票決定需要在下個Sprint中解決的1-3個問題, 探討解決方案,確定實踐方式。

Scrum 精神 團隊目標重於個人職責 團隊工作優於獨立作戰 高效溝通強於標準化的文件 高動能性的、自組織的團隊勝於角色劃分清晰的流水線 務實的解決問題的方法好於經典理論 快速實踐,快速回饋,持續優化

scrum in pseudo code DEMO 三個角色 四個會議 三種 工作物件

需求: 「開發一個開發專案的架構」 開發團隊可以專心的從事開發的作業,而不受到外部的干擾。如此一來便能夠擁有良好的開發進度。(團隊) “As a <role> , I want <goal/desire> so that <benefit>“ 身為 ,我希望 從此以後 開發團隊可以專心的從事開發的作業,而不受到外部的干擾。如此一來便能夠擁有良好的開發進度。(團隊) 控管專案的人員可以每天都清楚的知道專案的進度及是否遇到困難。如此便能盡快排除這些障礙,讓專案順利進行。(scrum master) 使用者可以盡早看到那些項目已經被完成,並給予回饋讓方向不致錯誤。(product owner)

Run Scrum() 三個角色,四個會議,三種 工作物件 { const int Sprint_Length = 2*5; // 設定 2周為一個 Sprint 週期 int velocity = get_past_performance(); // 依據過去的紀錄 // Scrum 中的三個角色 Role team=new Role(), product_Owner=new Role(), ScrumMaster=new Role(); // Scrum 中的artifacts製品 Product_Backlog product_backlog = new Product_Backlog(); Sprint_Backlog sprint _backlog=new Sprint_Backlog(); Burndown_Chart sprint_burndown_chart=new Burndown_Chart(), release_burndown_chart=new Burndown_Chart(); Product_Increment product_increment=new Product_Increment(); //開始專案的三個準備條件 setup_team(team); define_Definition_of_Done(team, product_owner); initial_project(); //每一次while 迴圈為一次反覆運算 while( product_backlog_item_hasvalue() && time_remaining()) run_sprint_planning_meeting(product_backlog, velocity, product_backlog); //daily 迴圈為一個工作日 for (num_of_day = 1; num_of_day <= Sprint_Length; num_of_day++) run_daily_scrum_meeting(sprint_burndown_chart); do_development_activity(sprint_backlog, product_increment); } run_sprint_review_meeting(product_backlog, product_increment); run_retrospective_meeting(); update_product_backlog(product_backlog, release_burndown_chart); update_velocity( velocity);

一些你一定會遇到的問題 專案完成時間如何估計? 加班有用嗎? 真的可以做到在Sprint周期內不受外部打擾嗎? 客戶真的能加入開發團隊嗎? - 使用者故事太抽象了。 進度不佳如何是好? 品質不佳如何是好? 離職/交接?

開發團隊持續交付價值 - 滿足使用者及企業目標 開發團隊持續交付價值 - 滿足使用者及企業目標 需求 使用者/ 關鍵人物 定義 具體概念 PRODUCT BACKLOG 實務學習及 有效回饋 App 及系統維運人員 監控 實作 開發 建置軟體 的理念 持續交付價值 營運 使用中的App或上 線的系統 實現價值 Identifying and eliminating team integration barriers and impediments enable organizations to deliver a continuous flow of value with their software investments. Addressing such is not an all or nothing investment. Organizations can identify the value delivery impediments that impact them the most and apply contextual solutions to address. Over time, organizations can explore and adopt broader practices to further optimize value delivery cycle times. Presenter TODO : Switch back to the prior slide, have audience select impediments of interest, and discuss solution options to address. See the ALM Solutions section of this deck for information on solution patterns to address impediments across the Define, Develop, and Operate lifecycle phases. 開發 & 測試 OPERATIONS BACKLOG 使用中的App或系統 - 共享模組與平台

<Conference/Group Name> 9/11/2017 持續增值的開發 定義 價值的定義與概念 營運 部署持續的改善 管理 Backlog 和 sprint 視覺化工作面板 Storyboard 工具 MEAN TIME TO REPAIR CYCLE TIME PRODUCT BACKLOG OPS BACKLOG Sprint 監控 開發 將概念化為軟體 © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

為何需要工具? -- 傳統使用白板/便利貼不是很好嗎?為何還需要數位化管理工具。   要與Work Item, Version Control & CI 系統整合 – 以 免又要重key一次,有重工。      多人/多地協同工作。 除了 Burndown Chart外,一些基本的指標 (Active Workitem, bugs, feedbacks ….)    成員資訊透通 (TFS 2012 的Web  Dashboard連接小組)

Code Review 程式碼檢閱 程式碼檢閱是維繫程式碼品質的基本功,團隊必須要盡早建立此種習慣與文化。 透過「Team Explorer」視窗發出「要求檢閱」程式碼的需求 檢閱者的 Team Explorer 會自動呈現所收到的「程式碼檢閱要求」工作項目。

《敏捷宣言》 我們通過身體力行和幫助他人來揭示更好的軟體發展方式。經由這項工作,我們形成了如下價值觀: 個體與交互 重於 過程和工具 可用的軟體 重於 完備的文檔 客戶協作 重于 合同談判 回應變化 重於 遵循計畫   在每對比對中,後者並非全無價值,但我們更看重前者。

《敏捷宣言》的12準則 我們的最高目標是,通過儘早和持續地交付有價值的軟體來滿足客戶。 歡迎對需求提出變更——即使是在專案開發後期。要善於利用需求變更,説明客戶獲得競爭優勢。 要不斷交付可用的軟體,週期從幾周到幾個月不等,且越短越好。 專案過程中,業務人員與開發人員必須在一起工作。 要善於激勵專案人員,給他們以所需要的環境和支援,並相信他們能夠完成任務。 無論是團隊內還是團隊間,最有效的溝通方法是面對面的交談。 可用的軟體是衡量進度的主要指標。 敏捷過程提倡可持續的開發。專案方、開發人員和用戶應該能夠保持恒久穩定的進展速度。 對技術的精益求精以及對設計的不斷完善將提升敏捷性。 要做到簡潔,即盡最大可能減少不必要的工作。這是一門藝術。 最佳的架構、需求和設計出自於自組織的團隊。 團隊要定期反省如何能夠做到更有效,並相應地調整團隊的行為。

Reference 團隊成員、個人 http://www.infoq.com/cn/minibooks/scrum-xp-from-the-trenches/ Lisa crispin Mike Cohn 企業、遠地開發: http://www.mountaingoatsoftware.com/books/7-succeeding-with-agile http://www.mountaingoatsoftware.com/books/2-user-stories-applied http://www.mountaingoatsoftware.com/books/1-agile-estimating-and-planning 微軟開發團隊的Scrum Visual Studio ALM Ranger Projects Scrum Guide http://msdn.microsoft.com/en-US/