系統(tǒng)很難確定明確的范圍并把所有需求一次性提出來,這會導(dǎo)致開發(fā)人員在項目進展中去不斷完善需求,先建立系統(tǒng)結(jié)構(gòu)再完成需求說明,造成返工的可能性很大,會給開發(fā)人員帶來挫折感,降低他們完成項目的信心。
(5)需求的細(xì)化程度。需求到底描述到多細(xì),才算可以結(jié)束了?雖然國家標(biāo)準(zhǔn)有需求說明的編寫規(guī)范,但具體到某一個需求上,很難給出一個具體的指標(biāo),可謂仁者見仁,智者見智,并沒有定論。需求越細(xì),周期越長,可能的變化越多,對設(shè)計的限制越嚴(yán)格,對需求的共性提取要求也越高,相反,需求越粗,開發(fā)人員在技術(shù)設(shè)計時不清楚的地方就越多,影響技術(shù)設(shè)計。
(6)需求描述的多義性。需求描述的多義性一方面是指不同讀者對需求說明產(chǎn)生了不同的理解;另一方面是指同一讀者能用不同的方式來解釋某個需求說明。多義性會使用戶和開發(fā)人員等項目參與者產(chǎn)生不同的期望,也會使開發(fā)、測試人員為不同的理解而浪費時間,帶來不可避免的后果便是返工重做。
(7)忽略了用戶的特點分析。分析人員往往容易忽略了系統(tǒng)用戶的特點,系統(tǒng)是由不同的人使用其不同的特性,使用頻繁程度有所差異,使用者受教育程度和經(jīng)驗水平不盡相同。如果忽略這些的話,將會導(dǎo)致有的用戶對產(chǎn)品感到失望。
(8)需求開發(fā)的時間保障。為了確保需求的正確性和完整性,項目負(fù)責(zé)人往往堅持要在需求階段花費較多的時間,但用戶和開發(fā)部門的領(lǐng)導(dǎo)卻會因為項目遲遲看不到實際成果而焦慮,他們往往會強迫項目盡快往前推進,需求開發(fā)人員也會被需求的復(fù)雜和善變折騰的筋疲力盡,他們也希望盡快結(jié)束需求階段。
3 如何做好需求工作
需求分析是軟件項目開發(fā)中最困難的一項工作,它不僅要求分析人員具有豐富的需求分析經(jīng)驗和良好的專業(yè)素質(zhì),還要求分析人員具有良好的學(xué)習(xí)能力、公關(guān)能力、語言能力和組織能力。在實際工作中分析人員要面對不同的單位、不同的部門、不同的人員、不同的文化、不同的關(guān)系、不同的管理水平等等不同的情況,面對如此紛繁復(fù)雜的環(huán)境,如何做好需求分析工作?首先需要建立一個有效的工作機制,只有建立了工作機制,才能保證需求工作按照既定方案執(zhí)行,需求開發(fā)和管理的參與者才會在一種有序的狀態(tài)下工作。其次才是充分運用工作機制和個人能力去獲取問題、分析問題、編寫需求文檔和進行需求管理。
3.1 建立需求分析工作機制需考慮的幾個因素
(1)抓住決策者最迫切和最關(guān)心的問題,引起重視。用戶方?jīng)Q策者對項目的關(guān)心重視程度是項目能否順利開展的關(guān)鍵,決策者的真實意圖也是用戶方的最終需求,因此,在開發(fā)過程中要利用一切機會了解決策者關(guān)心的問題,同時也要讓他們了解項目的情況。在諸如談判、專題匯報、協(xié)調(diào)會議、領(lǐng)導(dǎo)視察、階段性成果演示等過程中用簡短明確的語言或文字抓住領(lǐng)導(dǎo)最關(guān)心的問題,引導(dǎo)他們了解和重視項目的開發(fā),當(dāng)決策者認(rèn)識到項目的重要性時,需求分析工作在人力、物力、時間上就有了保障。
(2)建立組織保障,明確的責(zé)任分工。項目開發(fā)一般都會成立相應(yīng)的項目組或工程組,目前,常見的組織形式是:產(chǎn)品管理組、質(zhì)量與測試組、程序開發(fā)組、用戶代表組和后勤保障組,各組的主要分工是:產(chǎn)品管理組負(fù)責(zé)確定和設(shè)置項目目標(biāo),根據(jù)需求的優(yōu)先級確定功能規(guī)范,向相關(guān)人員通報項目進展。程序管理組負(fù)責(zé)系統(tǒng)分析,根據(jù)軟件開發(fā)標(biāo)準(zhǔn)協(xié)調(diào)日常開發(fā)工作確保及時交付開發(fā)任務(wù),控制項目進度。程序開發(fā)組負(fù)責(zé)按照功能規(guī)范要求交付軟件系統(tǒng)。質(zhì)量與測試組負(fù)責(zé)保證系統(tǒng)符合功能規(guī)范的要求,測試工作與開發(fā)工作是獨立并行的。用戶代表組負(fù)責(zé)代表用戶方提出需求,負(fù)責(zé)軟件的用戶方測試。后勤保障組負(fù)責(zé)確保項目順利進行的后勤保障工作。 [page]
(