需求收集真正的體現(xiàn)了需求的市場(chǎng)和用戶驅(qū)動(dòng)。訪談,調(diào)查表,頭腦風(fēng)暴,競(jìng)爭(zhēng)對(duì)手和產(chǎn)品分析都是需求收集的方法。需求收集我們需要搞清楚用戶真正的需求,問(wèn)題背后的深層次問(wèn)題,這樣才可能為挖掘需求提供數(shù)據(jù)。需求收集的過(guò)程應(yīng)該流程化,收集的需求應(yīng)該分類(lèi)入庫(kù)的歸檔化。必須將需求收集活動(dòng)看做為一個(gè)結(jié)構(gòu)化的流程或過(guò)程,以真正的促進(jìn)收集的過(guò)程和采集的數(shù)據(jù)的有效性。
收集的需求在論證分析中應(yīng)該確定優(yōu)先級(jí),而優(yōu)先級(jí)的確認(rèn)應(yīng)該引入價(jià)值工程,即我們應(yīng)該認(rèn)識(shí)到一個(gè)需求的重要性應(yīng)該體現(xiàn)到它對(duì)產(chǎn)品價(jià)值的短期和長(zhǎng)期的增值上面。要理解這個(gè),就必須要考慮收集的需求是普遍需求還是特殊需求,是核心業(yè)務(wù)對(duì)應(yīng)需求還是輔助業(yè)務(wù)對(duì)應(yīng)需求,是使用頻率高的需求還是偶爾使用的功能點(diǎn)需求。我們必須有清晰的頭腦來(lái)分析用戶急的是否就一定是優(yōu)先級(jí)高的需求。
用戶往往習(xí)慣了給我們提希望系統(tǒng)實(shí)現(xiàn)什么功能,這些需求往往是用戶已經(jīng)轉(zhuǎn)換后的需求而不是原始需求。當(dāng)用戶遇到業(yè)務(wù)上的問(wèn)題的時(shí)候他們往往假設(shè)了一種實(shí)現(xiàn)方式,如果在需求收集過(guò)程中錯(cuò)誤的把問(wèn)題的解當(dāng)做需求,則我們就忽略掉了真正的原始需求。需求收集的重點(diǎn)應(yīng)該在用戶真正面臨的問(wèn)題域和問(wèn)題場(chǎng)景的收集。
需求收集人員的業(yè)務(wù)背景和經(jīng)驗(yàn)往往對(duì)需求收集有效性有很大的影響。需求收集的訪談過(guò)程不是簡(jiǎn)單的聽(tīng)用戶如何講,而是需求我們?nèi)ヒ龑?dǎo)用戶講出他們真正面臨的問(wèn)題。通過(guò)我們積極的溝通讓用戶把他們真實(shí)的想法真正的表達(dá)出來(lái)。
需求收集是整個(gè)軟件產(chǎn)品開(kāi)發(fā)的源頭,是確定產(chǎn)品方向和定位的重要活動(dòng)。需求收集活動(dòng)出現(xiàn)大的誤差將是方向性的重大錯(cuò)誤。如果我們開(kāi)發(fā)出來(lái)的產(chǎn)品不能真正滿足用戶的需要和得到用戶的認(rèn)可,那產(chǎn)品本身就不可能創(chuàng)造價(jià)值,及時(shí)這個(gè)產(chǎn)品有很好的質(zhì)量,易用性和功能等,這個(gè)產(chǎn)品仍然是失敗的。
需求分析和開(kāi)發(fā)
需求分析工作需要意識(shí)到是包含了業(yè)務(wù)分析和系統(tǒng)分析兩部分內(nèi)容。對(duì)于業(yè)務(wù)分析包括了業(yè)務(wù)流程分析,組織結(jié)構(gòu)和崗位角色分析,以外的對(duì)象分析,數(shù)據(jù)流分析,重點(diǎn)是描述現(xiàn)在。系統(tǒng)分析的內(nèi)容重點(diǎn)是將需求轉(zhuǎn)換為系統(tǒng)可實(shí)現(xiàn)的軟件需求,因此必須要考慮到需求的可實(shí)現(xiàn)性,如果對(duì)于面向?qū)ο蠓治鰟t重點(diǎn)在用例分析,業(yè)務(wù)對(duì)象建模,業(yè)務(wù)規(guī)則分析。系統(tǒng)分析最好是有軟件開(kāi)發(fā)經(jīng)驗(yàn)的人和業(yè)務(wù)背景的人進(jìn)行,這里的一個(gè)重點(diǎn)就是要把軟件開(kāi)發(fā)中已經(jīng)成熟的分析模式和模型和實(shí)際的業(yè)務(wù)進(jìn)行匹配。
軟件產(chǎn)品要能夠適應(yīng)需求的變化,不僅僅是軟件架構(gòu)上的可擴(kuò)展性考慮,更重要的是在需求分析階段就需要考慮軟件需求如何適應(yīng)用戶需求的變化。對(duì)應(yīng)用戶經(jīng)??赡茏儎?dòng)的需求點(diǎn)進(jìn)行抽象,引入一些標(biāo)準(zhǔn)的可配置的模型,如權(quán)限模型,工作流模型等。軟件需求對(duì)業(yè)務(wù)需求和用戶需求的一個(gè)處理要點(diǎn)就是會(huì)考慮到哪些經(jīng)常變化的需求需要轉(zhuǎn)換為靈活的可配置的需求。
用戶都不清楚自己要什么或者說(shuō)用戶的需求經(jīng)常變動(dòng)更應(yīng)該促進(jìn)我們?nèi)ジ倪M(jìn)需求分析和開(kāi)發(fā)的過(guò)程。在這個(gè)時(shí)候系統(tǒng)分析員的開(kāi)發(fā)經(jīng)驗(yàn)和業(yè)務(wù)背景將起到很重要的作用。需求的一種變更對(duì)于軟件開(kāi)發(fā)往往是一種必然的情況,只是如何把它變更的范圍控制住,如何實(shí)現(xiàn)需求的變更不是要修改設(shè)計(jì)和編碼,而是通過(guò)靈活的配置來(lái)實(shí)現(xiàn)的。
收集來(lái)的用戶需求如何轉(zhuǎn)換為需求規(guī)格說(shuō)明書(shū),中間的一個(gè)重要過(guò)程就是需求分析和開(kāi)發(fā)。這樣正好體系一些需求分析工作的重點(diǎn)內(nèi)容,通過(guò)識(shí)別需求的優(yōu)先級(jí)以更好的安排項(xiàng)目資源和進(jìn)度,有的放矢。通過(guò)對(duì)原始需求的分類(lèi),合并,抽象以提取通用的需求模型。通過(guò)識(shí)別非功能性需求以增加整個(gè)系統(tǒng)的健壯性,性能和易用性。通過(guò)對(duì)需求模塊單元的劃分,流程和規(guī)則的描述,功能點(diǎn)分析為項(xiàng)目進(jìn)度計(jì)劃安排和進(jìn)度跟蹤創(chuàng)造條件。因此我們將需求分析是一種業(yè)務(wù)和系統(tǒng)的模式匹配,如