敏捷與治理 的進展現(xiàn)狀
記者:對于未來幾年敏捷開發(fā)的進展,您希望看到哪些新方向?有何建議?
程顯峰:進展方面的問題我還真不知道,還是覺得有點落后,這個還需要積存 吧,很長時間才會有一些改進,國內(nèi)技術(shù)上落后的已經(jīng)比較少了,反而是治理 上落后的非常非常多。比如Facebook的崛起,大家都看到它用的是什么技術(shù),很少有人看到Facebook在壯大的時候立馬就從e-Bay挖了一個人給他們做工程方面所有的事情,他們從很早期的時候就從e-Bay挖了一個高管去做所有工程化的東西,很早就做了,非常有遠見,這些事情很少有人知道。Facebook每年開了什么會,開發(fā)了什么框架他都知道,到了一定程度你就會發(fā)現(xiàn)它不是幾個毛頭小子一個Idea就可以進展起來的。e-Bay大概已經(jīng)有二十多年了,其實是經(jīng)驗w非常豐富的人去做這個事情,并不是一個Idea就能行的,現(xiàn)在好像不太注重這個方面。
其實在美國都是由非常資深的人去做工程化的,而且這個市場還是比較穩(wěn)定的,真正去做這些東西的人還有一個相對比較穩(wěn)定的流動環(huán)境,不會是從哪里突然冒出一個人就能做這些事情,或者是憑一個Idea就可以做的。
記者:微軟就有自己的工程研究院和微軟研究院,也是不一樣的。
程顯峰:其實從開發(fā)的各種東西來說,類似微軟、蘋果、谷歌這些大公司,他們在工程治理 上都有很多非常有經(jīng)驗的人,但是這些人在國內(nèi)往往不講這些。比如原來谷歌測試的負責人段念就是講測試方面的略微 多一些,那個屬于工程化的一部分,你就可以看到一些,多半也是做類似的工作,實際上他是一個非常有經(jīng)驗的做工程化的人。
記者:主要還是國內(nèi)治理 上的問題。
程顯峰:對,軟件研發(fā)的治理 落后的不是一點半點,國內(nèi)那種落后的方式跟美國六七十年代有得一拼,其實現(xiàn)實就是這樣,尤其是互聯(lián)網(wǎng)公司還覺得自己是什么高科技,其實工程治理 的水平差得一塌糊涂,但是不是壟斷高額利潤,如果是從一個軟件公司的角度去衡量的話,那個研究體系簡直是一塌糊涂。
記者:其實從工程化的角度也會影響本身推出產(chǎn)品的效率或質(zhì)量。
程顯峰:其實工程化是一種內(nèi)功,為什么IBM誰打他都不太怕?內(nèi)功非常深厚體現(xiàn)在幾個方面。
記者:IBM也比較開源。
程顯峰:它的內(nèi)功深厚也是有各種方面,首先就是知識產(chǎn)權(quán)方面保護得特別好,專利大戶一直 都是第一,第二就是在基礎(chǔ)研究各個方面,工程化的思想,好多軟件工程的思想,包括(41:20)都是在開發(fā)360的時候研究出來的,好多軟件工程的方法,他們也很注重敏捷的一些東西。這就衍生了一個問題,為什么抄IBM的人都很慘、都死掉了呢?因為內(nèi)功不夠。IBM的治理 方法非常重型,輕型的公司想抄都死掉了,為什么?因為你根本無法調(diào)動那么多的資源駕馭那么重型的方法,你的內(nèi)功不行,就是這樣。IBM原來那個Case版本操縱 系統(tǒng)使用起來多負責啊,最后用的大部分都是電信系統(tǒng),就是跟它有相同內(nèi)功級別的人。他的客戶都是金融、能源方面的,要是小公司用IBM做咨詢,即便是你付得起錢也實施不下來。
記者:實施下來也達不到那種業(yè)務規(guī)模。
程顯峰:我是覺得軟件業(yè)的進展還是應該從基礎(chǔ)做起,實實在在地把軟件做好,不要過分地強調(diào)那些概念,好多人都是想解決別人的問題,每年實施的過程當中尤其要注意,作為一個團隊的Leader,你最清楚的是團隊自身的問題,你也最容易解決團隊自身的問題,要是每天都解決自身的問題的話一定是個特別好的教練,根據(jù)不需要去搭理別人,可以借鑒別人的方法,看別人是怎么借鑒類似的問題,但是一定要著眼解決自身的問題,他們解決的都是別人的問題,比如看到別人的溝通方法就覺得自己的團隊溝通有問題,實際上你就是三個人,你有什么溝通問題?根本就不存在。
記者:聽你這樣說,敏捷并不是一個特別有別于傳統(tǒng)開發(fā)流程、軟件開發(fā)工程的方法,只是在里面加入了一些治理 的理念,能夠把工程化和治理 結(jié)合起來,可能就是一種敏捷。
程顯峰:軟件行業(yè)的治理 方法主要來自于兩個途徑,六七十年代的時候大體上是借鑒建筑行業(yè)的系統(tǒng)化治理 方法,主要是需求治理 、建筑治理 方面的東西,另一次改進就是在九十年代后期,由于豐田在制造業(yè)上的改進,就是精益方法,主要的改造就是發(fā)現(xiàn)問題及時生產(chǎn)及時交付,所有迭代周期方面的東西。軟件行業(yè)主要的來源就是制造業(yè),實際上他們也不能太超越這兩種。我就覺得現(xiàn)在老是想標榜自己跟別人不同,反而是把自己給害了,那些方法實際上會在那些產(chǎn)業(yè)里實施得更好。
你看《精益軟件開發(fā)藝術(shù)》那本書,寫得特別好,那是波音的一個家伙開發(fā)的,因為波音在制造業(yè)生產(chǎn)的時候用了這種方法,他在波音的軟件部門,借鑒了波音的生產(chǎn),然后再去用精益的思想改造,實際上都是借鑒其它傳統(tǒng)行業(yè)的。傳統(tǒng)軟件的方法主要是建筑業(yè)的,建筑業(yè)和制造業(yè)都是比較成熟的,他們也會互相借鑒,借鑒最后的結(jié)果其實是發(fā)現(xiàn)方法和方法之間的差別沒有想像的那么大,可能只是流派之分而已。比如大家都注重的版本操縱 、質(zhì)量治理 ,整個周期治理 這些東西,哪個沒有呢?而且具體的操作方法大家都可以借鑒,你敏捷比較推舉 的版本操縱 ,實施到傳統(tǒng)軟件當中可不可以?也可以的,實際上并沒有那么不同。這是一種商業(yè)策略,就是非黑即白,不是那樣子的,其實大家真正在玩的時候就會覺得他們是可以有很多互通的,大家也可以互相借鑒,而且兩種方法都在成長,這就跟武俠小說里的江湖差不多,大家都是為了各自的勢力劃分出來,他們就是邪教,我們就是明門正派。
其實那兩個人討論的就是一個風花雪月的問題,完全沒有必要分什么派別,大家討論的就是一個質(zhì)量操縱 的問題,敏捷也可以用,傳統(tǒng)也可以用,根本沒有必要說這個就是屬于誰的,但是這種實踐的東西多起來之后就會發(fā)現(xiàn)越來越多的共同之處。
記者:最后就會發(fā)現(xiàn)自己在實踐的過程中總結(jié)一套結(jié)合了傳統(tǒng)和敏捷的方法。
程顯峰:肯定的,我覺得比較負責、比較講究實際的人都會結(jié)合自己這些東西去實施的,敏捷方面有個非常重要的東西,要是按照書本上實施的話肯定不是敏捷,最重要的就是裁減,你要按照自己的東西來裁減,包括傳統(tǒng)的軟件研發(fā)人員那一套也有裁減,只是很多人都不知道。傳統(tǒng)的軟件研發(fā)雖然很重,但是會按照自己的需求去裁減,要是完全按照那種東西就會死得很慘,所以你要實施一套流程的時候第一件事情就是裁減,要把它裁成合適的部分,包括電信企業(yè)里面實施的東西都是經(jīng)過裁減的。
原來我的一個同事是在Arktail做的,他們在項目實施的時候首先就是要看Arktail有標準的研發(fā)流程,弄下來一份之后再裁減,就說這個我們不要了,那個我們不要了,要是按照標準化他們也受不了,肯定不行,包括傳統(tǒng)的實施。比如你就在一個豬圈,非得按照摩天大樓的質(zhì)空標準去做,肯定不行,雖然都是建筑,但是不符合實際,所以最重要的就是符合實際產(chǎn)生效果,拿給老板也好說好看。
記者:那種大型的軟件,比較像傳統(tǒng)的,他們之間也有軟件開發(fā)的部分嗎?
程顯峰:肯定會的,工程實踐現(xiàn)在已經(jīng)借鑒了很多,包括版本操縱 一般都是集中式的,現(xiàn)在大家對分布式的都會比較傾向,甚至是說公布流程,這些東西無所謂誰都可以用,比如傳統(tǒng)上的需求治理 軟件、Bug跟蹤系統(tǒng)敏捷也在用,敏捷也有這些東西,你也需要跟蹤Bug,你也需要有針對性地上線打包,這些東西都有。
記者:所以只要技術(shù)能力強,跟敏捷沒有多大關(guān)系,都是在創(chuàng)業(yè)團隊里用敏捷的比較多。
程顯峰:是這樣的,大家為什么要用敏捷?很多都是創(chuàng)業(yè)小團隊偷懶的行為,因為他實施不了那種重型的,也沒有實施的經(jīng)驗。其實實施規(guī)范化的還是相對較少,他們覺得這個東西能夠玩轉(zhuǎn)才這么做的,而不是真正考察過,做了一個比較公正的技術(shù)選型,比如傳統(tǒng)上我們會得93分,用了敏捷會得94分,根據(jù)沒有數(shù)據(jù),就是自己想的,那種我們能不能玩得了?玩不了,這種我們能不能玩?差不多,實際上差得挺多的。因為敏捷強調(diào)的是不同,不同的東西又很少,所以大家就會覺得很容易,其實相同的部分也很大。其實國內(nèi)真正好的測試團隊簡直鳳毛麟角,能玩得起測試的鳳毛麟角,能把公布上線流程做好的也很少,這兩個都做好了,我覺得你是敏捷還是傳統(tǒng)都已經(jīng)不重要了,這些對你才是實實在在的東西,對于質(zhì)量、對于產(chǎn)品都是非常有益處的東西,至于長什么樣子已經(jīng)不重要了,關(guān)鍵是對你是否有好處。
大家現(xiàn)在都是有點炒概念,不講實惠,我是比較講實惠的,這些東西好不好我很快就能知道,所以我要的是實惠。我向老板匯報的時候也是這樣,老板不看這些概念,他也不懂,創(chuàng)業(yè)的人是Idea出身,炒個概念會很好看,也會很好賣,但是大家現(xiàn)在都知道了,也不見得好賣。
記者:你們現(xiàn)在關(guān)注團隊的開發(fā)室,是從哪個方面去看這個問題?
程顯峰:是看什么?
記者:就是和敏捷相關(guān)的,主要是關(guān)注別人的經(jīng)驗嗎?還是整套流程?我想了解你們這些團隊和程序員上網(wǎng)關(guān)注的問題,主要是哪個方面的問題?
程顯峰:是什么樣的問題?
記者:敏捷方面的問題。
程顯峰:我個人比較關(guān)注的就是發(fā)現(xiàn)問題的方法,比如傳統(tǒng)的東西,包括制造業(yè)的那些治理 方法我也都會看一些,還有《關(guān)鍵目標》的那套東西,主要是強調(diào)治理 的,各種各樣的治理 思想都能啟發(fā)你,實際上并不需要看特別針對軟件行業(yè)的東西,要看軟件行業(yè)里的東西。
我一般比較情愿 看失敗的案例,就是類似《完美軟件》那種常見的錯誤,比如程序員善于溝通,最后發(fā)現(xiàn)不是自己的錯誤。人家在七十年代的時候已經(jīng)把這些總結(jié)得特別好了,你會發(fā)現(xiàn)過了四十年還是那些問題,你就看那些老的書就會發(fā)現(xiàn)這些問題已經(jīng)存在相當長的時間了,完全沒有什么新奇感。里面刻畫的東西都是一樣的,具體的問題還是很一樣的,可能百分之九十的問題都是書上寫過的,不會有太大的差異,只是人不一樣、環(huán)境也不一樣,問題還是差不多的。比如注重質(zhì)量、需求發(fā)散,這些問題都是非常常見的。
記者:看來還是比較大塊的問題,而且也不是軟件行業(yè)專有的,各個行業(yè)其實都有這樣的問題。
程顯峰:但是你看軟件行業(yè)的大師以前寫過這些話就會覺得挺有意思的,當然,你還可以借鑒一些制造業(yè)的,我覺得都會幫助很大。
記者:還有治理 方面的,只要是這個行業(yè)的都適用。
程顯峰:其實這個點應該也差不多,我看騰訊的榮昊也做軟件治理 ,他也是什么治理 方面的書都看了。如果光看這個方面的話,因為都是需要互相借鑒的,要是想做得比較好的話還是需要看很多東西。確實有些東西大家都太強調(diào)了,軟件行業(yè)的人都特別喜歡強調(diào)個性,其實治理 的方法通用性還是比較高的。你看德魯克寫的那些書,每一條都是挺實在的。你不能通過打他,罵他提高他的產(chǎn)量,如果有一堆的人需要提高產(chǎn)量就會很頭疼。