04.30 被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

欠下的

總該還

差評君最近想買個新電視。這樣才能配得上我的 PS4 Pro 的 4K HDR 遊戲畫質。

但是我想了半年了。。。

為啥呢?

因為每個月,還了信用卡以後,就發現賺的錢不見了。。。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

這種程度的債務帶來的痛苦,想必很多人都體會過,更別提那些貸款創業然後公司運營不善的老闆們了。。。

但是,你有沒有聽說過另一種形式的債,會讓程序員和科技公司抓狂。

這種債務,欠的不是錢,但是值不少錢。

它叫技術債。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

技術債的意思是就是做技術開發的時候欠下的債。

不過這麼解釋好像等於沒說。。。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

差評君還是舉個例子吧。

假設差評君想要搬運一堆石頭,但是身為一個優雅的人,不願意徒手去幹這活兒。( 放在軟件開發裡,往往是因為需求不適合人來做 )

於是叫了一幫開發弟兄們,來給我解決一下這個問題。

小黑胖覺得可以做個推車,大家也認同這個方案,於是就這麼定了。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

( 靈魂畫手差評君的新系列 )

於是,世超做輪子,小黑胖做車身,小二做纖繩。

這個過程,和技術開發類似,大家分頭做一個個功能,然後組合。

差評君呢?

做老大的自然要在旁邊看著才叫老大嘛。。。

讓我們假設當時技術比較落後,沒有辦法生產比較圓的東西,或者說輪子在這之前都沒被髮明過,大家也不知道該做成圓的還是方的,就用方的輪子了。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

顛著顛著也還能用。。。

於是就這麼湊合著了。

例子裡場景比較荒唐,但在早期技術開發的時候,確實有因為技術受限做不出完美方案的情況出現,只好給某個部分做妥協。( 也有可能是設計的時候沒想到,或者是讓項目儘快完成 )

車子造好了,大家費了很大的勁,開始裝石頭進去。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

拖著拖著,發現這輪子不光會顛,碰到軟的地面還會陷進去,總而言之用是能用,但是不好用。

這時候,負責開發輪子的世超拿著兩個圓形的東西跑過來,說找到更好的輪子了!

但是,裝上輪子需要停下手頭的活兒,並且還得拆裝小車,這些事兒都要費很多功夫,更何況萬一這新輪子的軸不搭還得重做呢。。。

在現實的技術開發中,這個所謂 “ 換輪子 ” 需要費的精力和金錢往往是很驚人的,因此很多時候會選擇妥協地用著不太完美的方案。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

咱們決定繼續用方輪子的方案。

但速度不快的確是個問題,於是決定給小車做一次升級:給它安個推進器。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

但這麼搞發現效果不太好,因為速度太快,方輪子磕地面會越發劇烈。

這個本來很棒的升級方案,因為之前的一次妥協,變得不太好了。

但好在能勉強解決,就是把推進器做成斜向上的,這樣小車就會稍微往上彈起,輪子變得不太容易磕地面了。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

現實中,一個技術產品需要往後迭代,增加功能時,有時候會受老功能裡不太完美的代碼的影響,為了解決它往往需要在做新功能時也妥協一部分。

然後,因為推進器的設計,又有新的問題出現了。

因為這麼移動時,需要稍稍的 “ 蹦 ” 起來一些,導致這個小車太晃了,於是咱又不得不給小車加個蓋子防止石頭掉出來。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

這就不光是妥協的問題了,我們甚至需要做一些工作,專門去維護因為妥協而造成的問題。

隨後,因為蓋子的問題,咱們得做釦子不讓蓋子亂跑,輪子老磕地面還容易壞,石頭晃來晃去也讓車子很不穩定,

總而言之問題越來越多,補都補不過來。

最後,咱們終於覺得換個輪子的重要性不可忽視了,但是這時候再看看,拆了重做的工作量更多了。

以上,大概就是欠下技術債的樣子了。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

為什麼要說它是債呢?

因為真的很形象:

一開始,我們用方形輪子這種糟糕的設計時,就好像是欠下了一筆債。

而一旦小車運行起來以後,要還債就得付出停車和修改的代價,這多付的地方就是利息了。。。

再然後,當我們想要升級的時候,因為方輪子的關係,花了額外的時間精力去解決推進器適配問題,還做了妥協,這就好比是再欠一筆來填原來的利息。

因為推進器也做了妥協,產生出了新的問題,利滾利了。。。

這時候終於忍不住想換輪子,想還債了,回頭看看,發現債務和利息加起來變得非常恐怖。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

在技術開發領域,這些利息可能是:

本來添加個很簡單的新功能,但是卻花很大功夫來磨合原有的項目。

一些怎麼都搞不定的錯誤,甚至得專門花時間金錢來處理

而還債呢:

當一個項目在原有基礎上添了很多東西以後,你要 “ 還債 ” 幾乎等於重做。

這就好比你造大樓,地基打歪了,你再想修的話得把上面的建築一起敲了再搞。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

這個時候,你說還吧,太昂貴了。。。

你想想,現在程序員工資這麼高,工作內容卻是讓他們把原來的東西重新寫一遍,你說昂貴不昂貴?

不還呢,哪天利息滾到你想錘蛋自盡。。。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

這種例子在各位熟悉的大型科技公司身上很常見。

比如說微軟,當年給他們的開發工具 Visual Studio 做了個網絡服務 Visual Studio Online,但因為以前的系統設計失誤,讓他們這個新功能宕機了 7 個小時。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

Facebook 也有個技術債經歷。

瞭解開發的差友們可能知道,Facebook 是用 PHP 語言寫的。

他們當年就有這樣一筆寫在在 PHP 代碼裡的技術債,滾到根本還不起了。

所以乾脆發明了一個虛擬機,叫 HHVM,因為他們最後發現修復那個漏洞的成本還不如發明另一套新工具。。。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產

現在,你理解技術債有多麻煩了吧?

更麻煩的是,它有一點和貸款不一樣,就是很多時候直到問題出現才能意識到自己欠了技術債,比如說設計失誤。

但是這不一定是個絕對要規避的東西,有時候,一個項目拖不到更好的方案時,需要貸這樣一筆技術債來加速一下進程,儘快上線讓它運轉起來也是有必要的。

在知情的情況下,要不要欠技術債,欠下以後怎麼還,多久還,也是一個開發戰略,做技術開發絕對不是矇頭寫代碼那麼簡單~

但是有一點是可以確定的,就是欠債的人不會喜歡利息,而且還的時候肯定有些痛苦。

就和我每個月還信用卡一樣。。。

被前輩坑慘,互聯網公司欠下的技術債,可能得還到破產


分享到:


相關文章: