我一直的觀點是要對“難”做一點分解。
好比說航空母艦的彈射器,我們造不出來,很“難”與一台機器有一千個螺絲要擰,保證3年中所有螺絲都擰對了,很“難”,
這兩種情境下“難”的含義是不同的。
軟體開發的難度更多的類似於後者,表現為繁雜,而不是類似於前者表現為“搞不定”或“做不出來”。
總是有人喜歡把問題絕對化,所以這裡補充一句,軟體涵蓋的範疇可以很廣,因此確實有很難搞定的,類似於彈射器的領域,但應該不是主流。
以前的很多提法,在這樣一種大前提下就變的沒有什麼意義了,比如說:國產作業系統。
當很多公司或組織標榜這類事情的時候,似乎自己更願意認為這是一種技術突破。
但實際上在開源如此發達的今天,這類東西的開發更需要的是組織和市場運作,而非是突破技術屏障。
由這一點可以推匯出一個很有趣的結論:
既然不體現為一種“搞不定”或“做不出來”式的難度,那麼一幫智商水平並不是非常高的人(或者說並不絕對優秀的人),
老老實實把程式碼檢閱,靜態測試,單元測試這些環節做好,一樣能做出不錯的產品(當然很那輝煌燦爛)。
反過來講就是,在大多數產品開發中,天才是有協助的,但不是絕對必要的。
這點與這樣一個事實相符:軟體開發的隊伍似乎更加雜牌,什麼專業的都有。
這事兒逆轉過來就不成立。
一個人可以以前是做渦輪機的,中途能夠轉行做軟體開發。
但做了軟體開發的,就很難去做渦輪機。
如果進一步推導,就會發現這一點對考慮個人成長也很有意義。
單反類相機,鏡頭很難搞,所以介入壁壘比較高,最終導致做單反的就比較賺錢。
電視機這東西,大家都能做,所以介入壁壘比較低,最終導致當初很牛的一些做電視的公司都虧損。
軟體開發中,如果“只有你能搞定,別人不太容易搞定”的事情比較少,那麼人員的可替換性就強,
稀缺性就不好,從價值上來看,就不太容易保值。
反過來講,就是每個人如果想保持一種長久的價值,都要找到屬於自己的一塊“價值高地”。
軟體可以依附到很多東西上,比如金融,財務,電商等等。因此“價值高地”還是有一些的。
可以是某個公司專屬的東西,可以是某些專業知識(如:財務等),諸如此類。