天天看點

需求管理之需求分析的20條法則

1、 分析人員要使用符合客戶語言習慣的表達 

  需求讨論集中于業務需求和任務,是以要使用術語。客戶應将有關術語(例如:采價、印花商品等采購術語)教給分析人員,而客戶不一定要懂得計算機行業的術語。 

2、分析人員要了解客戶的業務及目标 

  隻有分析人員更好地了解客戶的業務,才能使産品更好地滿足需要。這将有助于開發人員設計出真正滿足客戶需要并達到期望的優秀軟體。為幫助開發和分析人員,客戶可以考慮邀請他們觀察自己的工作流程。如果是切換新系統,那麼開發和分析人員應使用一下目前的舊系統,有利于他們明白目前系統是怎樣工作的,其流程情況以及可供改進之處。

3、 分析人員必須編寫軟體需求報告 

  分析人員應将從客戶那裡獲得的所有資訊進行整理,以區分業務需求及規範、功能需求、品質目标、解決方法和其他資訊。通過這些分析,客戶就能得到一份“需求分析報告”,此份報告使開發人員和客戶之間針對要開發的産品内容達成協定。報告應以一種客戶認為易于翻閱和了解的方式組織編寫。客戶要評審此報告,以確定報告内容準确完整地表達其需求。一份高品質的“需求分析報告”有助于開發人員開發出真正需要的産品。 

4、 要求得到需求工作結果的解釋說明 

  分析人員可能采用了多種圖表作為文字性“需求分析報告”的補充說明,因為工作圖表能很清晰地描述出系統行為的某些方面,是以報告中各種圖表有着極高的價值;雖然它們不太難于了解,但是客戶可能對此并不熟悉,是以客戶可以要求分析人員解釋說明每個圖表的作用、符号的意義和需求開發工作的結果,以及怎樣檢查圖表有無錯誤及不一緻等。 

5、 開發人員要尊重客戶的意見 

  如果使用者與開發人員之間不能互相了解,那關于需求的讨論将會有障礙。共同合作能使大家“兼聽則明”。參與需求開發過程的客戶有權要求開發人員尊重他們并珍惜他們為項目成功所付出的時間,同樣,客戶也應對開發人員為項目成功這一共同目标所做出的努力表示尊重。 

6、 開發人員要對需求及産品實施提出建議和解決方案 

  通常客戶所說的“需求”已經是一種實際可行的實施方案,分析人員應盡力從這些解決方法中了解真正的業務需求,同時還應找出已有系統與目前業務不符之處,以確定産品不會無效或低效;在徹底弄清業務領域内的事情後,分析人員就能提出相當好的改進方法,有經驗且有創造力的分析人員還能提出增加一些使用者沒有發現的很有價值的系統特性。 

7、 描述産品使用特性 

  客戶可以要求分析人員在實作功能需求的同時還注意軟體的易用性,因為這些易用特性或品質屬性能使客戶更準确、高效地完成任務。例如:客戶有時要求産品要“界面友好”或“健壯”或“高效率”,但對于開發人員來講,太主觀了并無實用價值。正确的做法是,分析人員通過詢問和調查了解客戶所要的“友好、健壯、高效所包含的具體特性,具體分析哪些特性對哪些特性有負面影響,在性能代價和所提出解決方案的預期利益之間做出權衡,以確定做出合理的取舍。 

8、 允許重用已有的軟體元件 

  需求通常有一定靈活性,分析人員可能發現已有的某個軟體元件與客戶描述的需求很相符,在這種情況下,分析人員應提供一些修改需求的選擇以便開發人員能夠降低新系統的開發成本和節省時間,而不必嚴格按原有的需求說明開發。是以說,如果想在産品中使用一些已有的商業常用元件,而它們并不完全适合您所需的特性,這時一定程度上的需求靈活性就顯得極為重要了。 

9、 要求對變更的代價提供真實可靠的評估 

  有時,人們面臨更好、也更昂貴的方案時,會做出不同的選擇。而這時,對需求變更的影響進行評估進而對業務決策提供幫助,是十分必要的。是以,客戶有權利要求開發人員通過分析給出一個真實可信的評估,包括影響、成本和得失等。開發人員不能由于不想實施變更而随意誇大評估成本。 

10、 獲得滿足客戶功能和品質要求的系統 

  每個人都希望項目成功,但這不僅要求客戶要清晰地告知開發人員關于系統“做什麼”所需的所有資訊,而且還要求開發人員能通過交流了解清楚取舍與限制,一定要明确說明您的假設和潛在的期望,否則,開發人員開發出的産品很可能無法讓您滿意。 

11、 給分析人員講解您的業務 

  分析人員要依靠客戶講解業務概念及術語,但客戶不能指望分析人員會成為該領域的專家,而隻能讓他們明白您的問題和目标;不要期望分析人員能把握客戶業務的細微潛在之處,他們可能不知道那些對于客戶來說理所當然的“常識”。

12、 抽出時間清楚地說明并完善需求 

  客戶很忙,但無論如何客戶有必要抽出時間參與“頭腦高峰會議”的讨論,接受采訪或其他擷取需求的活動。有些分析人員可能先明白了您的觀點,而過後發現還需要您的講解,這時請耐心對待一些需求和需求的精化工作過程中的反複,因為它是人們交流中很自然的現象,何況這對軟體産品的成功極為重要。 

13、 準确而詳細地說明需求 

  編寫一份清晰、準确的需求文檔是很困難的。由于處理細節問題不但煩人而且耗時,是以很容易留下模糊不清的需求。但是在開發過程中,必須解決這種模糊性和不準确性,而客戶恰恰是為解決這些問題作出決定的最佳人選,否則,就隻好靠開發人員去正确猜測了。 

  在需求分析中暫時加上“待定”标志是個方法。用該标志可指明哪些是需要進一步讨論、分析或增加資訊的地方,有時也可能因為某個特殊需求難以解決或沒有人願意處理它而标注上“待定”。客戶要盡量将每項需求的内容都闡述清楚,以便分析人員能準确地将它們寫進“軟體需求報告”中去。如果客戶一時不能準确表達,通常就要求用原型技術,通過原型開發,客戶可以同開發人員一起反複修改,不斷完善需求定義。 

14、 及時作出決定 

  分析人員會要求客戶作出一些選擇和決定,這些決定包括來自多個使用者提出的處理方法或在品質特性沖突和資訊準确度中選擇折衷方案等。有權作出決定的客戶必須積極地對待這一切,盡快做處理,做決定,因為開發人員通常隻有等客戶做出決定才能行動,而這種等待會延誤項目的進展。 

15、 尊重開發人員的需求可行性及成本評估 

  所有的軟體功能都有其成本。客戶所希望的某些産品特性可能在技術上行不通,或者實作它要付出極高的代價,而某些需求試圖達到在操作環境中不可能達到的性能,或試圖得到一些根本得不到的資料。開發人員會對此作出負面的評價,客戶應該尊重他們的意見。 

16、 劃分需求的優先級 

  絕大多數項目沒有足夠的時間或資源實作功能性的每個細節。決定哪些特性是必要的,哪些是重要的,是需求開發的主要部分,這隻能由客戶負責設定需求優先級,因為開發者不可能按照客戶的觀點決定需求優先級;開發人員将為您确定優先級提供有關每個需求的花費和風險的資訊。 

  在時間和資源限制下,關于所需特性能否完成或完成多少應尊重開發人員的意見。盡管沒有人願意看到自己所希望的需求在項目中未被實作,但畢竟是要面對現實,業務決策有時不得不依據優先級來縮小項目範圍或延長工期,或增加資源,或在品質上尋找折衷。 

17、 評審需求文檔和原型 

  客戶評審需求文檔,是給分析人員帶來回報資訊的一個機會。如果客戶認為編寫的“需求分析報告”不夠準确,就有必要盡早告知分析人員并為改進提供建議。 

  更好的辦法是先為産品開發一個原型。這樣客戶就能提供更有價值的回報資訊給開發人員,使他們更好地了解您的需求;原型并非是一個實際應用産品,但開發人員能将其轉化、擴充成功能齊全的系統。 

18、 需求變更要立即聯系 

  不斷的需求變更,會給在預定計劃内完成的品質産品帶來嚴重的不利影響。變更是不可避免的,但在開發周期中,變更越在晚期出現,其影響越大;變更不僅會導緻代價極高的返工,而且工期将被延誤,特别是在大體結構已完成後又需要增加新特性時。是以,一旦客戶發現需要變更需求時,請立即通知分析人員。 

19、 遵照開發小組處理需求變更的過程 

  為将變更帶來的負面影響減少到最低限度,所有參與者必須遵照項目變更控制過程。這要求不放棄所有提出的變更,對每項要求的變更進行分析、綜合考慮,最後做出合适的決策,以确定應将哪些變更引入項目中。 

20、 尊重開發人員采用的需求分析過程 

  軟體開發中最具挑戰性的莫過于收集需求并确定其正确性,分析人員采用的方法有其合理性。也許客戶認為收集需求的過程不太劃算,但請相信花在需求開發上的時間是非常有價值的;如果您了解并支援分析人員為收集、編寫需求文檔和確定其品質所采用的技術,那麼整個過程将會更為順利。 

“需求确認”意味着什麼 

  在“需求分析報告”上簽字确認,通常被認為是客戶同意需求分析的标志行為,然而實際操作中,客戶往往把“簽字”看作是毫無意義的事情。“他們要我在需求文檔的最後一行下面簽名,于是我就簽了,否則這些開發人員不開始編碼。” 

  這種态度将帶來麻煩,譬如客戶想更改需求或對産品不滿時就會說:“不錯,我是在需求分析報告上簽了字,但我并沒有時間去讀完所有的内容,我是相信你們的,是你們非讓我簽字的。” 

  同樣問題也會發生在僅把“簽字确認”看作是完成任務的分析人員身上,一旦有需求變更出現,他便指着“需求分析報告”說:“您已經在需求上簽字了,是以這些就是我們所開發的,如果您想要别的什麼,您應早些告訴我們。” 

  這兩種态度都是不對的。因為不可能在項目的早期就了解所有的需求,而且毫無疑問地需求将會出現變更,在“需求分析報告”上簽字确認是終止需求分析過程的正确方法,是以我們必須明白簽字意味着什麼。 

  對“需求分析報告”的簽名是建立在一個需求協定的基線上,是以我們對簽名應該這樣了解:“我同意這份需求文檔表述了我們對項目軟體需求的了解,進一步的變更可在此基線上通過項目定義的變更過程來進行。我知道變更可能會使我們重新協商成本、資源和項目階段任務等事宜。”對需求分析達成一定的共識會使雙方易于忍受将來的摩擦,這些摩擦來源于項目的改進和需求的誤差或市場和業務的新要求等。 

  需求确認将迷霧撥散,顯現需求的真面目,給初步的需求開發工作畫上了雙方都明确的句号,并有助于形成一個持續良好的客戶與開發人員的關系,為項目的成功奠定了堅實的基礎。

繼續閱讀