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