軟件開發(fā)的冤枉路,帶來目前IT項目管理的另一段冤枉路,我們是繼續(xù)朝這條冤枉路走下去,還是找尋軟件工程的正確路線?希望各從業(yè)人員自己判斷,并做出適當結論。
客戶基本不理解本身的需求,又如何能夠告訴我們所期待的“需求”呢?又如何會認同技術人員收集到的“需求”及確認所謂“需求說明書”呢?
軟件開發(fā)的冤枉路
大部分軟件開發(fā)從業(yè)人員常訴說“很難把握客戶的需求”。筆者認為這句話不應該從一個專業(yè)人員口中說出來,你聽過一個裝修工人告訴你他不能把握客戶的裝修需求嗎?但這卻是事實。如何能夠“把握客戶的需求”便成為軟件工程中急需解決的問題。
很多專家發(fā)表很多關于“應該如何才能夠把握客戶的需求”,“需要采用哪些手段”等理論。但筆者以過去三十多年科技企業(yè)軟件開發(fā)的經驗告訴大家,基本不用去“把握”客戶的“需求”。
軟件開發(fā)的冤枉路,帶來目前IT項目管理的另一段冤枉路,我們是繼續(xù)朝這條冤枉路走下去,還是找尋軟件工程的正確路線?希望各從業(yè)人員自己判斷,并做出適當結論。
國內對需求的解釋
筆者從1972年開始從事軟件開發(fā),1979年開始成為開發(fā)小組主管,1984年正式成為項目經理,到今天已經積累了三十多年的開發(fā)及二十多年的管理經驗。筆者最近這兩年在國內從事教育及咨詢的工作中,發(fā)覺國內軟件從業(yè)人員所談的“需求”和過去在國外執(zhí)行軟件開發(fā)時所談的“需求”有很大的差異。
在國外建設系統(tǒng)的時候,“需求”是技術人員建立的,不是從客戶提出的。但國內的軟件從業(yè)人員所談的“需求”是在“調研”過程中由客戶提出的。坦白說,客戶基本不理解本身的需求,又如何能夠告訴我們所期待的“需求”呢?又如何會認同技術人員收集到的“需求”及確認所謂“需求說明書”呢?
試想想,當我們要研制一件產品的時候,我們會問消費者他們對產品的需求嗎?也許我們會咨詢他們的意見,但生產商會綜合消費者的意見,廠商本身對市場的理解,和最終客戶群的采購“目的”來制定產品功能需求,最后成為產品的規(guī)格,才投入生產,推廣到市場中。這個道理很簡單,但我國軟件從業(yè)人員卻認為軟件工程與產品開發(fā)是不一樣的,不能用同一方法處理,一直在走冤枉路。
我們的做法是,從項目開始進行“調研”(另一個軟件工業(yè)的重大誤區(qū)),對客戶的基層人員進行訪談,希望能夠在調研期間讓客戶說出本身的需求,從而把握客戶的需求,編寫所謂調研報告或需求說明書。
其實,所謂調研是進行調查,繼而進行研究,這是兩個工作,但我們常把它變成一個工作來進行。國內對“gather requirements”(收集需求)的理解是從客戶的訪談、調查、研究過程中發(fā)掘客戶的需求,由于客戶對需求不明確,技術人員未能把握需求,所以一調研便花費很長時間。
國外對需求的詮譯
國外軟件行業(yè)基本沒有所謂“調研”的概念。我們在項目的起始階段只有“fact finding”(或FF,即“找尋事實”)。顧名思義,F(xiàn)F的目的是理解客戶如何執(zhí)行工作,技術人員對客戶進行訪談,目的并不是把握客戶的需求,而是理解客戶目前如何執(zhí)行自身的工作。訪談報告只包括目前工作如何在部門中實施,是現(xiàn)狀的描述,所以往往能夠得到客戶的認同及確認。
他們在訪談結束后,開始對現(xiàn)狀進行分析,考慮整個工作流程是否合理,如何才能夠達到項目的目標,從如何達到項目的目標來決定項目的需求。
國內外的差異
我們必須認識到一點, 軟件開發(fā)的目的是為企業(yè)提升生產率(Productivity improvement),提升工作效率(efficiency improvement)及建立商業(yè)效益(business benefi
項目經理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html