風(fēng)險(xiǎn)躲在需求的迷霧之后
在項(xiàng)目開(kāi)發(fā)中,所有的項(xiàng)目風(fēng)險(xiǎn)承擔(dān)者都對(duì)需求分析階段備感興趣。這里所指的風(fēng)險(xiǎn)承擔(dān)者包括客戶方面的項(xiàng)目負(fù)責(zé)人和用戶,開(kāi)發(fā)方面的需求分析人員和項(xiàng)目管理者。這部分工作做得到位,能開(kāi)發(fā)出很優(yōu)秀的軟件產(chǎn)品,同時(shí)也會(huì)令客戶滿意。若處理不好,則會(huì)導(dǎo)致誤解、挫折、障礙以及潛在的質(zhì)量和業(yè)務(wù)價(jià)值上的威脅。因此可見(jiàn)——需求分析奠定了軟件工程和項(xiàng)目管理的基礎(chǔ)。
撥開(kāi)需求分析的迷霧
像這樣的對(duì)話經(jīng)常出現(xiàn)在軟件開(kāi)發(fā)的過(guò)程中??蛻繇?xiàng)目經(jīng)理的需求對(duì)分析人員來(lái)講,像“霧里看花”般模糊并令開(kāi)發(fā)者感到困惑。那么,我們就撥開(kāi)霧影,分析一下需求的具體內(nèi)容:
業(yè)務(wù)需求——反映了組織機(jī)構(gòu)或客戶對(duì)系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,通常在項(xiàng)目定義與范圍文檔中予以說(shuō)明。
用戶需求——描述了用戶使用產(chǎn)品必須要完成的任務(wù),這在使用實(shí)例或方案腳本中予以說(shuō)明。
功能需求——定義了開(kāi)發(fā)人員必須實(shí)現(xiàn)的軟件功能,使用戶利用系統(tǒng)能夠完成他們的任務(wù),從而滿足了業(yè)務(wù)需求。
非功能性的需求——描述了系統(tǒng)展現(xiàn)給用戶的行為和執(zhí)行的操作等,它包括產(chǎn)品必須遵從的標(biāo)準(zhǔn)、規(guī)范和約束,操作界面的具體細(xì)節(jié)和構(gòu)造上的限制。
需求分析報(bào)告——報(bào)告所說(shuō)明的功能需求充分描述了軟件系統(tǒng)所應(yīng)具有的外部行為?!靶枨蠓治鰣?bào)告”在開(kāi)發(fā)、測(cè)試、質(zhì)量保證、項(xiàng)目管理以及相關(guān)項(xiàng)目功能中起著重要作用。
前面提到的客戶項(xiàng)目經(jīng)理通常闡明產(chǎn)品的高層次概念和主要業(yè)務(wù)內(nèi)容,為后繼工作建立了一個(gè)指導(dǎo)性的框架。其他任何說(shuō)明都應(yīng)遵循“業(yè)務(wù)需求”的規(guī)定,然而“業(yè)務(wù)需求”并不能為開(kāi)發(fā)人員提供開(kāi)發(fā)所需的許多細(xì)節(jié)說(shuō)明。
下一層次需求——用戶需求,必須從使用產(chǎn)品的用戶處收集。因此,這些用戶構(gòu)成了另一種軟件客戶,他們清楚要使用該產(chǎn)品完成什么任務(wù)和一些非功能性的特性需求。例如:程序的易用性、健壯性和可靠性,而這些特性將會(huì)使用戶很好地接受具有該特點(diǎn)的軟件產(chǎn)品。
經(jīng)理層有時(shí)試圖代替實(shí)際用戶說(shuō)話,但通常他們無(wú)法準(zhǔn)確說(shuō)明“用戶需求”。用戶需求來(lái)自產(chǎn)品的真正使用者,必須讓實(shí)際用戶參與到收集需求的過(guò)程中。如果不這樣做,產(chǎn)品很可能會(huì)因缺乏足夠的信息而遺留不少隱患。
在實(shí)際需求分析過(guò)程中,以上兩種客戶可能都覺(jué)得沒(méi)有時(shí)間與需求分析人員討論,有時(shí)客戶還希望分析人員無(wú)須討論和編寫(xiě)需求說(shuō)明就能說(shuō)出用戶的需求。除非遇到的需求極為簡(jiǎn)單;否則不能這樣做。如果您的組織希望軟件成功,那么必須要花上數(shù)天時(shí)間來(lái)消除需求中模糊不清的地方和一些使開(kāi)發(fā)者感到困惑的方面。
優(yōu)秀的軟件產(chǎn)品建立在優(yōu)秀的需求基礎(chǔ)之上,而優(yōu)秀的需求源于客戶與開(kāi)發(fā)人員之間有效的交流和合作。只有雙方參與者都明白自己需要什么、成功的合作需要什么時(shí),才能建立起一種良好的合作關(guān)系。
由于項(xiàng)目的壓力與日俱增,所有項(xiàng)目風(fēng)險(xiǎn)承擔(dān)者有著一個(gè)共同目標(biāo),那就是大家都想開(kāi)發(fā)出一個(gè)既能實(shí)現(xiàn)商業(yè)價(jià)值又能滿足用戶要求,還能使開(kāi)發(fā)者感到滿足的優(yōu)秀軟件產(chǎn)品。
客戶的需求觀
客戶與開(kāi)發(fā)人員交流需要好的方法。下面建議20條法則,客戶和開(kāi)發(fā)人員可以通過(guò)評(píng)審以下內(nèi)容并達(dá)成共識(shí)。如果遇到分歧,將通過(guò)協(xié)商達(dá)成對(duì)各自義務(wù)的相互理解,以便減少以后的磨擦(如一方要求而另一方不愿意或不能夠滿足要求)。
1、 分析人員要使用符合客戶語(yǔ)言習(xí)慣的表達(dá)
需求討論集中于業(yè)務(wù)需求和任務(wù),因此要使用術(shù)語(yǔ)??蛻魬?yīng)將有關(guān)術(shù)語(yǔ)(例如:采價(jià)、印花商品等采購(gòu)術(shù)語(yǔ))教給分析人員,而客戶不一定要懂得計(jì)算機(jī)行業(yè)的術(shù)語(yǔ)。
2、分析人員要了解客戶的業(yè)務(wù)及目標(biāo)
只有分析人員更好地了解客戶的業(yè)務(wù),才能使產(chǎn)品更好地滿足需要。這將有助于開(kāi)發(fā)人員設(shè)計(jì)出真正滿足客戶需要并達(dá)到期望的優(yōu)秀軟件。為幫助開(kāi)發(fā)和分