關鍵字:需求分析 原則
對商業(yè)用戶來說,他們后面是成百上千個供應商,前面是成千上萬個消費顧客。怎樣利用軟件管理錯綜復雜的供應商和消費顧客,如何做好精細到一個小小調(diào)料包的進、銷、調(diào)、存的商品流通工作,這些都是商業(yè)企業(yè)需要信息管理系統(tǒng)的理由。軟件開發(fā)的意義也就在于此。而弄清商業(yè)用戶如此復雜需求的真面目,正是軟件開發(fā)成功的關鍵所在。
經(jīng)理:“我們要建立一套完整的商業(yè)管理軟件系統(tǒng),包括商品的進、銷、調(diào)、存管理,是總部-門店的連鎖經(jīng)營模式。通過通信手段門店自動訂貨,供應商自動結(jié)算,賣場通過掃條碼實現(xiàn)銷售,管理人員能夠隨時查詢門店商品銷售和庫存情況。另外,我們也得為政府部門提供關于商品營運的報告?!?/P>
分析員:“我已經(jīng)明白這個項目的大體結(jié)構框架,這非常重要,但在制定計劃之前,我們必須收集一些需求?!?/P>
經(jīng)理覺得奇怪:“我不是剛告訴你我的需求了嗎?”
分析員:“實際上,您只說明了整個項目的概念和目標。這些高層次的業(yè)務需求不足以提供開發(fā)的內(nèi)容和時間。我需要與實際將要使用系統(tǒng)的業(yè)務人員進行討論,然后才能真正明白達到業(yè)務目標所需功能和用戶要求,了解清楚后,才可以發(fā)現(xiàn)哪些是現(xiàn)有組件即可實現(xiàn)的,哪些是需要開發(fā)的,這樣可節(jié)省很多時間?!?/P>
經(jīng)理:“業(yè)務人員都在招商。他們非常忙,沒有時間與你們詳細討論各種細節(jié)。你能不能說明一下你們現(xiàn)有的系統(tǒng)?”
分析員盡量解釋從用戶處收集需求的合理性:“如果我們只是憑空猜想用戶的要求,結(jié)果不會令人滿意。我們只是軟件開發(fā)人員,而不是采購專家、營運專家或是財務專家,我們并不真正明白您這個企業(yè)內(nèi)部運營需要做些什么。我曾經(jīng)嘗試過,未真正明白這些問題就開始編碼,結(jié)果沒有人對產(chǎn)品滿意?!?/P>
經(jīng)理堅持道:“行了,行了,我們沒有那么多的時間。讓我來告訴您我們的需求。實際上我也很忙。請馬上開始開發(fā),并隨時將你們的進展情況告訴我?!?/P>
風險躲在需求的迷霧之后
以上我們看到的是某客戶項目經(jīng)理與系統(tǒng)開發(fā)小組的分析人員討論業(yè)務需求。在項目開發(fā)中,所有的項目風險承擔者都對需求分析階段備感興趣。這里所指的風險承擔者包括客戶方面的項目負責人和用戶,開發(fā)方面的需求分析人員和項目管理者。這部分工作做得到位,能開發(fā)出很優(yōu)秀的軟件產(chǎn)品,同時也會令客戶滿意。若處理不好,則會導致誤解、挫折、障礙以及潛在的質(zhì)量和業(yè)務價值上的威脅。因此可見——需求分析奠定了軟件工程和項目管理的基礎。
撥開需求分析的迷霧
像這樣的對話經(jīng)常出現(xiàn)在軟件開發(fā)的過程中??蛻繇椖拷?jīng)理的需求對分析人員來講,像“霧里看花”般模糊并令開發(fā)者感到困惑。那么,我們就撥開霧影,分析一下需求的具體內(nèi)容:
·業(yè)務需求——反映了組織機構或客戶對系統(tǒng)、產(chǎn)品高層次的目標要求,通常在項目定義與范圍文檔中予以說明。
·用戶需求——描述了用戶使用產(chǎn)品必須要完成的任務,這在使用實例或方案腳本中予以說明。
·功能需求——定義了開發(fā)人員必須實現(xiàn)的軟件功能,使用戶利用系統(tǒng)能夠完成他們的任務,從而滿足了業(yè)務需求。
·非功能性的需求——描述了系統(tǒng)展現(xiàn)給用戶的行為和執(zhí)行的操作等,它包括產(chǎn)品必須遵從的標準、規(guī)范和約束,操作界面的具體細節(jié)和構造上的限制。