軟件項目是這樣失敗的。

誰也不知道城西銀泰豪華的大樓是何時出現的。即便像我這樣每天上下班都通過那裏。程序員

記憶裏彷佛巨大的塔吊和漫天的揚塵在那裏飛舞了大半年,也許是一年有餘。幾個月前忽然某一天通過時,看到了頗具規模的大廈彷佛正在慢慢造成。直到最後幾天,當最後一個醜陋的腳手架被拆掉,才發現這裏竟憑空出現瞭如此巨大的龐然大物。安全

不由感慨人類的才華和創造力。服務器

相比之下軟件行業彷佛顯得很眇小,一般很難向一個行外人介紹一款「偉大的軟件」,由於他們很難理解一堆.dll和.exe的偉大之處。在他們眼裏,只有一堆看不明白乾什麼用的奇奇怪怪文件和一個不見得多漂亮的圖標,雙擊進入以後有功能A,B,C,D,E,F,G。數據結構

不幸的是,在多數人堅信「項目經理不須要懂技術」的巨大背景下,連項目經理本人也理解不了程序員們那些自稱屌炸天的設計架構。多線程

因而有了各類銀彈,各類管理方法。其中之一有一個你們都耳熟能詳甚至耳朵磨出繭的名字——敏捷。架構

快速迭代,快速發佈可用版本。在看得見的功能一個接一個被「製造」出來,管理者比任什麼時候候都心中有譜。因而他們在此之上又發明了以功能點來計算工做量等等諸如此類的時間管理方法。並對全部人說本身的項目用這管理方法進行的十分順利。測試

某天一個管理者理所固然地據說並堅信了敏捷管理的出類拔萃所向披靡。他的團隊正要建造一個像銀泰城同樣偉大的項目。線程

他理所固然地不想看到一堆開發者貌似很努力的敲打鍵盤而後產生一個個莫名其妙的帶着各自後綴名卻無一能夠雙擊點開的文件。這種感受加上一些基因帶給他的莫名的不安全感讓他以爲可怕,這些埋頭敲鍵盤的傢伙到底在幹些甚麼?他們拿走了不菲的薪水卻極可能在搞一些跟工做壓根不要緊的東西。項目進度怎麼樣了?是否是該讓他們加加班?是否是他們中有人技術不達標緻使總體進度有問題卻瞞着我好多領幾個月薪水而後走人?這種無力感讓他坐立不安。看着這羣自稱程序員的傢伙每天上班下班就像看着工地裏漫天的揚塵和出入其中的滿載的黃沙車,工地上看上去一直是一片混亂,工隊負責人告訴他在打地樁,但是,天知道發生着什麼?設計

此次他決定採用更先進的管理方法,而這一方法已經被無數人證實科學且百分之百成功。敏捷,或是叫別的什麼名字,管它呢。快速發佈可用版本,快速迭代,基於功能點的計劃,棒極了。教程

因而他把大樓圖紙大體看了一遍,決定在第一個月完成第一層的最北邊商鋪,接下來兩個月繼續完成剩下的三個方向的。一開始老是會比較慢,由於那羣程序員告訴他有許多設計什麼的額外工做。計劃是再接下來每兩個月完成一層樓,這樣完成整棟6層大樓須要13個月。加上測試和發佈,15個月足矣。況且,第五層和第六層面積要小不少,應該會快很多。

他把全部人召集到一塊兒開了一次長達一天的會,解釋敏捷開發的成功案例和他的計劃。全部開發人員都贊成敏捷是時下最早進的管理模式,其中有兩個彷佛還看了很多相關的書籍教程以爲計劃很是科學,在會議上盛讚了半天經理的英明神武,經理決定下次有機會提拔他們。項目紅紅火火的開始了。

 

 ----------------->>> 分割線  <<<----------------------

 

在經理強大的我的魅力感召下,敏捷進行的比想象得還要順利。一開始幾個員工自願加班加點,後來更多的人加入了他們。幾乎天天都能看到他們在會議上爲新完成的功能歡呼雀躍。不出所料,一開始的工程在20天內就完成了。經理給了項目中每個人一筆不菲的獎金並在部門會議上表揚了每個人。開發人員充滿幹勁,可以擁有如此優秀的團隊,簡直是上天的恩賜,經理睡得比任什麼時候候都踏實。白天有人向他提到項目架構的風險,也許該給他加點薪水了,明天也有必要向全員強調下保證質量。

項目進度一路高歌猛進,團隊裏的每個人都堅信本身所在的團隊是數一數二的,沒有別的團隊能在如此短的時間裏發佈如此多的功能。在前6個月他們已經完成了至關於3層大樓的全部商鋪,惟一的問題是有比較多的零散BUG,大概是士氣高昂之下你們都沒有把項目質量的要求太放在眼裏,以往的經驗來看這些不會成爲風險,經理本身也以爲這沒什麼可擔憂的。

第一次問題出如今第7個月中旬,有兩個開發在例會上告訴你們ORM模塊線程不安全。經理對此一頭霧水,但彷佛全部的開發人員都認爲形勢很嚴峻。有人提出在保證進度不拖慢太多的狀況下進行必定程度的返工。有時候這在所不免,技術負責人說這就像是給大樓的第一層較小的柱子加一個支撐結構,應該很快就會完成。很快項目回到了正軌,只是更多的人偶爾提出設計架構的缺陷,但咱們擁有如此優秀的團隊,你們總會有辦法作好它。項目進行到中旬,這每每是最考驗項目經理能力的時候。經理表現出他在軟件項目上的強大經驗適時的激勵組員,強調這個項目完成後公司能得到的巨大收益,全部人倍受鼓舞。

順境只持續了兩週,在第8個月初,計劃中要進行的5個功能點開發有2個停擺,問題仍是在ORM上。組裏最年輕的程序員提出項目架構有巨大缺陷,須要大規模重構。其餘全部人都認爲這樣作風險巨大,而咱們目前面臨的問題並無想象中那麼嚴重。只是須要在更大的層面上返工一下,而後在某些不能工做的地方作點特殊處理。經理這時候隱約感受到彷佛有點不對勁,好在項目進度已經足足提早了兩個月,就算有問題也還有的是時間慢慢解決。他在例會上允諾了正在想公司爲每個組員爭取利益,你們站在同一陣線上努力前進。例會很是成功,員工們又開始自願加班。 

此後又有若干次功能開發上的問題,在你們集思廣益下都一一獲得解決,雖然進度的領先已經幾乎不復存在,但大部分功能也已經能夠工做了。

真正的問題出如今第11個月中旬,在全部人測試服務器負載時發現並行處理能力不足以支撐整個系統業務需求。開發人員分析後告訴經理這主要仍是由於ORM多線程處理有問題,而目前模塊間耦合十分嚴重又致使不可能單獨替換掉ORM模塊。這就像是大樓的承重結構有問題,不把整個樓拆除根本不可能換掉哪怕其中的一根柱子。而底層的數據結構設計也有很大的缺陷。產品經理開始妥協砍掉上層一些不過重要的功能以期待系統能知足大多數需求,可技術負責人說仍是不行。時間僅剩4個月,這時候已經沒有人說要從頭搭建架構了,由於全部人都知道時間不夠。經理也清楚,在沒有把握的狀況下本身跳進這坑裏極有可能被坑死在裏面,將來也沒可能再在這個公司混下去了。你們開始質疑需求的合理性,推脫責任,和有問題的模塊劃清界限。愈來愈多的BUG被證實與架構缺陷有關,不大規模重構就沒法修復。項目陷入了一片混亂,全部技術人員天天開會思考風險較小的辦法處理,但彷佛每一個方案都被推翻。知道12月初,一些人開始提出除了大規模重寫別無他法。經理爲此天天沒法入眠,他天天陪員工加班到深夜,巴不得本身也上去寫兩行代碼,若是能幫上忙的話。他開始詢問每個技術細節,但願本身能爲你們或多或少提供點意見。但這除了增長了更多的會議以外彷佛沒有什麼效果,甚至有人抱怨他佔用太多時間。

噩夢通常的日子又持續了兩週,眼看離交付只剩3個月,經理感到史無前例的無力和沮喪。自家小區邊又開始建造房子,灰濛濛看上去一片混亂,看不出來工地裏在幹什麼。這種工程竟然可以成功,果真造房子比造軟件容易多了。

 

 ----------------->>> 分割線  <<<----------------------

 

部門領導每週都會詢問這一重要項目的狀況,以往經理老是會給出超出預期的答案。可最近連續幾周項目沒有任何進展,經理在週會上根本不敢面對你們。領導還在安慰他說努力努力,你們都在同一戰線上。激勵下屬,做爲這個民族管理學的最核心精髓,經理對此再熟悉不過。只是,假如一開始你們沒有被熱情衝昏頭腦,是否是就會發現問題?會不會有人其實一開始就已經發現問題而沒有說出來,只由於說出來會你們恥笑太悲觀?

看着窗外遠處建築工地一片混亂的情景。也許房子只有這一種造法,前八個月註定塵土漫天,不會有一家商鋪靚麗地出如今世界上,只有打樁機的轟鳴和巨大的鋼筋混凝土柱子,商鋪只在最後6個月以驚人的速度完成。

次日,經理找來了全部的開發,詢問了每個人的意見後宣佈,全部底層設計架構重作。

咱們一塊兒回到那一片漫天的塵土中去。

相關文章
相關標籤/搜索