偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

史上最爛的項目,最后負責(zé)人還進了監(jiān)獄...

新聞
你見過最爛的項目,撐了多長時間才完蛋?六個月?一年?今天介紹的這個奇葩項目,不但一開始就爛得透透的,還硬撐了 12 年多,直到項目負責(zé)人被逮起來丟進監(jiān)獄才完事。

 你見過最爛的項目,撐了多長時間才完蛋?六個月?一年?今天介紹的這個奇葩項目,不但一開始就爛得透透的,還硬撐了 12 年多,直到項目負責(zé)人被逮起來丟進監(jiān)獄才完事。

[[285633]]
圖片來自 Pexels 

到底有多爛?用下面這組觸目驚心的數(shù)據(jù)告訴你:

  • 總共 600 多萬行 C++ 代碼
  • 總共 50000 多個類
  • 受編譯器版本限制,用的 C++ 語法都是陳舊過時的,只能在某個(早就沒有維護)的操作系統(tǒng)上部署
  • 基于 CORBA
  • 采用的數(shù)據(jù)庫軟件來自一家早就破產(chǎn)的公司
  • 好幾層互相疊加的層共同組成了用戶界面,而且這些層沒有一個是由原作者維護的
  • 運行一個用戶界面需要啟動 40-50 個子線程
  • 在 32 臺并行的機器上需要 48 小時進行編譯
  • 沒有采用運行庫動態(tài)鏈接技術(shù),一個可執(zhí)行程序就有好幾百兆那么大
  • 啟動這玩意大約需要 15 分鐘
  • 然后一般 30 秒到 30 分鐘內(nèi)會崩潰

你從未見過的“地獄級”爛項目

十一年前的 2008 年,科技博客 projectfailures 爆料,博主那幾年曾受雇于法國的一家大型科技企業(yè),參與過一個政府機構(gòu)委托的軟件項目,職位是咨詢顧問。

在那里,他親眼見證了登峰造極的愚蠢和瘋狂,以及它們在軟件開發(fā)工作中起到的可怕作用。

十年過去了,這個地獄般的項目又被人翻了出來,再次炒的沸沸揚揚,而 projectfailures 博客甚至還就此專門出了一篇回顧。

在文章中,他這樣寫到:“這已經(jīng)不僅僅是什么缺乏專業(yè)能力的問題了,這個項目中對人類尊嚴的無情踐踏,已經(jīng)嚴重到有的時候讓我感覺置身于監(jiān)獄之中。”

啥啥啥?不過是寫點代碼而已,除了賠上頭發(fā),難道會連命都搭進去嗎!?這個項目咋這么恐怖啊!

這項目到底啥情況?

大約是 1996 年,法國的一個政府機構(gòu)請某個公司開發(fā)一款軟件??偟膩碚f這玩意應(yīng)該不太復(fù)雜,只不過有一些不太尋常的小問題需要解決罷了。

甲方預(yù)付了幾百萬歐元,計劃工期大概 2~3 年左右。于是公司招了幾個程序員,開始干活。

隨著資金陸續(xù)到位,這公司開始瘋狂招人,每隔三個月左右就把隊伍擴大一倍。

結(jié)果,7 年過去了,這個項目根本還不成型。因為延誤造成的罰金每天都達幾千歐元。

于是管理層決定,要精簡一下團隊,減少項目開支 —— 具體做法是,把干活的人都開了,另外招一些對軟件開發(fā)沒啥經(jīng)驗的新手來上班。

項目開始 10 年后,整個項目已經(jīng)深陷在災(zāi)難的泥潭中,完全是由純粹的混亂所組成。

于是項目的中層管理者終于決定要招一些具有軟件工程開發(fā)經(jīng)驗的人,來把這個爛攤子從地獄里拖出來。

又過了兩年,這項目居然還在茍延殘喘。這公司通過給甲方發(fā)送金額不斷提高的“設(shè)計變更”賬單,來彌補每天產(chǎn)生的工期延誤罰金。這都 2008 年了喂!

這項目怎么能爛成這樣?

代碼質(zhì)量慘不忍睹

在語言選擇方面,沒人敢說 C++ 是種簡明易懂的語言。事實上,在簡潔方面,C++可能算是最糟糕的一種編程語言了吧。

要知道,它可是復(fù)雜到連它的創(chuàng)造者 Bjarne Stroustrup 本人都不敢說自己完全掌握了這門語言。

當然,這不能全怪開發(fā)團隊。要知道,在當時,像 C++ 這樣擁有無盡復(fù)雜度的思維迷宮還是大有市場的。

許多希望成為超級程序員的年輕人都對這門聽起來超牛逼的語言趨之若鶩。

而事實上,這些可憐的娃們,最后大部分都被 C++ 虐慘了,多少美好的青春,都耗費在反復(fù)調(diào)試一大段晦澀難懂的代碼,耗費在探尋為啥這程序會毫無理由莫名崩潰這樣的事情上了。

而腦子正常的人,則紛紛轉(zhuǎn)向了其他語言和其他項目上去了。要知道,人生苦短啊。

不過,看起來,這家公司并沒有跳出這個圈子,還是一個猛子扎進了 C++ 坑里。

退一步說,不管你用的是什么編程語言,維護一個巨大的代碼庫本身就不是一件容易的事情——而這個項目的代碼庫居然有 600 多萬行之巨。

那,600 多萬行代碼是個什么概念?對比下 Linux 3.13 版內(nèi)核的代碼,在除去內(nèi)核驅(qū)動和架構(gòu)之外,在 kernel/ 里的源代碼也不過就 13 萬行左右。

另一個例子是著名的編輯器 Emacs,它因為功能太多太龐大,常被人吐槽成“缺乏一個好編輯器的操作系統(tǒng)”,但即使如此,它的總源碼規(guī)模也不過就是 165 萬 9 千多行。

就算你特別厲害,一目十行,你大概也要在顯示器前面不眠不休花上 7 天,才能把全部 600 萬行代碼全部過一遍。

于是我們可以想見,維護這么大一個代碼庫,可得逼瘋多少程序員呢??纯聪旅孢@兩個例子,我想,如果我是程序員的話,我也會先瘋為敬吧。

有一次,項目里的一個程序員被要求修復(fù)一個“右鍵點擊界面會導(dǎo)致整個應(yīng)用卡死”的 Bug。

經(jīng)過連續(xù)幾天的仔細檢查,消耗無數(shù)耐心之后,他發(fā)現(xiàn),這個右鍵響應(yīng)事件其實工作的很正常,只不過這個“正常”過程需要程序花上 45 分鐘,從某種巨大的(靜態(tài)!)內(nèi)容庫中動態(tài)生成每一個菜單項,然后才能把菜單給顯示出來。

如果這時候你不幸又點了一下右鍵,不好意思,咱再花 45 分鐘重新生成一下菜單項吧…

還有一次,用戶報了個“從 CD-ROM 載入數(shù)據(jù)失敗”的 Bug 。程序員們花了好幾個星期來測試分析代碼,最后卻直接把這個 issue 標成了“已解決”。

因為他們發(fā)現(xiàn),從 CD-ROM 載入數(shù)據(jù)的功能其實是好的,問題在于,讀取 700MB 的數(shù)據(jù),這程序要花上大概 7 天時間罷了。

還真是特別考驗?zāi)托难健?/p>

版本控制全都是亂來

令人難以置信的是,這團隊在完全沒有版本控制工具的情況下也搞了好幾年,直到團隊里一個腦子還算清醒的家伙突然想到該用個版本控制工具來管理代碼。

剛開始的嘗試結(jié)果并沒有讓所有人滿意,所以這個團隊就換到了另外一個版本控制系統(tǒng)。

就這么將就了一兩年,然后這個版本控制系統(tǒng)不知怎么又抽了個風(fēng),把之前所有改動的記錄都丟失了。

最后這個項目選定的版本控制工具,是一團帶有圖形用戶界面的禍害,一坨從瑞典直接進口的數(shù)字化電子垃圾。

他們不得不安排了 4 個人組成一個“版本控制團隊”,全職負責(zé)維護這個版本控制系統(tǒng)的正常運行。

而這直接導(dǎo)致下列情況的出現(xiàn):

①首次從版本控制系統(tǒng)中檢出文件需要向版本控制團隊預(yù)約,一般來說在一周后才能獲得授權(quán)。

②想修改文件必須經(jīng)過中層管理人員審批。你需要提前列出需要修改的文件,把列表告訴你的經(jīng)理,然后打報告給版本控制團隊申請,后者大概兩天左右會給你反饋。

③每次對文件的修改都會觸發(fā)分支,這就意味著你得自己去合并這個文件收到的所有修改。

也許你會覺得,項目里這么多文件,兩個人改到同一個文件里的幾率應(yīng)該不大,然而實際上,絕大多數(shù)改動都集中在同樣的大概 100 來個文件里,所以每次 merge 都保證讓你痛不欲生。

④在提交修改(檢入文件)之前,你還將經(jīng)受一次精神折磨:你準備提交的代碼將被交給一個所謂的自動 Bug 探測程序進行審閱,通過之后還要拿給中層管理人員看過,才能成功提交。

不用說,這根本無濟于事,Bug 還是如雨后春筍一樣不停冒尖,比大家除 Bug 的速度快多了。

更有甚者,對發(fā)現(xiàn)的 Bug 數(shù)量進行分析后發(fā)現(xiàn),這種“缺陷修正”方式帶來的新 Bug 數(shù)量是它所修復(fù)的 Bug 數(shù)量的兩倍…

⑤版本管理過于簡單。舊的版本是 1,今天的版本是 2,之后的版本是 3。沒有人能確切地知道具體發(fā)給客戶的是哪個版本。

某些時候,管理層會定下一個所謂的官方交付時間,而這個時間安排跟團隊中的任何一種工作計劃都毫無關(guān)系。

當預(yù)定的交付日期到來的時候,客戶實際上收到的是一張帶有安裝教程的……空白 CD,因為已經(jīng)有好幾個星期沒有人能構(gòu)建可執(zhí)行程序了。

于是,客戶發(fā)現(xiàn)自己收到的是空白光盤,然后正式投訴,然后收到一個舊版的程序光盤作為應(yīng)付。

而客戶之所以會發(fā)現(xiàn)程序是舊版的,是因為軟件的“關(guān)于”頁上還寫著跟去年那個版本一模一樣的日期…

團隊組成更是莫名其妙

團隊里充斥著這么一大群毫無任何軟件工程經(jīng)驗的人,這軟件里要是 Bug 不多就還真沒天理了吧?

還記得上面提到過,管理層曾經(jīng)決定,要精簡一下團隊的事吧。

按理說,任何一個腦筋正常的經(jīng)理都會發(fā)現(xiàn),對于這樣一個純軟件工程的項目來說,人員開支必定是最主要的開支。

然而,這個發(fā)現(xiàn),并不能阻止管理層把所有稍微有點經(jīng)驗的程序員都開了,換上對工資要求低得多的菜鳥。相對的,所有的經(jīng)理們的飯碗倒是都捧得牢牢的,一點都沒受影響。

這團隊后來變成什么樣了呢?55 個人里面,只有 20 個程序員,剩下 35 個都是經(jīng)理。

對,你沒有看錯,這個陣容真是豪華,給每個程序員配備了 1.75 個經(jīng)理!

沒幾個經(jīng)理有軟件工程方面的經(jīng)驗。那時候,剛好出了 SCO 拿著 Unix 版權(quán)起訴 Linux 用戶的事情,就算這整件事不過是虛張聲勢,但對許多人來說,當時這事還是挺可怕的 —— 要是突然有天你不得不為自由軟件付費,那可如何是好啊。

技術(shù)知識也相當缺乏。都 200x 年了,這群人還沒幾個了解互聯(lián)網(wǎng)的,少數(shù)幾個熟悉互聯(lián)網(wǎng)的,也不過就是拿互聯(lián)網(wǎng)看看小電影而已。要是你提到你在網(wǎng)上看了些啥,得到的都只會是別人的竊笑而已。

行政管理模式變態(tài)的發(fā)指

上面的荒謬情況也許會讓人捧腹大笑,但如果你知道管理層的那群法國佬對員工發(fā)起狠來就像是奧斯維辛集中營里的德國鬼子,那你估計就笑不出來了吧。

來看看這些官僚到病態(tài)的規(guī)定吧:

①禁止遲到,所有人必須在上午 9 點前到崗。

有一天,人事經(jīng)理早早就守在公司大門口,把所有 9 點 01 分及之后才到公司的人都當場開除了,程序員、經(jīng)理和銷售,都不能幸免。

②咖啡機時不時就斷供,一斷就是好幾天。

理由當然是跑去喝咖啡的人效率不如坐著干活敲代碼的人。不僅如此,每當有領(lǐng)導(dǎo)來開發(fā)部視察的時候,這臺咖啡機還會被人關(guān)掉,免得讓領(lǐng)導(dǎo)看到有人“沒在干活”。

③廁所的臟亂差程度可以說是業(yè)內(nèi)絕無僅有的惡心與恐怖。

想來這也是管理層避免大家花時間蹲帶薪廁的“高效”政策使然吧。你可能要問了,這種變態(tài)公司,怎么還有人前仆后繼的來上班?

最主要的是,那段時間法國國內(nèi)經(jīng)濟正在崩潰的邊緣掙扎(直到現(xiàn)在,法國還沒完全走出這個泥潭),能找到一份足以糊口的工作就已實屬不易,工作條件苛刻點也就算了。

不可避免的結(jié)局

正如網(wǎng)友評論的那樣,這整個項目陷入了死循環(huán)的鏈條之中:缺乏經(jīng)驗導(dǎo)致低效,低效導(dǎo)致開銷太大,節(jié)省開銷又裁掉有經(jīng)驗的人,進一步降低效率。

那么,為什么管理層還坐視這種情況的不斷惡化呢?歸根結(jié)底還是對失敗的擔(dān)心。

如果你砍掉這個項目,就意味著這個項目失敗了,而負有領(lǐng)導(dǎo)責(zé)任的人就是你。

如果這項目還在茍延殘喘,那等你升遷調(diào)任之后,這個爛攤子自然由繼任者來收拾啦。

最終,負責(zé)這個項目的公司領(lǐng)導(dǎo)因為挪用資金等原因被捕,進了監(jiān)獄,這個在地獄的烈焰中掙扎了十幾年的項目,才終于宣告終止。

作為整件事情的親歷者,projectfailures 的博主給剛踏入編程世界的年輕人的建議是:

  • 珍愛生命,沒事別用 C++ 折騰自己。
  • 寧愿接一些不那么穩(wěn)定,但能自由發(fā)揮所長的小項目,也別貪圖安逸去參加什么看起來很冠冕堂皇的工程。
  • 面向?qū)ο蟮臄?shù)據(jù)庫并不是什么好東西。
  • CORBA 應(yīng)該在烈焰中痛苦的死去。
  • 那些愚蠢的產(chǎn)品經(jīng)理,請參照上一條。 

 

責(zé)任編輯:武曉燕 來源: dwz
相關(guān)推薦

2011-09-26 10:38:11

Windows Ser開發(fā)

2014-12-22 13:14:48

IE離職

2014-06-27 14:49:41

SDN

2011-08-23 18:07:42

QomoLinux 20周年

2012-12-13 11:12:24

戴爾

2013-04-17 10:56:10

ONFOpenDayligh標準協(xié)議

2010-05-13 14:18:48

云計算百度

2015-06-17 15:54:42

2022-03-28 10:44:26

FuchsiaOSGoogle操作系統(tǒng)

2009-07-16 08:19:46

魔獸網(wǎng)易

2015-11-16 10:16:56

技術(shù)蛻變創(chuàng)業(yè)

2014-05-21 16:04:38

面試面試規(guī)則

2015-07-23 09:40:24

爛代碼程序員

2019-04-01 13:20:34

技術(shù)負責(zé)人CEO

2016-01-15 10:47:08

技術(shù)團隊能力

2011-12-28 15:16:33

Sencha開發(fā)者負責(zé)人

2012-03-11 15:35:53

Android

2009-03-05 09:27:31

2011-08-23 17:02:37

FedoraLinux 20周年

2013-04-09 11:35:44

微信游戲微信微信游戲平臺
點贊
收藏

51CTO技術(shù)棧公眾號