需求開發(fā)與管理是軟件項目中一項十分重要的工作,據(jù)調(diào)查顯示在眾多失敗的軟件項目中,由于需求原因?qū)е碌募s占到45%,因此,需求工作將對軟件項目能否最終實現(xiàn)產(chǎn)生至關(guān)重要的影響。雖然如此,在項目開發(fā)工作中,很多人對需求的認(rèn)識還遠(yuǎn)遠(yuǎn)不夠,從本人參與或接觸到的一些項目來看,小到幾十萬元,大到上億元的軟件項目的需求都或多多少的存在問題。
有的是開發(fā)者本身不重視原因、有的是技術(shù)原因、有的是人員組織原因、有的是溝通原因、有的是機(jī)制原因,以上種種原因都表明做好軟件需求開發(fā)是一項系統(tǒng)工作,而不是簡單的技術(shù)工作,只有系統(tǒng)的了解和掌握需求的基本概念、方法、手段、評估標(biāo)準(zhǔn)、風(fēng)險等相關(guān)知識,并在實踐中加以應(yīng)用,才能真正做好需求的開發(fā)和管理工作。
本文將通過介紹關(guān)于軟件需求的基本知識和個人在實際工作中總結(jié)的一些經(jīng)驗,幫助讀者了解軟件需求,學(xué)習(xí)需求開發(fā)的一些基本方法,避免因需求原因而導(dǎo)致的項目失敗。
1 什么是軟件需求和需求工程
1.1 軟件需求的定義
在IEEE軟件工程標(biāo)準(zhǔn)詞匯表(1997年)中定義軟件需求為:
1)用戶解決問題或達(dá)到目標(biāo)所需的條件或能力。
2)系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其它正式規(guī)定文檔所需具有的條件或能力。
3)一種反映上面(1)或(2)所描述的條件或權(quán)能的文檔說明。 實通俗的講,“需求”就是用戶的需要,它包括用戶要解決的問題、達(dá)到的目標(biāo)、以及實現(xiàn)這些目標(biāo)所需要的條件,它是一個程序或系統(tǒng)開發(fā)工作的說明,表現(xiàn)形式一般為文檔形式。
1.2 需求工程的定義
需求分析的過程,也叫做需求工程和需求階段,它包括了需求開發(fā)和需求管理兩個部分。需求開發(fā)是指從情況收集、分析和評價到編寫文檔、評審等一系列產(chǎn)生需求的活動,分為四個階段:情況獲取、分析、制訂規(guī)格說明和評審。這四個階段不一定是遵循線性順序的,他們的活動是相互獨立和反復(fù)的。需求管理是軟件項目開發(fā)過程中控制和維持需求約定的活動,它包括:變更控制、版本控制、需求跟蹤、需求狀態(tài)跟蹤等工作。
2 需求分析的風(fēng)險
由于需求分析的參與人員、業(yè)務(wù)模式、投資、時間等客觀因素的影響和需求本身具有主觀性和可描述性差的特點,因此,需求分析工作往往面臨著一些潛在的風(fēng)險。這些風(fēng)險主要表現(xiàn)在:
1)用戶不能正確表達(dá)自身的需求。在實際開發(fā)過程中,常常碰到用戶對自己真正的需求并不是十分明確的情況,他們認(rèn)為計算機(jī)是萬能的,只要簡單的說說自己想干什么就是把需求說明白了,而對業(yè)務(wù)的規(guī)則、工作流程卻不愿多談,也講不清楚。這種情況往往會增加需求分析工作難度,分析人員需要花費更多的時間和精力與用戶交流,幫助他們梳理思路,搞清用戶的真實需求。
2)業(yè)務(wù)人員配合力度不夠。有的用戶日常工作繁忙,他們不愿意付出更多的時間和精力向分析人員講解業(yè)務(wù),這樣會加大分析人員的工作難度和工作量,也可能導(dǎo)致因業(yè)務(wù)需求不足而使系統(tǒng)無法使用。
3)用戶需求的不斷變更。由于需求識別不全、業(yè)務(wù)發(fā)生變化、需求本身錯誤、需求不清楚等原因,需求在項目的整個生命周期都可能發(fā)生變化,因此,我們要認(rèn)識到,軟件開發(fā)的過程實際上是同變化做斗爭的過程,需求變化是每個開發(fā)人員、項目管理人員都會遇到的問題,也是最頭痛的問題,一旦發(fā)生了需求變化,就不得不修改設(shè)計、重寫代碼、修改測試用例、調(diào)整項目計劃等等,需求的變化就像是萬惡之源,為項目的正常的進(jìn)展帶來不盡的麻煩。
4)需求的完整程度。需求如何做到?jīng)]有遺漏?這是一個大問題,大的系統(tǒng)要想窮舉需求幾乎是不可能的,即使小的系統(tǒng),新的需求也總會不時地冒出來。一個系統(tǒng)很難確定明確的范圍并把所有需求一次性提出來,這會導(dǎo)致開發(fā)人員在項目進(jìn)展中去不斷完善需求,先建立系統(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)卻會因為項目遲遲看不到實際成果而焦慮,他們往往會強(qiáng)迫項目盡快往前推進(jìn),需求開發(fā)人員也會被需求的復(fù)雜和善變折騰的筋疲力盡,他們也希望盡快結(jié)束需求階段。
3 如何做好需求工作
需求分析是軟件項目開發(fā)中最困難的一項工作,它不僅要求分析人員具有豐富的需求分析經(jīng)驗和良好的專業(yè)素質(zhì),還要求分析人員具有良好的學(xué)習(xí)能力、公關(guān)能力、語言能力和組織能力。在實際工作中分析人員要面對不同的單位、不同的部門、不同的人員、不同的文化、不同的關(guān)系、不同的管理水平等等不同的情況,面對如此紛繁復(fù)雜的環(huán)境,如何做好需求分析工作?首先需要建立一個有效的工作機(jī)制,只有建立了工作機(jī)制,才能保證需求工作按照既定方案執(zhí)行,需求開發(fā)和管理的參與者才會在一種有序的狀態(tài)下工作。其次才是充分運(yùn)用工作機(jī)制和個人能力去獲取問題、分析問題、編寫需求文檔和進(jìn)行需求管理。
3.1 建立需求分析工作機(jī)制需考慮的幾個因素
1)抓住決策者最迫切和最關(guān)心的問題,引起重視。用戶方?jīng)Q策者對項目的關(guān)心重視程度是項目能否順利開展的關(guān)鍵,決策者的真實意圖也是用戶方的最終需求,因此,在開發(fā)過程中要利用一切機(jī)會了解決策者關(guān)心的問題,同時也要讓他們了解項目的情況。在諸如談判、專題匯報、協(xié)調(diào)會議、領(lǐng)導(dǎo)視察、階段性成果演示等過程中用簡短明確的語言或文字抓住領(lǐng)導(dǎo)最關(guān)心的問題,引導(dǎo)他們了解和重視項目的開發(fā),當(dāng)決策者認(rèn)識到項目的重要性時,需求分析工作在人力、物力、時間上就有了保障。
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評論 查看完整評論 | |