Hello忍捡,大家好~這是我們項目部第一期培訓,主要內容呢唇辨,是TFS與Project協同工作廊酣。
1. 培訓大綱
Agile與Scrum
介紹Agile與Scrum的知識。
可能有的同事就會吐槽了赏枚,明明是TFS與Project協同工作的培訓亡驰,怎么會涉及到Agile與Scrum呢?這有兩方面的原因饿幅。
第一個原因凡辱,最近公司在推廣學習Scrum,也組織了兩次視頻培訓栗恩,相信參加過的同事都會對Agile與Scrum有個大致的了解透乾。那么,現在我們做一個結合項目部實際情況的Scrum試點與應用磕秤,是順勢而為的事情乳乌。
第二個原因,其實以前我們有過一次這樣的培訓市咆,那會不叫Scrum培訓汉操,叫TFS培訓,培訓之后用了TFS一段時間效果不是很理想蒙兰,我覺得其中一個原因是我們沒有達成共識磷瘤。
其實一開始部門要實施TFS我是拒絕的,因為搜变,你不能讓我用采缚,我就馬上去用。第一挠他,我要先了解一下扳抽,并回答它的三個哲學問題,我不懂就去用,用了之后又沒領會精髓贸呢,然后又來培訓赂苗,PPT duang一下,很好很強大贮尉,然后你們回去用了之后,覺得效果根本沒有這么好朴沿,這樣聰明如你們一定會罵我猜谚。我實施Scrum有將近兩周,感覺還不錯赌渣,有一種滑板鞋在地板上摩擦摩擦的節(jié)奏感魏铅,所以我覺得Scrum真的有效。我用了之后是這個樣子坚芜,希望經過這次培訓览芳,團隊達到共識,你們回去用了之后也會是這個樣子鸿竖。
我們如何實施Scrum
實施模式決定我們的實施策略沧竟。這部分將立足我們項目部目前的實施模式,采用Scrum之后缚忧,我們的實施策略將會發(fā)生怎樣的變化悟泵。
Scrum在TFS中的應用
將介紹TFS最新的Scrum 2013.4模板以及它在TFS中是如何使用的
TFS和Project協同工作
將介紹如何在Project中制定工作項,以及如何與TFS協同工作
2. Agile與Scrum
2.1 Agile是什么闪水?
它是一種軟件開發(fā)方法學糕非,包括Scrum、XP極限編程球榆、RUP統(tǒng)一開發(fā)過程朽肥、Crystal(水晶方法)、FDD(特征驅動開發(fā))持钉、DSDM(動態(tài)系統(tǒng)開發(fā)方法)衡招、Lean精益生產等敏捷方法。
Agile的體系結構如下圖右钾,它囊括了上述所有敏捷方法蚁吝,它是一種敏捷思想。
2.2 Agile價值觀
以價值為導向
我們軟件生產的最終目的是以優(yōu)良的軟件產品和優(yōu)質的服務讓客戶滿意舀射,而Agile的原則之一窘茁,是通過可持續(xù)迭代及早交付有價值的可以工作的軟件,這是開發(fā)過程中優(yōu)先級最高的事情脆烟。
強調以人為本
人在軟件開發(fā)中的作用是舉足輕重的山林,力求溝通無障礙,重視開發(fā)團隊成員有效的面對面交流、溝通與協作
快速響應變化
客戶在沒看到成型的軟件產品之前驼抹,需求是模糊不確定的桑孩,因此我們開發(fā)出來的產品必然需要應對客戶需求的頻繁變更,Agile要求客戶始終參與整個開發(fā)過程框冀,不斷獲得反饋不斷適應需求變更流椒,從而使最終的產品充分符合客戶的要求,雙方都皆大歡喜明也。
2.3 Agile宣言
這種精神上的東西只有經過長期實踐之后才會有更深層次的感悟宣虾,現在只能說說我的一個淺薄的理解。
個體和交互 勝過 過程和工具
傳統(tǒng)開發(fā)過程過分強調流程和工具温数,而敏捷開發(fā)強調以人為本绣硝,溝通無障礙
可以工作的軟件 勝過 面面俱到的文檔
經歷過多年的項目實施,大家也了解撑刺,文檔從來都是為了項目驗收而寫的鹉胖,真正開發(fā)過程中需要文檔的情況是少之又少的,敏捷開發(fā)不是不注重文檔够傍,而是追求文檔簡潔甫菠,設計靈活,可以工作的軟件才是關注的重點王带。
客戶合作 勝過 合同談判
開發(fā)符合客戶設想的功能需要的是持續(xù)頻繁的客戶反饋淑蔚,而不是依賴合同關于功能的陳述,客戶全程參與我們的開發(fā)過程愕撰,他們可以直觀地看到每個功能的演變刹衫,直至這個功能滿足了他們的需要。
響應變化 勝過 遵循計劃
計劃趕不上變化搞挣,一味的遵循既定的計劃會導致延期交付带迟,如何在開發(fā)過程中尋求靈活性與穩(wěn)定性的平衡,這是個值得反復商榷的問題囱桨。
2.3.我們?yōu)楹涡枰狝gile
這要從我們目前的項目實施現狀說起仓犬。
長周期駐外開發(fā)的項目實施模式浪費人力資源和增加時間成本
(項目實施模式決定我們的實施策略,短期內無法改變這種實施模式)
我們的項目實施周期基本上需要一年到兩年舍肠,而且開發(fā)人員是常期駐扎在甲方單位開展工作搀继,那么這種長周期駐外開發(fā)的項目實施模式勢必浪費人力資源和增加時間成本。
我們曾提過一個設想翠语,就是把項目開發(fā)人員集中在公司開展工作叽躯,項目現場只留項目經理負責溝通與協調,但是要實現這個設想肌括,要滿足兩個條件点骑,第一是擁有一支實現實時保障、實時響應、敏捷開發(fā)的項目實施團隊作為支撐黑滴,第二是我們的業(yè)務系統(tǒng)必須完全實現產品化憨募。以我們目前的人員配備以及業(yè)務系統(tǒng)半產品化的現狀,還實現不了袁辈,但是這將會是我們項目組的發(fā)展目標菜谣,我們要走產品化發(fā)展道路,打造一支敏捷開發(fā)項目實施團隊晚缩,只有這樣葛菇,才能真正開創(chuàng)市場與規(guī)模齊飛,利潤與收入暴漲的局面橡羞。
不完整的瀑布式開發(fā)模式,造成絕大部分項目延期驗收济舆,軟件質量不能令甲方客戶滿意
人員短缺固然是其中一個原因卿泽,更主要的原因是我們目前是以傳統(tǒng)的瀑布式開發(fā)模式為主,遵循預先計劃的需求分析滋觉、設計签夭、編碼、集成椎侠、測試第租、維護步驟順序進行,嚴格來說我纪,我們不是完整的瀑布模型慎宾,因為少了測試這重要的一環(huán)。我們目前的測試是以開發(fā)人員自行完成功能測試浅悉,由甲方客戶完成可靠性測試和易用性測試趟据。可以想象术健,客戶心里是有多吐槽汹碱。這勢必影響我們公司在甲方客戶心中的形象,造成不信任情感情緒蔓延的局面荞估。諸多因素造成軟件質量問題咳促,如果我們不改變這種開發(fā)模式,將會導致更嚴重的軟件質量危機勘伺,到那時將回天乏力跪腹,為時已晚矣!慶幸的是娇昙,公司內部目前力推Agile與Scrum敏捷開發(fā)模式尺迂,這是我們突破現狀走向產品化發(fā)展道路的契機。因此,我們轉變開發(fā)模式噪裕,引入Agile與Scrum蹲盘。
實施團隊實行分布式管理模式,管理人員無法實時把控項目進度
我們的項目遍布大江南北膳音,實施團隊人員也分散各地召衔,實行的管理模式是分布式的,導致管理人員無法實時把控項目進度祭陷。往往到了年底前兩個月苍凛,為了回款才突擊進度完成目標,相信這點大家也深有體會兵志。
分布式管理模式的好處之一醇蝴,就是我們的現場實施團隊是相對自由的,項目工作任務基本自行安排想罕,項目進展自行控制悠栓,基本上完成年底回款目標就行,但這要求現場項目經理具備較高的管理能力和執(zhí)行能力按价。Agile的理念之一惭适,就是信任開發(fā)團隊,給予充分自由楼镐,可以說我們現在的分布式管理模式天然帶有Agile的基因癞志。
為趕工期,人員經常加班加點框产,一點也不愉快凄杯!
這點相信大家也深有體會了。
那么Agile是否能解決上述所有問題呢秉宿?答案是
Agile不是銀彈盾舌,不能指望它能解決所有問題。
那么它到底能幫助我們什么呢蘸鲸?上面提到了Agile是一種軟件開發(fā)方法學妖谴,它囊括了眾多優(yōu)秀的敏捷開發(fā)方法,我們不能所有方法都嘗試酌摇,而Scrum是全球范圍內應用最廣泛的一種膝舅。所以我們也順應潮流趨勢,引入Scrum敏捷開發(fā)方法窑多。
2.4 Scrum是什么
它是一種迭代式增量軟件開發(fā)過程仍稀。這張圖基本上囊括了它的所有要素。
三大角色:
Product Owner產品負責人
Scrum Master敏捷教練
Scrum Team敏捷團隊
三大工件:
ProductBacklog產品待辦工作項
SprintBacklog沖刺待辦工作項
Working Software可工作軟件
五大會議:
產品Backlog梳理會議
Sprint迭代計劃會議
每日立會埂息、Sprint評審會
Sprint回顧會
實施流程:
產品負責人PO負責產品需求的提煉技潘、條目化遥巴、優(yōu)先級排序,創(chuàng)建和維護產品待辦工作項享幽。
召開迭代計劃會铲掐,PO講解重要條目,由開發(fā)團隊估算工作量和選擇本次迭代工作項值桩。
進入迭代周期開發(fā)摆霉,在這個過程中會進行每日例會,慣例回答昨天干了什么奔坟,今天要干什么携栋,我遇到了什么困難。
一次迭代結束之后是迭代評審會咳秉,敏捷團隊演示迭代成果婉支,產品負責人以用戶故事是否成功交付來評價迭代完成情況。
迭代反思會澜建,也稱回顧會議磅摹,這個會議主要是總結好的方面,改進不好的方面霎奢,同時提出解決方案。
Scrum Master在整個流程中扮演的角色是同時服務于產品負責人PO與開發(fā)團隊饼灿,結合實際情況幕侠,提出適合的Scrum實施方案,確保Scrum過程的順利執(zhí)行碍彭,這個角色關乎到實施Scrum的成敗晤硕。
2.5 Scrum能做什么?
給予信任自由庇忌,開發(fā)團隊自行管理迭代周期開發(fā)任務舞箍,擺脫命令式開發(fā)約束
一般來說,各項目開發(fā)團隊的迭代周期是獨立的皆疹,互不干擾的疏橄,除非有工作項需要指派到其他項目組的開發(fā)人員。所以略就,Scrum能給予開發(fā)團隊充分的信任與自由捎迫,自行管理迭代周期開發(fā)任務,擺脫命令式開發(fā)束縛表牢。
迭代周期開發(fā)任務清晰可見窄绒,目標明確,同時目標的達成在開發(fā)團隊能力范圍之內
開發(fā)團隊根據能力自行安排迭代周期任務崔兴,那么迭代目標是能夠達成的彰导,知道目標在哪里蛔翅,我們才知道如何發(fā)力。
縮短反饋周期位谋,客戶的反饋刺激我們持續(xù)校正軟件質量和優(yōu)化產品細節(jié)山析,正反饋給予人成就感
我想,玩網游的人應該都有過打個怪會爆裝備倔幼,通過關就升級的體驗盖腿,為什么人容易沉迷網游,其中一個原因在于它的反饋周期很短损同,基本上你水平到了翩腐,就立馬給你獎勵反饋,而現實生活中大部分都是長反饋周期的事情膏燃。
Scrum實施過程中茂卦,開發(fā)人員與客戶的反饋周期縮短到一次迭代,客戶的反饋刺激我們持續(xù)校正軟件質量和優(yōu)化產品細節(jié)组哩,而且等龙,客戶的正反饋能給予我們成就感。
形成迭代周期開發(fā)節(jié)奏伶贰,提高軟件開發(fā)生產力蛛砰,進入敏捷開發(fā)良性循環(huán)
這是至關重要的一點∈蜓茫可以這樣說泥畅,如果沒有形成一種可持續(xù)穩(wěn)定的開發(fā)節(jié)奏,那么我們將維持現在的實施現狀與生產力水平琅翻,這是大家都不愿看到的位仁。如何促進開發(fā)團隊形成這種節(jié)奏,是Scrum Master的任務之一方椎。
(以下內容為部門內部材料聂抢,不方便公開)
3.我們如何實施Scrum
3.1 分布式Scrum組織架構
3.2 Scrum實施框架之模型
3.3 Scrum實施框架之工件
3.4 Scrum實施框架之會議
3.5 Scrum實施框架之工具
3.6 Scrum實施框架之文檔
3.7 Scrum實施框架之原則
4.Scrum在TFS中的應用
5.TFS與Project協同工作