檢查并提出關(guān)于需求的問(wèn)題。反過(guò)來(lái),負(fù)責(zé)任的需求分析人員應(yīng)該回答工程師提出的問(wèn)題,并將這些澄清記錄在需求文檔中。出于項(xiàng)目規(guī)劃的目的,應(yīng)該為這種檢查分配時(shí)間,尤其是讓分析人員直接與客戶一起檢查未知問(wèn)題以獲得更多細(xì)節(jié)的時(shí)間。因此,需求規(guī)格說(shuō)明書(shū)檢查應(yīng)該成為常規(guī)工作,而不是項(xiàng)目中的例外情況。最后,在開(kāi)始設(shè)計(jì)之前應(yīng)該解決所有的開(kāi)發(fā)人員問(wèn)題。如果完備的需求規(guī)格說(shuō)明書(shū)檢查受到影響,那么您的項(xiàng)目團(tuán)隊(duì)就面臨著工程師在系統(tǒng)設(shè)計(jì)中引進(jìn)不希望的假定的風(fēng)險(xiǎn)。
除了檢查之外,另一種可用的有效實(shí)踐是使用用例來(lái)表達(dá)功能需求。用例通過(guò)從用戶的觀點(diǎn)將系統(tǒng)功能記錄為一系列步驟描述了系統(tǒng)與外部世界交互時(shí)的行為。該視角為軟件團(tuán)隊(duì)和他們的客戶提供了對(duì)待建系統(tǒng)的預(yù)期行為的共同理解。通過(guò)最小化需求誤解的風(fēng)險(xiǎn),用例還能夠提高需求的清晰度。比如,在使用用例的項(xiàng)目中,分析人員通常只注意主要用例(關(guān)于如何使用系統(tǒng)的用法場(chǎng)景)并且相信沒(méi)有大問(wèn)題。然而,一旦開(kāi)發(fā)人員開(kāi)始通過(guò)識(shí)別所有備用流(在出錯(cuò)情況下的備用用法場(chǎng)景)來(lái)整理用例的細(xì)節(jié),真正的問(wèn)題就浮出水面。如果開(kāi)發(fā)人員在設(shè)計(jì)之前沒(méi)有進(jìn)行這種細(xì)化,那么該設(shè)計(jì)就需要多次返工,以便包含所有的用戶場(chǎng)景。該細(xì)化過(guò)程中,能否在開(kāi)發(fā)人員和分析人員之間建立起關(guān)鍵的交流關(guān)系,通常決定了能否成功交付最終產(chǎn)品。
然而,必須注意到并非所有需求都可以用用例表達(dá)。比如,可靠性和性能需求更適合以聲明性的形式表達(dá)(如,"系統(tǒng)應(yīng)該……"),但是用例確實(shí)提供了一種從各種視角記錄系統(tǒng)的用戶體驗(yàn)的機(jī)制。通過(guò)專注于用戶觀點(diǎn),用例還避免了在需求規(guī)格說(shuō)明書(shū)中引進(jìn)設(shè)計(jì)元素的問(wèn)題,從而將設(shè)計(jì)者從無(wú)根據(jù)的設(shè)計(jì)約束中解脫出來(lái)。
問(wèn)題4:根據(jù)過(guò)時(shí)的需求規(guī)格說(shuō)明書(shū)編寫(xiě)代碼
在可以開(kāi)始設(shè)計(jì)和編寫(xiě)代碼之前,需要了解交付目標(biāo),并且分析人員負(fù)責(zé)確認(rèn)您理解了客戶需要。這是需求規(guī)格說(shuō)明文檔的任務(wù)。它必須保證項(xiàng)目團(tuán)隊(duì)中的每個(gè)人對(duì)要將要開(kāi)發(fā)用來(lái)解決客戶提出的特定問(wèn)題的系統(tǒng)有著共同理解。如果需求規(guī)格說(shuō)明文檔的角色已經(jīng)給定,那么開(kāi)發(fā)人員就可以很容易地定位文檔,更重要的是定位它的最新版本。這看上去可能沒(méi)有什么意義,但經(jīng)過(guò)驗(yàn)證它非常靈活。通常,要按照特別的基礎(chǔ)來(lái)檢查規(guī)格說(shuō)明書(shū),并且還要做出決定和假設(shè)。不幸的是,在這種情況下,需求并不總能及時(shí)得到更新。此外,更新過(guò)的需求不能總是重新分發(fā)給項(xiàng)目團(tuán)隊(duì)。另一種情況可能是更新過(guò)的需求被重新分發(fā)之后,淹沒(méi)在每個(gè)人郵箱中的郵件堆里,無(wú)從尋覓。最后,保證最新的需求并提供對(duì)它們的訪問(wèn)應(yīng)該是項(xiàng)目團(tuán)隊(duì)的標(biāo)準(zhǔn)實(shí)踐。
解決辦法:最新的規(guī)格說(shuō)明書(shū)隨時(shí)可用
好的 RM 實(shí)踐為管理需求規(guī)格說(shuō)明書(shū)清楚地確定了一個(gè)中央知識(shí)庫(kù),這樣每個(gè)人都能總是得到最新的需求版本。作為開(kāi)發(fā)人員不能依賴電子郵件時(shí)間標(biāo)記,您可以保證不以一個(gè)過(guò)時(shí)版本的需求文檔開(kāi)始工作,從而不浪費(fèi)時(shí)間和精力。此外,與項(xiàng)目團(tuán)隊(duì)交流(通過(guò)電子郵件、電話、會(huì)議等)需求已經(jīng)被更新的消息也是一種良好、健康的實(shí)踐。
在機(jī)構(gòu)中改善需求管理的六種技巧
本節(jié),我們提供為開(kāi)發(fā)人員提供簡(jiǎn)單有效的指導(dǎo),幫助他們避免前面討論過(guò)的軟件問(wèn)題。
技巧1:參與建立變更請(qǐng)求過(guò)程
這可能看上去令人畏縮,但實(shí)際上卻很容易實(shí)現(xiàn)。簡(jiǎn)單地說(shuō),任何變更請(qǐng)求在被接受之前都應(yīng)該經(jīng)過(guò)確認(rèn)。
建立變更請(qǐng)求過(guò)程的第一步是確定您的團(tuán)隊(duì)如何收集和管理變更請(qǐng)求。最簡(jiǎn)單的方法是創(chuàng)建一個(gè)標(biāo)準(zhǔn)的紙張形式表格,每個(gè)人都可以通過(guò)電子郵件或者親自填寫(xiě)該表格。更健壯的方法是使用某種程度的自動(dòng)化工具支持。
接著,您需要確定如何存儲(chǔ)這些請(qǐng)求。這些紙張形式文檔可以存放在一個(gè)三環(huán)的活頁(yè)夾中嗎?或者您會(huì)使用有些種類的