有助于找到不正確的、不一致的、遺漏的和冗余的需求。這樣的模型包括數(shù)據(jù)流圖、實(shí)體關(guān)系圖、狀態(tài)變換圖、對(duì)話框圖、對(duì)象類及交互作用圖。
需求整理并形成需求規(guī)格說明書
需求規(guī)格說明書的模板我想每家公司都是不一樣的,也沒有必要都一樣,但我認(rèn)為每個(gè)需求規(guī)格說明書至少應(yīng)包括,軟件需求一旦通過了評(píng)審,就應(yīng)該基線化,納入配置管理庫.而在配置管理庫中的文檔或代碼不能再輕易進(jìn)行修改.當(dāng)有需求要進(jìn)行變更的時(shí)候,就必須提出申請(qǐng),寫需求變更計(jì)劃,審核通過,才有權(quán)限進(jìn)行需求變更.然后配置管理員一定要做好需求的跟蹤,凡是跟變更需求有牽連的開發(fā)人員和測(cè)試人員都要同步的通知到和及時(shí)讓他們做好相應(yīng)部分的各類文檔的修改。
需求變更管理
需求的變更管理我個(gè)人認(rèn)為是最容易出問題,一般項(xiàng)目做不完也主要是由此產(chǎn)生。需求變更的出現(xiàn)主要是因?yàn)樵陧?xiàng)目的需求確定階段,用戶往往不能確切地定義自己需要什么。用戶常常以為自己清楚,但實(shí)際上他們提出的需求只是依據(jù)當(dāng)前的工作所需,而采用的新設(shè)備、新技術(shù)通常會(huì)改變他們的工作方式;或者要開發(fā)的系統(tǒng)對(duì)用戶來說也是個(gè)未知數(shù),他們以前沒有過相關(guān)的使用經(jīng)驗(yàn)。隨著開發(fā)工作的不斷進(jìn)展,系統(tǒng)開始展現(xiàn)功能的雛形,用戶對(duì)系統(tǒng)的了解也逐步深入。于是,他們可能會(huì)想到各種新的功能和特色,或?qū)σ郧疤岢龅囊筮M(jìn)行改動(dòng)。
他們了解得越多,新的要求也就越多,需求變更因此不可避免地一次又一次出現(xiàn)。如何有效的管理需求變更,下面是我公司目前的做法。公司采用Test Director作為需求管理工具,需求人員每次與客戶溝通后形成需求調(diào)查表,統(tǒng)一錄入Test Director,并進(jìn)行綜合及整理后形成需求規(guī)格說明書, 之后由研發(fā)部、產(chǎn)品部、及銷售代表(如果有客戶參加就更好了)進(jìn)行需求評(píng)審,建立需求基線。制訂簡(jiǎn)單、有效的變更控制流程,并形成文檔。在建立了需求基線后提出的所有變更都必須遵循變更控制流程進(jìn)行控制,同時(shí)每一筆重要的需求變更都需要客戶簽字確認(rèn)才認(rèn)為需求變更生效。需求變更后,受影響的軟件計(jì)劃、產(chǎn)品、活動(dòng)都要進(jìn)行相應(yīng)的變更,以保持和更新的需求一致。因?yàn)門est Director提供了需求變更記錄,可以幫助我們形成良好的文檔,便于進(jìn)行管理。
和客戶交談
你要面對(duì)“正確”的客戶區(qū)分不同層次的客戶需求,要面對(duì)不同層級(jí),不同部門的客戶,把客戶分類,區(qū)分需求的優(yōu)先級(jí)別.如果你做的項(xiàng)目業(yè)務(wù)是你熟悉的,那還好,如果是你不熟悉的,一定要花點(diǎn)精力學(xué)習(xí)一下這個(gè)行業(yè)業(yè)務(wù)的背景資料,這也是我上面談到的先請(qǐng)行業(yè)專家的原因。畢竟,客戶是不可能給你系統(tǒng)地介紹業(yè)務(wù)的。只有你通曉了行業(yè)業(yè)務(wù),才能和用戶交流,并正確而有效地引導(dǎo)客戶,做好需求分析,你不能指望客戶能明確地說出需求。當(dāng)然,這也是系統(tǒng)分析人員的職責(zé)所在。在開始做需求的時(shí)候,你最后花一點(diǎn)時(shí)間搞清楚你接觸的客戶是不是做實(shí)際業(yè)務(wù)的客戶,如果你面對(duì)的客戶不是將來的系統(tǒng)的實(shí)際使用者。你就有點(diǎn)麻煩了。
可能他是客戶公司派過來的IT部的人,他會(huì)提一大堆東西,而這些東西可能根本不是實(shí)際業(yè)務(wù)需要的功能,而他一般還會(huì)興致勃勃地給你一些技術(shù)實(shí)現(xiàn)的建議。這個(gè)時(shí)候你就要小心了,如果你聽了他的話,你可能在最后才發(fā)現(xiàn),你花了大量精力解決的問題,其實(shí)并不是客戶真正需要的。而你真正需要關(guān)注的,卻做得遠(yuǎn)遠(yuǎn)不夠。