天天看點

網際網路公司的很多“模組化體會”沒有價值

Part1 為什麼網際網路公司的很多“模組化體會”沒有價值

在講正式的内容之前,我先講一個小故事。有一天,張三喝酒喝得半醉去買彩票,結果一開獎,中獎兩個億。大家請張三上台介紹中獎經驗,張三介紹“我那天喝酒喝得半醉去買彩票就中獎了”,台下聽講的彩民紛紛去喝酒喝得半醉買彩票,以為這樣就能中大獎。顯而易見,這個結論是荒謬的。

這個故事背後反映的就是我們常見的一種邏輯錯誤,把并存當成因果,張三喝醉是事實,中大獎也是事實,但不能是以就推導出因為喝醉是以中獎。張三之是以能中大獎,背後肯定有原因,隻不過這個原因很複雜,屬于“上帝算法”,人類目前還算不清楚(否則借來算一下明天雙色球多好),但應該不能簡單歸因為喝醉了酒。

這種把并存當成因果的邏輯錯誤是很常見的,隻不過很多時候看起來沒有張三中獎這個事情錯得那麼明顯。像球賽裡面就很多。兩支球隊激烈搏殺,比如說利物浦對曼城,最終利物浦一球小勝,為什麼利物浦能赢球,原因就是球員、技術、戰術的問題,克洛普或者瓜迪奧拉心裡可能是清楚的,哪個環節做對了或者搞砸了,導緻赢了或輸了,但這些太複雜了,球迷未必弄得懂,他就會從一些自己弄得懂的地方找原因,比如球員球衣的顔色,教練穿什麼内褲,球員在更衣室裡是站着開會還是坐着開會,球員是不是結對洗澡等等地方找原因。

網際網路公司的很多“模組化體會”沒有價值

其他廣為流傳的,還有比爾蓋茨退學是以成了世界首富,馬雲沒考上清華北大是以成中國首富,王思聰喜歡玩遊戲,是以年紀輕輕就有幾十億資産,新冠肺炎的患者喝了雙黃連就好了,有了中醫我們的老祖先才能活下來,等等等等。

軟體開發裡面也有的了,程式員穿女裝,bug就少。

網際網路公司的很多“模組化體會”沒有價值

那麼,上面這些和我們這次講的題目有什麼關系呢?

這麼多年以來,很多朋友都向我反映過這樣一種觀點:模組化對網際網路公司沒用。這些朋友很多就在網際網路公司工作,他們确實體會到在他們所在的公司裡面,根本就沒有什麼模組化,都是拍腦袋直接編碼,當然了,它号稱靈活試錯。他不是說不用UML,如果說不用UML,用别的方式來模組化那還好說,他說的就是根本不專門花時間去想我們講的業務模組化、需求、分析的事情,直接就上。而且,有的公司還成功地活下來并且發展壯大了。這是怎麼一回事呢?

還有另外一個現象也加強了這種看法。這十幾年來,網際網路公司的開發人員霸占了各種技術大會的講台。經常有這樣過的場景,一個網際網路公司的開發人員在台上講他們怎麼開發自己家的網站的,講了一個多小時,當然,很多還是真實的了。台下的聽衆一聽,這TM不就是瞎搞,不就是以前常說的作坊式開發嘛!當然了,演講者自稱叫靈活開發了。但不服不行,人家公司在美國上市了,圈了好多錢,而且現在開始盈利了!台下有的聽衆是研發總監之類的,公司做電力軟體、稅務軟體等等,就開始反思了,人家“瞎搞”,賺這麼多,我們又講什麼規範,講什麼模組化,一年辛辛苦苦就賺這麼點,不行,要向他們學習,回去馬上引進網際網路和靈活思維,把我們的研發流程網際網路化、靈活化!

有的公司真的這樣搞了,結果搞出爛攤子來,後來又來找我,潘老師,我們還是得把模組化這些東西重新撿起來。

這些體會背後的邏輯錯誤就是前面所說的:把并存當作因果。“瞎搞”是事實,“成功”也是事實,但不能得出結論“因為瞎搞,是以成功”、“隻要瞎搞,就能成功”或者“隻有瞎搞,才能成功”。很可能該網際網路公司的背景、人脈以及燒的錢才是公司成功的原因,至于公司裡的軟體開發團隊采用什麼開發方法,是站着、坐着、躺着還是倒立着開發,都不是主要影響因素,但是我們的開發人員就巧妙地把并存轉成了因果,我簡單粗暴,我賺錢,是以,要想賺錢就簡單粗暴。

有一個系統,我們用了快10年了,忠誠度特别高,比蘋果那些果粉可能還高,就算他做的不好,我們還是邊罵邊用,忠誠度特别高,哪個?12306啊。到底用了什麼開發方法和開發平台,能做出這麼棒的網站?可惜,他們的研發負責人似乎比較低調,很少出來攬功,因為他們知道自己的貢獻占多少比例。類似的還有中共中央紀委和國家監委的網站,通路量也很大,他們的研發負責人也很低調。

有些網際網路公司的開發人員就沒那麼客氣了,就按照上面說的那個把并存當因果的套路,往自己臉上貼金——類似于“我們網站很成功,我們網站用PHP開發,是以PHP是最好的語言。”

還有一些人總是拿微信說事,微信怎麼開發的,微信開發團隊是怎麼幹的,以為學了這個就成功了。微信的成功後面有騰訊的資源。功能和微信一模一樣好幾個競争對手,小米的米聊比微信還早,阿裡、網易難道沒錢嗎,搞的來往、易信也沒人用。

這樣的混淆,在軟體開發行業并不是新鮮事,這一套很多年前傳統企業人員早幹過了。上個世紀,很多企業做資訊化改進的時候就受到很大阻力,反對的聲音說什麼呢,說:我們企業成立那麼多年一直這麼幹,不也一直在發展在賺錢嘛”。這就是把并存當因果。沒有做資訊化改進和賺錢是并存的,但之是以賺錢,是因為背後的某些背景,了解改革開放初期曆史的同學可能知道“雙軌制”、“官倒”這些詞,以前某些官員的親戚辦公司賺錢實在太容易了。如果這個權力帶來的好處能一直很爽地吃下去,一直“這麼幹”或者“站着幹”“倒立着幹”“靈活着幹”都可以的,資訊化改進不改進無所謂的。之是以要改進,就是因為紅利不能老吃下去了。

前面啰嗦了那麼多,說的就是一些網際網路開發人員介紹的所謂開發經驗和體會并沒有多少參考價值,那什麼樣的人介紹的經驗和體會是有價值的呢,我們下一部分再說。

Part2 什麼樣的“模組化體會”是可信的

上一個節目我說到了網際網路很多模組化的體會沒有價值,沒有多少參考價值,那什麼樣的人介紹的經驗和體會是有價值的呢,如果這個人開發的軟體是以核心域邏輯作為主要的競争要素,那麼他關于模組化方面的經驗和體會是可以考慮借鑒的。通俗一點說,就是靠功能和對手競争的系統。

網際網路興起之前的很多系統,和現在的很多行業領袖就是這樣的系統。

上個世紀末的時候,我們的軟體的競争主要就是靠功能。我就說一下我自己的經曆吧,我1997年畢業,先到學校當了一年老師,然後才去軟體公司做程式員。第一個做的系統是酒店管理系統,當然,上面有上司帶着,我隻是打下手。這樣的系統用的人不多,伺服器一台,每個部門放上一台用戶端電腦就差不多了,但功能很多啊,辦入住、收銀、客房,餐飲、娛樂、财務、電話計費、各種報表等等。這樣的系統,能不能用模組化技能把邏輯理清楚就很關鍵,否則要做出來就很費勁了。

後來,網際網路的興起就帶來了一種這樣的系統,把一些邏輯簡單的功能搬到網際網路上,讓很多人來使用,一般都是免費的。典型的例子是hotmail,一年多時間就有1200萬的使用者,然後被微軟收購。hotmail是什麼,就是個免費郵箱,很多人都會做,問題是會做沒用,競争的關鍵在于有沒有錢買伺服器,有沒有錢推廣。通俗一點說就是從重功能,到功能簡單,互相比性能。

網際網路公司的很多“模組化體會”沒有價值

很多開發人員就進入了這樣的公司,然後工作的重點不是思考系統背後的領域邏輯,而是如何在大使用者量的時候保持性能。前些年在一些軟體開發技術大會常可以看到這樣的場景:一個電子商務網站的架構師上台講了一通,接着一個視訊網站的架構師上台也講了一通,結果,兩個人講的内容都差不多,都是說通路量大的時候怎麼辦,也就是說,他們講的都是自己系統中非核心域的知識,根本不涉及核心域的知識。為什麼不講呢,比如說電商網站的架構師講電商領域的邏輯,視訊網站的架構師講視訊領域的邏輯,原因要麼是邏輯太簡單,要麼是對自己所開發系統的核心域研究太淺。

不過,随着網際網路跑馬圈地的結束,網際網路公司逐漸變成了行業巨頭,比如京東是大商場、大物流公司,新浪是媒體,攜程是旅遊公司等等。另外,各個行業巨頭也紛紛稱為所謂的網際網路公司。當所有組織都是網際網路組織的時候,“網際網路公司”的稱呼也就沒有意義了。事實上,我們的很多客戶都是網際網路的領袖企業。

說了那麼些,總結來說就是如果是靠拼内功、拼對領域的挖掘作為主要的競争手段,那麼這樣的人介紹的模組化體會和經驗是有參考價值的。以現在2020年這個時間點來看,各個行業裡面的隐形冠軍公司符合這個特征,已經從“網際網路公司”這樣膚淺的稱呼脫離出來,變成了行業領袖的公司,也符合這個特征。反過來說也是可以的,如果公司還是以“我是做網際網路的”來包裝自己,那就屬于比較膚淺的階段,就沒什麼參考價值。

當然,這個說話的人要占據比較重要的位置,不能說我在某某行業領袖公司裡工作,我就不想模組化的事情,結果是在公司裡面做的是最末端的工作,這樣的體會就沒有價值了。

繼續閱讀