一個典型項目開發(fā)的故事
57 2017-04-14
南寧達(dá)內(nèi):一個典型項目開發(fā)的故事
2ACME公司的Widgets系統(tǒng)出了點問題。這個系統(tǒng)被他們用來管理器材的庫存,當(dāng)初設(shè)計時沒考慮到如今這樣大量的數(shù)據(jù)的增長。他們的員工因為這個問題備受折磨。很顯然,需要想辦法解決這個問題,讓系統(tǒng)恢復(fù)正常。經(jīng)過對...
ACME公司的Widgets系統(tǒng)出了點問題。這個系統(tǒng)被他們用來管理器材的庫存,當(dāng)初設(shè)計時沒考慮到如今這樣大量的數(shù)據(jù)的增長。他們的員工因為這個問題備受折磨。很顯然,需要想辦法解決這個問題,讓系統(tǒng)恢復(fù)正常。
經(jīng)過對本地軟件公司的一番篩選,ACME聯(lián)系到了Hamster軟件公司,看看他們能否解決這個庫存系統(tǒng)中的問題。他們很喜歡Hamster軟件公司的網(wǎng)站,他們沒有任何軟件開發(fā)的經(jīng)驗,但根據(jù)網(wǎng)站的外觀,他們估計這個軟件公司能解決他們的問題。這件事上他們并沒有做錯,但也不是很對。
于是,ACME公司和Hamster軟件公司開始討論如何解決他們庫存系統(tǒng)中的問題。私底下,Hamster軟件公司的開發(fā)團(tuán)隊知道以前從未處理過類似這樣的問題,然而,他們有一群很能干的小伙,他們相信一定能把這個問題解決掉。
基于一個不符合實際情況的預(yù)估,ACME公司和Hamster公司達(dá)成協(xié)議一起努力來解決問題。這是他們犯的第一個錯誤。Hamster公司的開發(fā)團(tuán)隊認(rèn)為,對現(xiàn)有的軟件進(jìn)行簡單的修改就能滿足他們的需求,并在此假設(shè)上制定出了工程估算。
起初,按照ACME公司認(rèn)可的設(shè)計方案,Hamster公司的開發(fā)進(jìn)展神速。不久之后,事情看起來,他們的確是有可能按照最初的設(shè)計預(yù)算來完成任務(wù)。
除了有一些bug需要解決。
起初的bug都很小,就Hamster公司設(shè)定這種一日千里的開發(fā)速度而言,ACME公司理解,開發(fā)進(jìn)行中的軟件不可能做到十全十美。他們很高興能開始使用改造中的系統(tǒng),對于出現(xiàn)的問題,開發(fā)團(tuán)隊已經(jīng)有了更好的方案,所以,看起來,邊改造邊使用是沒有問題的——盡管有些bug存在。
但是,Hamster軟件公司的小伙都很能干。沒有人希望bug的出現(xiàn),但因為開發(fā)團(tuán)隊專注于解決擴(kuò)容問題、寫代碼來升級系統(tǒng),所以,有時候,很容易會發(fā)生一些意想不到的事情(bug)。隨著開發(fā)的進(jìn)行,項目規(guī)模的擴(kuò)大,記住代碼中各種編寫策略的背后原因變得越來越困難,但是,他們是群能干的小伙,沒有他們處理不了的問題。
RichardHammond——Hamster公司的創(chuàng)始人之一,是一個優(yōu)秀的程序員,他對這個項目做出了巨大的貢獻(xiàn)。一天,Richard收到了來自FifthSpeed公司的聘請,F(xiàn)ifthSpeed公司是一家非常出名的軟件公司,Richard無法拒絕。Hamster公司的開發(fā)團(tuán)隊很沮喪,但對于這種事情,他們無能為力,只好頂著壓力繼續(xù)開發(fā)。
如果這些bug之前一些麻煩,而Richard的離去相當(dāng)于火上澆油。他的腦袋里裝有大量的關(guān)于每個東西為應(yīng)該如何運(yùn)作的知識,而現(xiàn)在,軟件只能在沒有他的情況下獨(dú)自完成工作。各種征兆開始顯露,Hamster公司開發(fā)的軟件里有些東西并沒有按要求運(yùn)行。
Bug成倍增加。每一次新的版本的發(fā)布看起來都會導(dǎo)致越來越多之前已經(jīng)完成的功能不能用。
作為解釋軟件應(yīng)該做成什么樣的唯一參考來源的規(guī)格說明書,如今已經(jīng)增長到?jīng)]有哪個人能單獨(dú)掌握。
ACME公司距離他們解決庫存系統(tǒng)問題的目標(biāo)看起來是越來越遙遠(yuǎn)。每一次新版本的發(fā)布都是一次前進(jìn),但也是一次后退。他們用這個系統(tǒng)來提升他們的業(yè)務(wù),但bug不僅影響了員工的使用,而且影響到了客戶。
公司實際業(yè)務(wù)上的損失有這些bug的很大功勞。沒錯,ACME公司庫存系統(tǒng)原始問題已經(jīng)解決了,但卻引入了其它問題,算起來得不償失。這個龐大的系統(tǒng)本以為能解決ACME公司所有的問題,但現(xiàn)在看起來更像是一個負(fù)擔(dān),而不是資產(chǎn)。它每月還在不斷的吞噬巨大的財力用于維護(hù),遠(yuǎn)看不到盡頭。
可不幸的是,這是如今大多數(shù)軟件項目的現(xiàn)狀。糟糕的計劃,沒譜的預(yù)算,無休無止的“維護(hù)”,使得我們軟件開發(fā)世界對真正的軟件項目失去信心。
只有我們共同努力,以整個行業(yè)之力,才能改進(jìn)軟件項目中估算和不切實際的期望等相關(guān)問題。
在試圖解決問題前,一定要盡量理解問題。
測試你的代碼,即使不為自己,也是為下一個接手你工作的人。
。
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號
獵學(xué)網(wǎng)服務(wù)號