敏捷不是過(guò)程
經(jīng)常聽(tīng)到有人說(shuō)我們采用敏捷開(kāi)發(fā)過(guò)程,我自己原來(lái)也這么說(shuō),但經(jīng)過(guò)做幾年的項目,我突然意識到敏捷不是過(guò)程。好像敏捷的那些之“父”也沒(méi)有說(shuō)過(guò)敏捷是一種過(guò)程。我們拿它來(lái)和瀑布模型,V模型來(lái)比較是沒(méi)有意義的?催^(guò)敏捷宣言的人,都知道他只提到了四大主題思想和十二項原則
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
我發(fā)現提出敏捷的那幫人,真是太聰明了,他們沒(méi)有提出一個(gè)具體的過(guò)程,因為是過(guò)程都不是銀彈,都只能解決一些特定領(lǐng)域的項目,或者是某一過(guò)程只是更擅長(cháng)解決某一類(lèi)型的項目。但是,思想這東西可不一樣,就像我們每個(gè)人都知道有 “態(tài)度決定一切”這個(gè)帽子。尤其適合我們中國人,大部分都是如果我好好做,我一定會(huì )想辦法做好,不好好做,我也讓你找不出毛病。很多 “老油條”做工作,分的非常清,到領(lǐng)導那里是 “進(jìn)可功,退可守,關(guān)鍵時(shí)候能轉手”。這樣的人,我的建議是不用,想想,你和你老婆把事情分的那么清,那能感情好嗎?一個(gè)沒(méi)有感情的團體能有多大的產(chǎn)出呢?所以,我一直說(shuō),項目管理有時(shí)就是幫大家建立感情,大家不但要有共同的目標,而且要有共同的指導思想。
所以,我說(shuō),敏捷提出了一個(gè)正確思想,讓大家有共同的語(yǔ)言,有人說(shuō)敏捷宣言,其實(shí)就是廢話(huà)。實(shí)際上大凡能夠得到很多人認可的事情,就是很明顯的事,這樣大家才容易理解。大家認為是“廢話(huà)”,認為本來(lái)這樣的嘛,還用你說(shuō),這是不一樣的,首先說(shuō)明大家承認這個(gè)“廢話(huà)”是對的,只要是都認為是對,接下來(lái)繼續討論的意義就有了。
做了這么多年的項目,我對敏捷不是過(guò)程更堅定了,因為我之前做過(guò)的項目,用的是瀑布過(guò)程,同樣成功了,那是為什么呢?因為瀑布有適合瀑布的場(chǎng)景。而且從我知道敏捷到實(shí)踐敏捷這近三年的時(shí)間里,我越來(lái)越發(fā)現,如果我把敏捷的思想,至少是部分的思想用到之前的瀑布過(guò)程中,那一定是一件“很爽”的事情,我說(shuō)的“很爽”可能你用了敏捷一段時(shí)間后也能體會(huì )到。比如:自動(dòng)集成,單元測試,客戶(hù)盡早參與等等。我實(shí)在不想談具體的辦法,因為那樣來(lái)論證“敏捷不是過(guò)程”這個(gè)標題就庸俗了,因為你一定可以找到我說(shuō)話(huà)的疼點(diǎn)。
很多人說(shuō),我沒(méi)有推行“敏捷”,我項目用的是XX過(guò)程,我也成功了,我們也都很爽,我想說(shuō)的是你可能就是把敏捷當過(guò)程了次這么說(shuō),實(shí)際上你已經(jīng)接近或者使用的正是我所說(shuō)的敏捷,只是你不好意思承認罷了, :), 算了,嗯啊,你要還是不承認的話(huà),你就承認你找到了“銀彈吧”。
SCRUM只是框架
SCRUM這個(gè)東西,要想知道那幾個(gè)名詞,太easy了,backlog, sprint, user story等等,這些東西你用一天時(shí)間就看完了,隨便在網(wǎng)上搜搜就明白了,還不明白,看看《scrum-xp-from-the-trenches》或者查查《scrum checklist》,你很快就會(huì )明白了。然后,你要是認為scrum就是那幾根毛,我靠,SCRUM一定笑了。
所以,我這個(gè)標題就是SCRUM只是框架,他只是從管理上來(lái)看項目的,也就是如果,你只告訴大家“累堆子安的磚頭們(ladies and gentleman),告訴大家一個(gè)好消息,我發(fā)現了一個(gè)叫SCRUM的東西,今天我們來(lái)一,二,三,向前,向前…” 我想說(shuō)的是,你可能調到水里連響聲都沒(méi)有。
SCRUM只是個(gè)框架,框架這個(gè)東西,做開(kāi)發(fā)的人都知道,那他是以不變應萬(wàn)變的東西,他是不可能包括你的所有的“上層”應用的,如果這樣,沒(méi)幾個(gè)人會(huì )喜歡這個(gè)框架的,指定幾個(gè)規則,怎么“打拳”,那是需要隨機應變的,說(shuō)通俗點(diǎn),就是這個(gè)是要根據context來(lái)調整的。
比如,sprint是多長(cháng),每周工作40小時(shí),需要成以0.75還是0.5,那是要看具體團隊的情況,每個(gè)user story需要多少時(shí)間,多少個(gè)點(diǎn),這個(gè)水是很深的,不信, 看看《人月神話(huà)》。
總結一下,SCRUM只是一個(gè)框架,是站在管理層或者用戶(hù)層的,不要強制從上向下推,每一個(gè)scrum里的內容,需要經(jīng)過(guò)“實(shí)踐--反思--實(shí)踐--反思”這個(gè)過(guò)程的。
XP也是別人的實(shí)踐
XP是很好的實(shí)踐,但是我們要知道,這些實(shí)踐來(lái)自于那些技術(shù)高手們,在項目里我們不是那些高手,我們甚至找不到那樣一個(gè)高手,所以,我們千萬(wàn)別照搬所有的XP實(shí)踐,降龍十八掌學(xué)完十八式,那是要有慧根的。
比如結對編程,你有很好的理解嗎?如果沒(méi)有,那就還是別大規模的使用,先找兩個(gè)人試試吧。
比如TDD,單元測試都寫(xiě)不好,設計代碼的根本沒(méi)法寫(xiě)單元測試,就想推行TDD?是測試驅動(dòng)開(kāi)發(fā)還是測試驅動(dòng)設計清楚嗎?
當然,說(shuō)了這些不是說(shuō)是別人的實(shí)踐,你就不能用了,我要說(shuō)的是恰恰是別人的實(shí)踐,我們要用,問(wèn)題就是我們要變成自己的實(shí)踐,行不行,先試試吧
下面是我的實(shí)踐,當然對你可是“別人的實(shí)踐”,僅供參考,切勿照搬
a.共享信息空間,中文還是沒(méi)有英文好表達,Informative Workspace
b.坐在一起
c. 站立會(huì )議
d. 版本控制
e. 持續集成
f. 集體代碼所有權
g. 簡(jiǎn)單設計
h. 重構
等等。
不同于SCRUM, XP是注重自底向上的,就是先關(guān)心的是程序員。這也是我最推崇的一種方式,程序員的問(wèn)題解決了,推行SCRUM那就是易于反掌的事了。因為推不推行SCRUM已經(jīng)是不重要的事的。因為你SCRUM需要的東西,我程序員都能做到,相反,程序員每天工作出現很多困擾,談管理也只是一句“空中的話(huà)”了。
那么該如何做呢? 就是:我們擁護敏捷的思想,采用SCRUM的框架,再加上實(shí)踐XP的一些好的實(shí)踐,堅定不移的走我們自己的路,讓別人去說(shuō)吧。一小部分人先敏捷起來(lái),帶動(dòng)后一部分人一起XP吧。
最后,申明一點(diǎn),信敏捷,則敏捷則靈,不信,也別強求吧。但是,春哥,你一定要信,因為“信春哥,得永生”。當然,水哥,你也是要信,因為“上善若水”嘛。你們可以不同意我的觀(guān)點(diǎn),但請誓死捍衛我說(shuō)話(huà)的權利。
作者: 王德水 出處:http://www.cnblogs.com/cnblogsfans
版權:本文版權歸作者和博客園共有 轉載:歡迎轉載,為了保存作者的創(chuàng )作熱情,請按要求【轉載】,謝謝
要求:未經(jīng)作者同意,必須保留此段聲明;必須在文章中給出原文連接;否則必究法律責任
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/