一個典型軟件項目的故事

jopen 12年前發布 | 5K 次閱讀 軟件

ACME公司的Widgets系統出了點問題。這個系統被他們用來管理器材的庫存,當初設計時沒考慮到如今這樣大量的數據的增長。他們的員工因為這個問題備受折磨。很顯然,需要想辦法解決這個問題,讓系統恢復正常。

經過對本地軟件公司的一番篩選,ACME聯系到了Hamster軟件公司,看看他們能否解決這個庫存系統中的問題。他們很喜歡Hamster軟件公司的網站,他們沒有任何軟件開發的經驗,但根據網站的外觀,他們估計這個軟件公司能解決他們的問題。這件事上他們并沒有做錯,但也不是很對。

于是,ACME公司和Hamster軟件公司開始討論如何解決他們庫存系統中的問題。私底下,Hamster軟件公司的開發團隊知道以前從未處理過類似這樣的問題,然而,他們有一群很能干的小伙,他們相信一定能把這個問題解決掉。

基于一個不符合實際情況的預估,ACME公司和Hamster公司達成協議一起努力來解決問題。這是他們犯的第一個錯誤。Hamster公司的開發團隊認為,對現有的軟件進行簡單的修改就能滿足他們的需求,并在此假設上制定出了工程估算。

起初,按照ACME公司認可的設計方案,Hamster公司的開發進展神速。不久之后,事情看起來,他們的確是有可能按照最初的設計預算來完成任務。

除了有一些bug需要解決。

起初的bug都很小,就Hamster公司設定這種一日千里的開發速度而言,ACME公司理解,開發進行中的軟件不可能做到十全十美。他們很高興能開始使用改造中的系統,對于出現的問題,開發團隊已經有了更好的方案,所以,看起來,邊改造邊使用是沒有問題的——盡管有些bug存在。

但是,Hamster軟件公司的小伙都很能干。沒有人希望bug的出現,但因為開發團隊專注于解決擴容問題、寫代碼來升級系統,所以,有時候,很容易會發生一些意想不到的事情(bug)。隨著開發的進行,項目規模的擴大,記住代碼中各種編寫策略的背后原因變得越來越困難,但是,他們是群能干的小伙,沒有他們處理不了的問題。

Richard Hammond——Hamster公司的創始人之一,是一個優秀的程序員,他對這個項目做出了巨大的貢獻。一天,Richard收到了來自Fifth Speed公司的聘請,Fifth Speed公司是一家非常出名的軟件公司,Richard無法拒絕。Hamster公司的開發團隊很沮喪,但對于這種事情,他們無能為力,只好頂著壓力繼續開發。

如果這些bug之前一些麻煩,而Richard的離去相當于火上澆油。他的腦袋里裝有大量的關于每個東西為應該如何運作的知識,而現在,軟件只能在沒有他的情況下獨自完成工作。各種征兆開始顯露,Hamster公司開發的軟件里有些東西并沒有按要求運行。

Bug成倍增加。每一次新的版本的發布看起來都會導致越來越多之前已經完成的功能不能用。

作為解釋軟件應該做成什么樣的唯一參考來源的規格說明書,如今已經增長到沒有哪個人能單獨掌握。

ACME公司距離他們解決庫存系統問題的目標看起來是越來越遙遠。每一次新版本的發布都是一次前進,但也是一次后退。他們用這個系統來提升他們的業務,但bug不僅影響了員工的使用,而且影響到了客戶。

公司實際業務上的損失有這些bug的很大功勞。沒錯,ACME公司庫存系統原始問題已經解決了,但卻引入了其它問題,算起來得不償失。這個龐大的系統本以為能解決ACME公司所有的問題,但現在看起來更像是一個負擔,而不是資產。它每月還在不斷的吞噬巨大的財力用于維護,遠看不到盡頭。

可不幸的是,這是如今大多數軟件項目的現狀。糟糕的計劃,沒譜的預算,無休無止的“維護”,使得我們軟件開發世界對真正的軟件項目失去信心。

只有我們共同努力,以整個行業之力,才能改進軟件項目中估算和不切實際的期望等相關問題。

在試圖解決問題前,一定要盡量理解問題。

測試你的代碼,即使不為自己,也是為下一個接手你工作的人。[本文英文原文鏈接:The story of a typical software project. ]

來自: 外刊IT評論 http://www.aqee.net/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!