敏捷,是靈丹妙藥還是又一個(gè)忽悠?
敏捷開發(fā)和敏捷測(cè)試這兩年自從從國(guó)外引進(jìn)后,在國(guó)內(nèi)很火,很多人都在談?wù)?。無(wú)論是項(xiàng)目延期,失敗,質(zhì)量低下等等,你總能聽到分析的原因是:“看看,你沒有敏捷了吧”。
所以一下子敏捷成了包治百病的靈丹妙藥。很多項(xiàng)目組公司開始學(xué)習(xí)敏捷,采用敏捷,轉(zhuǎn)向敏捷。但是遺憾的是很多人嘗試過(guò)后發(fā)現(xiàn)以前的問題并沒有被敏捷所解決掉,反而帶來(lái)了很多新的問題,于是也有人就得出結(jié)論:敏捷又是一個(gè)大忽悠。讀了很多網(wǎng)上關(guān)于敏捷的辯論,我想起一個(gè)故事:
話說(shuō)清朝的時(shí)候慈禧太后聽說(shuō)西方國(guó)家有個(gè)新的交通工具,汽車,它坐在舒服跑的很快。于是就叫人買了一輛回來(lái)。但是用的時(shí)候沒有人會(huì)開,于是不得不把汽車用幾根柱子綁起來(lái)做成了轎子,讓幾個(gè)人抬著。因?yàn)槠囂粒瑤讉€(gè)轎夫步履蹣跚,走不了幾步就得歇歇。結(jié)果以前半個(gè)時(shí)辰的路走了好幾個(gè)時(shí)辰。而且到了后因?yàn)殚T很窄,汽車做的轎子過(guò)不去,她也不得不老遠(yuǎn)就下來(lái)自己走一段。慈禧太后很不高興就得出結(jié)論:
1、汽車前期投入大,維護(hù)成本高。
2、沒有轎子走的快。
3、很多地方汽車都不適用。
4、汽車是個(gè)大忽悠的東西,根本不管用。
那么我們現(xiàn)在對(duì)敏捷的認(rèn)識(shí)是不是和慈禧對(duì)汽車的認(rèn)識(shí)類似呢?是因?yàn)槲覀儾粫?huì)用敏捷呢,還是因?yàn)槊艚菥褪莻€(gè)忽悠?
在國(guó)外通常一個(gè)概念出來(lái)之前已經(jīng)有很多年的實(shí)踐積累,然后為了大家交流方便或者提高普及度給其一個(gè)名字。所以是先有實(shí)踐,再有概念。但是在國(guó)內(nèi)正好相反,我們先把國(guó)外“先進(jìn)“的概念引進(jìn)來(lái)了而把產(chǎn)生概念的多年實(shí)踐忽略掉了。但是概念又太虛不能當(dāng)飯吃,最終還是需要具體東西和具體做法。所以不得不根據(jù)概念來(lái)設(shè)計(jì)出各種各樣的做法來(lái)。這些做法聽起來(lái)不錯(cuò),非常符合概念,但是在項(xiàng)目中一使用就不靈了,舊的問題沒有解決,新的問題一大堆。最終得出汽車是個(gè)大忽悠的結(jié)論。
敏捷和云計(jì)算是兩個(gè)非常典型的例子。很多人為了敏捷,文檔不要了,計(jì)劃不要了,測(cè)試用例也不要了,認(rèn)為幾個(gè)人站在走廊里溝通溝通就把一切都搞定了,因?yàn)槊艚萘寺?。但是問題并沒有因?yàn)?ldquo;敏捷“了而被解決掉,于是乎得出敏捷是個(gè)忽悠的結(jié)論。云計(jì)算也一樣,很多人認(rèn)為云計(jì)算就是數(shù)據(jù)中心,所以大家大興土木建立數(shù)據(jù)中心。但是建完數(shù)據(jù)中心以后呢?沒啥用處呀。那大家都在吹捧云計(jì)算,不就是個(gè)大忽悠嗎。 殊不知,人家是因?yàn)闃I(yè)務(wù)需要很多年了已有數(shù)據(jù)中心,為了提高數(shù)據(jù)中心的使用率,開始對(duì)公眾開放資源,所以才有了云計(jì)算。
先有概念再造實(shí)踐的做法違背了事物發(fā)展規(guī)律,不僅解決不了現(xiàn)有問題,而且?guī)?lái)新的問題。敏捷是個(gè)好東西,在特定情況下。我們需要搞明白的是它要解決什么問題的?它是如何解決的。而不要在乎它叫什么名字或則防止生搬硬套。還有越是先進(jìn)的東西對(duì)人和基礎(chǔ)設(shè)施的要求越高。比如飛機(jī)再好,沒有飛行員或則沒有機(jī)場(chǎng)也沒有用。高鐵跑的越快對(duì)鐵道的要求越高。
軟件測(cè)試也是一樣,做質(zhì)量控制不是為了趕時(shí)髦。如果你的項(xiàng)目只做3個(gè)月就徹底結(jié)束了,而且就3-5個(gè)人,不會(huì)有人離開也不會(huì)有人進(jìn)來(lái),也不需要和其它任何項(xiàng)目打交道,或則你的產(chǎn)品在早期實(shí)驗(yàn)階段,你可以不要文檔,不要計(jì)劃,不要記錄bug,完全靠口頭交流。否則的話:
不能沒有文檔: 但是要減少不必要的文檔,避免過(guò)于詳細(xì)的文檔,使用易于更新和維護(hù)的動(dòng)態(tài)文檔。
不能沒有計(jì)劃: 距離現(xiàn)在越遠(yuǎn)計(jì)劃越模糊,但是距離現(xiàn)在越近計(jì)劃越詳細(xì)。
不能沒有紀(jì)律:
與其在琢磨如何敏捷測(cè)試,不如一步一步把自動(dòng)化做好,把持續(xù)集成做起來(lái),創(chuàng)建更多的測(cè)試工具以提高測(cè)試效率,把質(zhì)量反饋系統(tǒng)做起來(lái),把dev提交代碼前的質(zhì)量檢查做起來(lái),把在產(chǎn)品中測(cè)試做起來(lái), 把測(cè)試工程師的素質(zhì)提高上去,。。。。
等到這些都建立起來(lái)了后,你發(fā)現(xiàn)自己其實(shí)已經(jīng)很敏捷了。