為什麼我們在做軟體專案時,老是反反覆覆,反反覆覆?

2021-05-21 22:21:05 字數 2585 閱讀 1578

當我的一些朋友向我提問這個問題時,我有時一時語塞,一下子,不知道怎麼回答。

其實這種問題一直在困擾著我們做軟體專案的專案組成員的,雖然我有好幾年沒有做軟體

專案了,但以前的在做軟體專案時,也是經歷了反

反覆復的。從專案的簽單、溝通、需求調

研、軟體設計、軟體編碼、測試,最後實施,在實施過程時,客戶不斷的反饋問題,然後我們

修正問題,又上線,又出現問題,又修正,又上線,這樣反反覆覆,感覺是無休止的修正、上線。到了最後,客戶失去耐心,我們也心煩,有時會導

致軟體無法驗收、收款,最後專案失

敗,我想,這是很多做專案組成員經常遇到的問題的。

到底是哪個環節出了問題呢?我個人覺得最主要的問題是出在對客戶行業不理解,不能提

出你自己的解決方案。其實我們在和客戶溝通時,

客戶會提出要解決這個需求,那個需求的,

我記得我2023年時,我在做乙個五金家具企業的軟體專案,除了要實現庫存、銷售、應收應付

以外,其中還有這樣的需求是:這家企業購買了一捲鋼板,加工時,要切成圓塊鋼板,問題是

用計算機來如何計算切出的圓板才是最節約鋼板的方

法。說到這裡,如果是懂這一行的分析員

就會拒絕做這個功能,如果是現在的我,我一定會拒絕,但是我當時答應了,為了做這個功

能,反反

復復做了1年多,搞得雙方身心非常疲憊。還有一次2023年時,也接到乙個軟體項

目,需要的需求是:使用者接到客戶的訂單,然後在銷售單寫下

對方客戶的位址,銷售產品、數

量、單價和金額,另外還要增加有催款的記錄次數,列印時,要列印出帶有位址的套打、包

裹、標籤,不涉及

庫存、成本核算,就這些功能,我從開發到驗收居然前前後需要8個月時

間,其實在這8個月時間裡,是反反覆覆的修正、增加功能的時間,剛

開發完的時候,開始上

線,沒想到的問題是當多個使用者同時開單時,發現開一張單需要5到10分鐘,這由於技術的問

題而導致開單的速度超慢,

差不多耗費我2個多月解決了這個問題。接下來使用者在使用過程

中,要增加收款的功能,接著答應增加收款的功能,做完後,上線,也是反反覆

復的搞了1個

多月,因為在設計過程中,根本就沒有考慮過收款的功能,增加這個功能,又要重新設計。等

這個收款功能搞好了,客戶說要增加

預收款功能,用來記錄他們客戶的預收款的情況,好了,

接著又要改,修改資料庫字段,編寫**,搞好這個功能後,上線,前前後後,又要

花2個月

時間。搞好了預收款功能,使用者用了一段時間,需要預收抵扣.....,就這樣,不斷的折騰,不

過,還好,這個軟體專案總算驗收了,

但是時間耗去8個多月,與最初簽定合同的時間1個月相

差甚遠。

現在想一想,了解乙個行業的業務需求是非常重要的,一想到要做銷售系統的,就一定要

想到:庫存、應收、已收、預收、成本等;一想

到要做批發行業的,就要想到:**、贈送、

配送、多倉庫選擇列印、雙單位、寄存、借入、借出、列印時不同的部門列印不同的抬頭等;

一想到要做紡織布業,就要想到:布種、色號、銷售可以按(公斤、公尺、碼、磅等多單位)、

輔助單位核算等。如果是做五金行業,就要想到:

自動組裝和拆裝、公用零件的組裝、組裝與

拆裝的成本核算等。一想到要做零售超市連鎖行業的,就一定要想到多分店的pos零售開單

時,一定

要實現斷網開單的模式。不要指望客戶會百分之百的告訴你所有的需求,能告訴你

60%的需求已經很不錯了(其實大部分客戶提出的需求只有30%左右的),如果不了解這些行業

特性,勢必要跟著客戶走,客戶要你做什麼,你就得做什麼,這樣很容易被客戶牽著你的鼻子

走的,因為你根本提不出你自己的解決方案來,這也為以後軟體專案反反覆覆的修改,最後情

致導致失敗埋下了伏筆。

另乙個問題,就是軟體開發本身的問題。我們可以回想一下,我們專案組把做好的軟體給

客戶實施時,看著客戶在單擊某乙個模組時,我們實施人員象是走在定時炸彈路上,很害怕客

戶使用軟體時,出現大大的紅叉叉的bug,雖然我們專案組裡有測試人員,但是還是經常出現

紅叉叉的bug。好了,實施人員把這個bug給反饋給專案組去解決,這個問題,是已經解決,但

是又出現本來列印是沒有問題的,又變成這個列印出現bug,有沒有覺得這樣的bug反反覆覆的

出現,無休止的修正這些bug,這樣會造成實施人員怨聲載道:「什麼破開發人員、測試員,

怎麼老是出錯的,以後叫我怎麼服務客戶」。客戶就會抱怨:「什麼破軟體,當初你們說很多

客戶在用這樣的程式,是不是騙我的,把我們當成白老鼠啊」。銷售人員也會抱怨:「怎麼回

事,怎麼老是反反覆覆,下次我怎麼敢找客戶」。我舉這些例子,當然是不止這些,但這個是

由於軟體本身質量的問題而造成的,特別是剛剛成立沒多長時間的公司經常會出來這樣的問

題。至於嚴格簽訂合同、嚴格設計、嚴格測試、嚴格的驗收,我想不是很重要,重要把上面兩

個問題搞好了,其它的問題是迎刃而解的。今年

一月份我們接了乙個紡織布業的專案,我們得

重新寫方案、開發、測試、上線,我從需求分析、方案、設計,然後交給開發人員開發,交到

我,去客戶現場服務前後不超過10天,我就可

以基本脫手了。

c 程式設計時為什麼老是出現cout未定義

include using namespace std 加上這句 cout輸出流類宣告和定義都在iostream之中 對於非標準c 而言是iostream.h 其名字位於std空間,對於某些編譯器,特別是針對windows平台的開發工具,都要顯式宣告命名空間。cout是輸出函式 std是命名空間,s...

為什麼我們專案需要資料優化服務

早先幾年,硬體業存在摩爾定律,微處理器的效能每隔18個月提高一倍,而 下降一倍。在這種背景下,資料庫主機效能節節高公升,資料庫效能要提高,靠硬體的更新換代即可。此種情況下,許多程式設計師在開發時,有意無意地,忽略了資料庫應用的效能,而更關注需求實現的方便與簡單。目前,硬體業的摩爾定律已經失效。資料庫...

為什麼我們要寫軟體開發文件

為什麼文件是軟體開發中的一部分?計算機本身能夠執行符合邏輯的指令,我們在開發過程中只要按照嚴格的語法和嚴謹的定義編寫 那麼計算機就能夠執行。但是程式能夠執行就完事了嗎?在軟體行業流行這樣一句話,是讓人看的,機器只是順便執行下。我們在編寫 之前或者在編寫 過程中,甚至若干個迭代後,文件都是必不可少的,...