敏捷開發(fā)大會總結
敏捷開發(fā)大會總結
201*年9月18日星期二
9月份的12日下午、13、14兩天,參加了第七屆敏捷開發(fā)大會,雖然自己沒有做過敏捷項目,但因為現(xiàn)在“敏捷”是流行詞,想看看自己公司的項目能不能用,所以就拿著領導的大洋,風風火火的參會去了,接受各位牛人的輪番知識轟炸。
NealFord:AgileArchitecture&Design
總覺得演講的內(nèi)容與題目不太相符,在講主要內(nèi)容之前,引用了很多名人名言,比如戴明的“壞的流程會打擊好員工的積極性”,泰勒的科學管理理論等,之后,主要講了4部分內(nèi)容:
1、
溝通的重要性,每個團隊都要找到適合自己的溝通方式,面對面的溝通時,站在白板前,語言+文字的溝通可能是最好的。
溝通一定要有反饋,比如敏捷中可能有即時的反饋,每天的反饋,每周的反饋等等。
2、
為什么結對編程有效
這個最主要的論據(jù)是一個人很難同時使用左大腦和右大腦,而結對編程則可以分工,達到同時使用的目的。
3、
反饋與溝通如何結合
這部分,講的是具體的實踐,比如在構建的時候放一點歌,在辦公室里邊放玩偶,在工作中創(chuàng)造樂趣等。
4、
為什么敏捷開發(fā)是有效的
因為溝通是閉環(huán)的,溝通是高效的,工作是快樂的,所以敏捷開發(fā)是有效的。
回答的提問:
Q1:結對編程時,對人員水平有要求嗎?A1:要盡可能水平相近,以提高生產(chǎn)力為目標
Q2:是否要保持結對的穩(wěn)定?
A2:最好1~2天換一次,以保持信息的可傳承行
Q3:如果是異地,可以形成結對嗎?
A3:盡可能在本地,可以以互相出差的方式形成本地結對。
王紅超:大規(guī)模敏捷轉(zhuǎn)型
主要講的是華為如何開展敏捷轉(zhuǎn)型工作的,聽完之后的第一感覺是:“有錢
真好”!
華為是以“業(yè)務目標達成”為導向推薦的敏捷,并且把敏捷提高到了戰(zhàn)略的高度,在這過程中請了很多業(yè)界的牛人做自詡和輔導。
華為的敏捷轉(zhuǎn)型,簡單來說可以分為兩步:第一步:統(tǒng)一對敏捷的認識
敏捷=理念+優(yōu)秀實踐+具體應用,其中,理念指的是敏捷的核心思想,優(yōu)秀實踐指的是經(jīng)驗的積累,而具體應用,指的是能夠結合自身靈活應用才是真正的敏捷。
在敏捷中,領導的作用是“激發(fā)”團隊,而成員是全方位的積極參與者。第二步:建立敏捷開展輔導隊伍
建立公司級和產(chǎn)品線級兩級敏捷教練體系,引進幾乎業(yè)界所有的顧問。采用開展日常培訓、講座等等;每年組織年度軟件工程大會進行優(yōu)秀實踐的分享;建立內(nèi)部交流社區(qū)等方式促進內(nèi)部溝通。
華為在引入敏捷的過程中,也遇到的很多問題,比如新員工大量進入對原來團隊的沖擊,能力的稀釋;研發(fā)過載,需要面對交付壓力、能力不足、沉重的技術債務等。
最后的總結是,引入敏捷,一定要務實、理性。
RitchardMarkelz:GlobalAgileStrategy
主要講了敏捷中的領導力及創(chuàng)新,還有為什么要用敏捷。
敏捷中的領導力主要體現(xiàn)在,把團隊看成整體而不是層級,在組織中創(chuàng)建授權,把優(yōu)秀領導從合格領導中區(qū)分出來。講焦點集中在優(yōu)秀實踐和成功模式上,采用激勵式詢問方式,如什么事我們做的好的,什么是有效的。
使用敏捷的一個很重要的原因是:客戶時敏捷的,客戶關心的是如何快速解決問題,因此靈活性和適應性才是其中的關鍵;卮鸬奶釂枺
Q:敏捷方式中,計劃怎么做?
A:分層,更高層的做傳統(tǒng)的計劃,不具體到細節(jié)。
榮浩:百年歷史看管理
不得不說,榮浩真的是才子,將管理的歷史幫我們梳理的簡單而清楚,把這些人和事都按照順序列出來的話,應該就能理清大概的思路了。
亞當斯密、泰勒、亨利福特、法約爾、韋伯;摩登時代、霍桑實驗;休
哈特、PDCA;彼得德魯克、列維特、錢德勒;權變理論。
80年代的日本制造、PDCA、TDD、精益;90年代的組織癱瘓、流程再造,哈默和錢皮、彼得圣吉。
21世紀以來,扁平化的組織結構、全球供應鏈的挑戰(zhàn)及國內(nèi)最嚴重的管理的道德問題等等。
所有的這些都說明了,管理只有恒久的問題,沒有終結的答案。
喬梁:組織轉(zhuǎn)型的十個要點
主持人介紹時說,這位是傳說中的喬幫主,無奈本人孤陋寡聞,愣是沒聽說過。
喬幫主說,敏捷實踐中,大約有75%的失敗率,其中文化變革的范圍是其中的原因之一。
喬幫主還說,因為用英文表達比用中文更好理解一點,所以用英文表了。組織文化變革中,只變革需要變革的部分,因為人天性是害怕變革的,只有不滿意程度達到一定程度時,才會變革,而變革時,應該先unfreezing再unfrozenandmovingtoanewstate之后再refreezing。
1、2、3、4、5、6、7、8、9、10、
錢安川:可視化敏捷項目管理
錢老師其實就講了一個故事,怎么把項目管理用數(shù)字表達出來,設計問卷的過程中和問卷的使用過程中遇到的問題,其實跟敏捷不敏捷沒有太大的關系。3Alignwithbusinessurgency。只解決TOP3的問題,不要去做那些Truebutuseless的事情。
Properleadingteam。結論性的東西才能推出。Quickassessment。誰執(zhí)行誰做決定。Definetheroadmapandspecificactions。
Pilotteamcarefully。因為這個與信心有關,一定要考慮人的積極性和能動性。敏捷中最主要的是開放的心態(tài)。
Beawareofantibodyeducation。注意生產(chǎn)率與team的motivation之間的關系。
Workasawhole。把團隊所有成員弄到一起,坐在一起,對所有的實踐,都要體驗而不是判斷。Visualizeeverything
Metricsisimportant。結果和過程的數(shù)據(jù)一定要有,這樣才能知道底細和過程。
Justgiveitatry。敏捷都是經(jīng)驗主義者,所有的事情都需要試一下并給出反饋。仝健:共識、烏合之眾和可視化
仝老師主要通過一個經(jīng)典的博弈“協(xié)同謬誤”來說明信息共有的重要性,講在項目中,信息不共有會產(chǎn)生的問題及信息共有會帶來的收益。
常見的信息共有的方法包括發(fā)布信息、公布標準、設定目標和制定規(guī)則。在項目中,把權限放給每個人,會更有自主性和責任感。
如果不能解決問題,就把問題暴露出來,讓能解決問題的人看到它。
杜偉忠:利用可視化的工作方式打破部門壁壘
可視化主要解決部門之間溝通成本高、管理層因為項目過程不透明而對項目組不信任的問題、每個部門都想著自己部門利益的問題。
張忠:以客戶價值為中心的公司級敏捷開發(fā)
張老師主要講了用友是如何推進敏捷的。在軟件行業(yè),研發(fā)人員總是很被動的,而敏捷讓大家的參與度提高了。而要推進敏捷,必須把敏捷變成一種公司級的價值觀。
用友從201*年開始推進敏捷,已經(jīng)有3年的時間,201*年的主題是“快速響應”,因為市場與客戶都希望能快速響應;201*年的主題是“效益化研發(fā)”,公司內(nèi)技術人員感覺可能不是很明顯;201*年的主題是“全面推進”,重在吸引大家,建立內(nèi)部俱樂部,專題推進等,轉(zhuǎn)變研發(fā)視角,更關注市場價值,這時候要站在巨人的肩膀上而不是站在腰眼兒上。
用友在敏捷的過程中,也遇到了很多問題,如開發(fā)人員壓力大(負面反饋具體而大量,實現(xiàn)價值與研發(fā)交付無關聯(lián)等);交付物難以進行實際客戶交付;多角色間協(xié)調(diào)一致的耗費比較大;保證持續(xù)發(fā)布能力的敏捷工程方法支撐不足;缺少全面支持的研發(fā)管理平臺等。
敏捷應該采用阿米巴的方式,自我生長,自我分裂,自主經(jīng)營。
如果敏捷最后能做成有趣的研發(fā)、與客戶緊密關聯(lián)的研發(fā)、幸福的研發(fā)就算成是成功了。
王宇:如何引導團隊快速建立信念
王老師教會我的第一句話是“當學生準備好了,老師自然會出現(xiàn)”,以前總覺得自己是幸運,總是能夠在希望學到什么的時候及時出現(xiàn)可以教會自己的人,看到這句話之后突然發(fā)現(xiàn),原來在這件事上,大家都是一樣幸運的。同理,當自己沒有準備好的時候,即便老師在眼前晃來晃去,在耳邊喊來喊去,仍然不可能有收獲一樣。
亨利福特曾經(jīng)說過,我需要的是一雙手,但他帶給我一個腦袋。而在我們現(xiàn)在,員工帶來的不僅是一個腦袋,更包括了他們的家人、他們的經(jīng)歷、他們的
懊惱和憂愁。
作為敏捷項目的領導,要有能激發(fā)出團隊信念的信念。而團隊最基本的信念,在Scrum里邊是:開放、專注、勇氣、承諾、尊重,XP中則是:簡單、溝通、有序。
要記住,每個人都是部分正確。教練的作用是在舒適的區(qū)域外邁一步。
陽陸育:做減法的藝術
Louis主要講的是CMMI3及以上團隊中,如何實現(xiàn)敏捷轉(zhuǎn)型,主要講了幾個公式:
1、自適應流程=選擇團隊熟悉的流程+不斷修正2、PMO如何管理=敏捷項目管理≠監(jiān)管
=提供暴露問題的環(huán)境+專業(yè)的流程優(yōu)化服務3、質(zhì)量成本≠測試成本
=溝通成本+團隊的學習成本
4、成功的項目≠做完了的項目
=客戶需要的產(chǎn)品+用戶可接受的方案+團隊可接受的質(zhì)量
5、協(xié)作≠消除分工
=各司其職+緊密溝通6、開發(fā)≠編碼
=正確的理解問題+提出可接受的設計+完成可交付的代碼在CMMI3及以上團隊中做敏捷,要使用做減法的藝術,要提取現(xiàn)有流程資產(chǎn)引入敏捷基礎實踐逐步剔除控制式監(jiān)管+構建學習型組織+引入更多工程實踐,其中學習型組織是關鍵,敏捷之所以能敏捷,就是因為每個人的能力都在提高,而所謂的學習型,則是指把某些人的知識傳遞給別人并固化下來。把現(xiàn)有流程當成資產(chǎn)對待,按照以下方式處理:
1、文檔:有區(qū)分的對待,有計劃的簡化。盡量避免writeonly的文檔。2、檢查點:權力下放,減少或者延遲檢查。讓每個做事情的人成為檢查的執(zhí)行人。
3、測量域:明確目標,服務導向。根據(jù)團隊的實際情況制定測量域,測量結果要縱向?qū)Ρ榷皇菣M向?qū)Ρ取?/p>
4、測試:是開發(fā)協(xié)助型測試還是驗收型(放行性)測試?前者的作用是改進生產(chǎn)的正確率,測試人員是開發(fā)人員的助手。
擴展閱讀:修煉敏捷開發(fā)總結
從公司拿的第一本書《搞笑程序員的45個習慣敏捷開發(fā)修煉之道》,急急忙忙的看完了,寫的是什么呢?大概清楚,但具體來說不是很清楚,所以現(xiàn)在總結一下下,里面雖說說的不是很具體,很多是大家都在做的,但是還是總結出來的好,把它養(yǎng)成自己的習慣,符合的繼續(xù)發(fā)揚,不符合的改善,如此而已。
現(xiàn)在我的功力尚淺,讀這些習慣的書,應該不算早也不算晚,看看吧,反正不管怎么樣,我翻完了,總結一下吧,總結其實就是摘抄里面的內(nèi)容,自己的感受呢,項目經(jīng)驗太少,應該不是很多,但敲一遍應該能記住一些吧。好吧,開始了。
糟糕的代碼需要重構!
需求一直是變化的,不要畏懼變化,但也不要頻繁的變更需求,需要在一小段時間內(nèi),保持需求的穩(wěn)定性!
需求是用戶決定的,不是編碼人員決定的!
測試先行,有時可以讓測試牽引著編碼工作的進行!
團隊內(nèi)部的協(xié)作,資源共享,代碼共享,相互幫助,降低每個人壟斷的面,使得危險性降為最低,使得每個人都不是不可替代的!
編碼:先難后易!這樣利于工作的進行,容易的都做完了,難得做的時候遇到問題,有時不得不修改或者重寫已經(jīng)做完的部分。
一、態(tài)度決定一切
1、做事
遇到bug,應該做的是解決問題,而不是找出兇手。!2、欲速則不達
該重構的重構,該修改的修改,有時這會讓我們工作的更快。繞過這些,沒準我們會走更多彎路!3、對事不對人
我們是來工作的,又不是找茬的,是吧,每個人都有自己出色的一方面,當然也會有自己不出色一方面,給每一個人一個表達自己看法的機會。4、排除萬難、奮勇前進
勇氣會讓人覺得不自在,提前鼓起勇氣更需要魄力。但有些時候,它是掃除障礙的唯一途徑,否則問題就會進一步惡化下去。鼓起勇氣,這能讓你從恐懼中解脫出來。
二、學無止境
1、跟蹤變化
每天學習下新的技術,新的思路,逆水行舟,不進則退,難呀!2、對團隊投資
與團隊的人進行分享,大家強才是真的強大,讓講座穿插在我們的生活中,午飯時間大家都可以交流自己學習的心得,你有蘋果我有梨,一共享,咱倆就都有蘋果和梨了,何樂而不為呢?3、懂得丟棄
有時我們學習了新的技術,新的開發(fā)方法和習慣,但也不忍心丟棄舊的不好或者叫不合時宜的技術和習慣,我們應該適應社會的發(fā)展,適應技術的創(chuàng)新,我們已經(jīng)學習了新的技術了,又有什么不忍心廢棄掉原來那些不好的耽誤事的技術呢?舍得舍得,有舍才有得嘛!4、打破沙鍋問到底
很好的提問,可以給你帶來答案!用一下5H1W什么的方法吧,它確實能給你帶來答案,即便帶不來答案,也能告訴你你該怎么做了5、把握開發(fā)節(jié)奏
開發(fā)節(jié)奏不能太慢,那樣會讓人變得更懶惰,更沒有斗志;同樣開發(fā)節(jié)奏太快也是,經(jīng)常性的加班,也會讓人們絕望。就像減肥一樣,一點點的成功也是一個很大的激勵,小而可以達到的目標可以讓人們?nèi)偾斑M,慶祝每一次難忘的成功
三、交付用戶想要的軟件
在模電上面學到一個詞反饋!他會幫助你開發(fā)出很接近用戶需求的產(chǎn)品!不斷地發(fā)布,然后不斷地與用戶交流,不斷地修正需求,這就是反饋帶給你的1、讓客戶做決定
產(chǎn)品最后誰用?廢話,當然是用戶了,所以產(chǎn)品做成什么樣子,只有用戶才能決定,我們做什么?只能建議!2、讓設計指導而不是操縱開發(fā)
很簡答,計劃趕不上變化!開始時有一個宏觀的設計就好了,不要面面俱到,因為你開始并不是很清楚這個項目,需要在編碼過程中慢慢了解,慢慢根據(jù)實際情況再進行更詳細的設計,開始時就用大量時間做沒有實際價值的文檔,浪費生命啊,而且自己以后也可能要按照原來的不合適的文檔編碼,因為那是你費盡九牛二虎之力才弄出來的文檔啊,不用的話不是白做了嗎??何苦呢啊3、合理的使用技術
技術沒有好與不好,只有合適不合適!選擇慎重,不是看起來困難的就好,相反,越簡單的說明越有功底,就像籃球場上,最牛叉的得分不是什么空中轉(zhuǎn)體360再拉桿…..,一系列花哨的動作得分才是最美的,不可否認,這些可以證明你的實力,但是這樣也同時帶來更多的體能消耗,也可能帶來更多的傷病,相反,一個簡單的上空籃得分,一次簡單的籃下空位跳投,都是很省體力,很巧妙,而且不會受傷的優(yōu)雅的得分,能擺脫5個人的防守,證明你的功力更加深厚啊。代碼也如此,簡單的代碼,自己看著清晰,用著簡單,別人看著也清晰,維護起來越簡單,而且越簡單的事物越不容易壞4、保持可以發(fā)布
隨時都保證你的項目能展示給任何人看,給客戶,給老板,這樣對大家都有好處,對代碼的健壯性,對進度的安排,對客戶的需求。。。。。。5、提早集成,頻繁集成
越早集成,越早發(fā)現(xiàn)模塊間的問題,修改的成本越低6、提早實現(xiàn)自動化部署
7、使用演示獲得頻繁反饋
他會幫助你開發(fā)出很接近用戶需求的產(chǎn)品!8、使用短迭代,增量發(fā)布
9、固定的價格就意味著背叛承諾
軟件項目有很多不確定性,很多東西做之前是沒辦法評估的
四、敏捷反饋
1、守護天使
自動化單元測試2、先用它再實現(xiàn)它
編程之前,先寫測試。先寫測試,你就會站在代碼用戶的角度來思考,而不僅僅是一個單純的實現(xiàn)著。這樣做有很大的區(qū)別,你會發(fā)現(xiàn)因為你要使用它們,所以能設計一個更有用、更一致的接口。3、不同環(huán)境,就有不同問題
多平臺測試不是增加麻煩,而是減少以后的麻煩的不同環(huán)境下,問題也不同的4、自動驗收測試5、度量真實進度
有時候做一個任務列表真的會很不錯,而不是時間性質(zhì)的,是任務性質(zhì)的,將一個項目拆分成若干任務,列出來,然后自己做完一個就標記上,沒做的就空在那里,等著繼續(xù)完成6、傾聽用戶的聲音
每一個抱怨的背后都隱藏了一個事實,找出真相,修復真正的問題
對客戶的那些愚蠢抱怨,你既不會生氣,也不會輕視。你會查看一下,找出背后的真正的問題
五、敏捷編碼
1、代碼要清晰的表達意圖
它說,代碼重讀的次數(shù)遠遠超過編寫的次數(shù),所以還是把代碼寫的清晰,簡潔些吧,有時甚至可以犧牲性能,因為你要讓后期升級,維護的人容易做事,因為你也有可能是一個升級別人代碼,維護別人代碼的人,己所不欲勿施于人嘛。那就把代碼寫的像英語一樣,通俗易懂吧,哪怕借助詞典查一下呢2、用代碼溝通
恰當?shù)淖⑨尶梢詭椭藗冮喿x代碼。不光要寫這代碼是做什么的,而且也要注明為什么這樣做,當時自己的想法。
先閱讀注釋,然后快速瀏覽代碼,從而完全理解它做了什么,以及為什么這樣做。
3、動態(tài)評估取舍
東西沒有絕對的好壞,只有適不適合你的客戶,面面俱到不太現(xiàn)實,所以還是舍棄一些東西吧,因為你有更重要的東西要做呢4、增量式編程
在寫了幾行代碼之后,你會迫切的希望進行依稀構建/測試循環(huán),在沒有得到反饋時,你不想走的太遠。5、保持簡單
簡單不是簡陋。簡潔,實用,就好了,不必整一堆花里胡哨的高技術,沒用的。6、編寫內(nèi)聚的代碼
模塊自己做自己的事,相互之間耦合度應該低一些,獨立性強一點,不能離了誰,誰都玩不轉(zhuǎn),一個錯就都出問題了,這個要特別注意。≡趺床拍茏龅玫侥????????????????????7、告知,但不要詢問
命令與查詢分開。命令可以做很多事,可以修改很多量,但是查詢就是去看一下,而不能做出任何修改,也應該不要做任何修改8、根據(jù)契約進行替換六、敏捷調(diào)試
1、記錄問題解決日志
這個就像高中時期的錯題本,2個月2個本子,讓我的數(shù)學成績從90多分提至了130多分甚至更高,這說明了什么?說明了人們會經(jīng)常跌倒在同一個地方,是很不長記性的,所以我們怎么辦?腦子記不住,筆頭總可以吧,寫上啊,以后再查啊,沒事就瞅瞅啊,笑話下自己嘛,是吧!2、警告就是錯誤
沒事也應該多注意下警告,爭取都給改了,完美主義者有什么不好呢?不過我的實際經(jīng)驗告訴我,有些警告是不可以避免的,是不用去搭理的,這個看你自己了,看具體情況了。3、對問題各個擊破
沒啥可說的,調(diào)試時基本的原則,單一變量原則,我們要確保周圍其他的一定是好的,方能去判斷這個事物是不是好的,所以,盡可能的拆開他們吧,那樣你的思路會更清晰,做事情也越輕松4、報告所有的異常
報告異常情況,利于你的調(diào)試要傳播不能處理的異常
有些東西隱藏起來終究會出來禍害人的,只能將其消滅掉,消滅不了的,也要將其示之于眾,讓大家來看清楚他,消滅它吧5、提供有用的錯誤信息
不是什么丟人的事,利己利人!
七、敏捷協(xié)作
雙拳難敵四手,一個人干不過一群人的,所以團隊是一個很重要的玩意兒,團隊中不能只有一個人發(fā)揮,其他人抑制,因為那樣還是一個人,我更傾向于抑制一個人激活全隊的人,當然最好的結果是,激活所有的人,但是也有偶爾嘛,哈哈,大家的利益高于一切,在哪都是這樣的,沒啥可說的,除非你是牛人,但世界上牛人不是很多,我看還是老老實實混團隊吧。1、定期安排會面時間
當然會議的交流很重要,相互了解,相互幫助。2、架構師必須寫代碼
只有深入進去了,才能了解,了解了才能架構啊3、實行代碼集體所有制
讓開發(fā)人員輪換完成系統(tǒng)不同領域中的不同模塊的不同任務4、成為領導者
你會感到給予別人教導,也是提升自己學識的一種方式,并且其他人亦可以開始相信你可以幫助他們5、允許大家自己想辦法
用問題來回答問題,可以引導提問的人走向正確的道路
如果有人真的陷入膠著狀態(tài),就不要折磨他們了,告訴他們答案,再解釋為什么是這樣的
6、準備好后再共享代碼
自己對自己負責嘛,沒啥說的7、做代碼復查
人都是會犯錯的,相互之間做代碼復查是很好的,一起提高8、及時通報進展與問題
發(fā)布進展情況,新的想法和目前正在關注的主題,不要等著別人來問項目狀態(tài)如何了。當經(jīng)理或同事來詢問工作進展、最新設計或研究狀況的時候,不會感到頭痛。
友情提示:本文中關于《敏捷開發(fā)大會總結》給出的范例僅供您參考拓展思維使用,敏捷開發(fā)大會總結:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權問題,請聯(lián)系我們及時刪除。