需求管理之客戶需求何時休?
由於這已經成為每一個軟件開發人員的心頭大患,客戶需求在軟件這個獨特的行業裏。體現著最獨特的含義,由於需求是軟件項目存在的意義所在。而需求的變化讓軟件最後攆手不著,我們大家都會有“客戶需求何時休?”的體會。
軟件是服務於業務需求的,沒有業務需求的軟件肯定是沒有價值的。國內的軟件業普遍現象是:軟件項目遠遠大於軟件產品。這也是國內軟件所面臨的一個嚴重問題。國內軟件好象在死亡線上掙紮。項目成為軟件企業生存的唯一依賴,而項目恰恰是最難於侍奉的。
軟件公司在積累一定的項目經驗基礎上,應該形成具有自我產權核心的技術與經驗,把這經驗總結與匯集成產品,才有可能大踏步的前進。
然而這說來簡單啊。本以為一個個的項目能夠為以後的產品積累資金與經驗。然而每一個項目的需求不斷變化,無休止的改動與維護,利潤趨向於零;人才也“超市場規律”的流失,經驗也“人去樓空”。
軟件項目非常強調客戶需求。而國內軟件業好象對客戶需求不夠重視,無論是新上任的項目負責人還是有經驗的項目負責人,好象都重技術。輕需求。中國的軟件人員們都在追求高技術。好象技術好就是老大,21世紀誰最紅----軟件技術高手。
你看看一個個軟件技術高手,在網上聽到的都是“大哥”“大俠”“高手”,這過分的崇拜技術也是導致藐視客戶需求的一個原因。軟件不是技術的積累。不是技術好就能設計軟件,技術是能夠解決軟件開發中的一些問題,但它僅僅是解決軟件怎樣實現,而不能解決軟件怎樣去做。
項目開始了,設計者們都把了解客戶需求作為軟件的需求,把客戶的要求拿回來後看看就著手DB設計,然後系統架構,接著開發,這也能夠理解,由於我相信中國的軟件項目好象沒有一個不是急的。
問問IT的同行們“項目急嗎”。十有八九說“急啊,急死人了”。
沒辦法啊,需求看著那麽簡單,報價自然廉價了,結果問題卻非常多非常多,再不抓緊就是虧老本的事了。
最後呢。客戶驗收的周期遠遠大於開發周期。非常easy,客戶需求被低估了,驗收時客戶常會說:
這裏的關系不是這種,應該是那樣那樣
我們的流程不是這樣走的。應該是那樣那樣
這裏不是一一相應的,而是一對多的關系
要是這裏刪除了,那裏怎麽會出錯呢
這個最好做成可維護的,我隨時須要加入(fuck)
這時你的心肯定是拔涼拔涼的,問題是越改越多了,一方面是由於軟件設計時確實誤解了客戶的意思,二是客戶也是在使用時才想起來應該那樣那樣。
有時客戶初期說的和後來說的是矛盾的,能夠理解,客戶天生就沒有這麽強的邏輯性的。但作為軟件開發。你又能把客戶怎樣?他才是上帝,你難道非要讓客戶承認錯誤,承認不承認你都得改,平不了自己的氣還要得罪客戶,還是認命吧。這改動需求啊,就跟任賢齊說的:“一個還沒過去。一個又來侵襲”。
事實上問題出在開頭,客戶需求僅僅是軟件需求分析的一部分,盡管是比較重要的一部分,但也不要僅僅是去記客戶的需求,而是要把客戶的需求進行分析,分析什麽?
客戶本身是不怎麽懂技術的。客戶僅僅知道自己的業務需求,而在軟件設計時,是在把業務需求抽象到系統中實現的。把業務轉變為邏輯時,一切都應該符合邏輯的,但客戶的業務思想有時候在軟件系統實現時會有問題的,這就須要分析時分析出來的。
少了分析。問題也會在後面的開發中暴露出來,到時可就更麻煩了。
還有客戶的需求本身會有矛盾(這矛盾是指在邏輯角度來講),客戶本身是意識不到的,僅僅有在分析設計時,才會分析出這裏的矛盾。而這些問題。假設在期初時。軟件負責人不分析。而是純粹的“聽從”客戶要求去做,當暴露這些問題時,你怪客戶也沒用啊。
因此,非常easy,在了解客戶需求時,不要不動腦子,不要一味的點頭說“I C”,事實上在表面的業務裏面可能包括著N多的細節,這些細節是須要你反問客戶的,僅僅有當你提的問題越多,終於獲取的需求最詳細,才幹讓項目越順利。並且有非常多問題,都是在你的反問中,客戶也才開始思考本來沒思考過的問題,客戶也會找到一種合理的需求給你,有人會認為這樣了解客戶需求未免太麻煩了。至於一些在技術上會遇到問題的地方。也要告訴客戶,別以為到時候再說,客戶是不關心你的技術細節的。但你假設給他解釋的話,他也會試著理解的。
項目就算急。也不能急在需求分析上。軟件再小,需求再簡單,我想不可少的就是需求分析。在需求分析階段解決這個問題的代價是最小的,越往後就成次方級遞增。因此,要讓你的項目能順利下去,不要再追求技術了。冷靜的先分析一下客戶需求才是最關鍵的。
客戶的需求本身是無休止,由於他們本身也在變,但當你期初的分析合理,後面的變動也將在邏輯上變動。相信代價已經不會那麽大了。
這事實上也體現了系統的擴展性。
別指望著客戶需求會停止,我想大家都有這方面的體驗,當然了,也不是說客戶的需求分析出來後都要去做,由於項目的價格,在軟件設計時還是要分析哪些應該實現。哪些應該放棄,由於做項目跟做產品全然不一樣。要對客戶的需求進行合理的分析,該舍的還是要舍。但有一點能夠相信,當系統最後表結構出問題,邏輯上不符合業務時。那肯定是需求分析沒做好。
要記得下次需求分析時多問問清楚了。
事實上這些道理大家都知道,但在實踐中卻往往被忽略了,以此文章僅僅是想讓大家引起註意,客戶的需求盡管不可能休止,但我們能夠把代價壓縮的盡可能小。
需求管理之客戶需求何時休?