不允許效果也不一定好,所以要識別出能夠確定需求和了解業(yè)務流程的用戶作為每類用戶的代表。每類用戶至少選擇一位能真正代表他們需求的人作為代表并且能夠作出決策,用戶代表往往是本類用戶中三類人:對項目有決定權的領導、熟悉業(yè)務流程的專家、系統(tǒng)最終用戶。
每一個用戶代表者代表了一個特定的用戶類,并在那個用戶類和開發(fā)者之間充當主要的接口,用戶代表從他們所代表的用戶類中收集需求信息,同時每個用戶代表又負責協(xié)調他們所代表的用戶在需求表達上的不一致性和不兼容性。
4、建立核心隊伍
通常用戶和開發(fā)人員不自覺的都有一種我們和他們的想法,產生一種對立關系,把彼此放在對立面,每一方都定義自己的邊界,只想自己的利益而忽略對方的想法。他們通過文檔、記錄和對話來溝通,而不是作為一個合作的整體去識別和確定需求完成任務。實踐證明這樣的方法是不正確的,不會給雙方帶來一點益處,良好的溝通關系沒有建立導致了誤解和忽略重要的信息。只有當雙方參與者都明白要成功自己需要什么,同時也知道要成功對方需要什么時,才能建立起一種合作關系。
為了建立合作關系通常采取一種組隊的方式來獲取需求,建立一個由用戶代表和開發(fā)人員組成的聯(lián)合小組作為需求獲取的核心隊伍。聯(lián)合小組將負責識別需求、分析解決方案和協(xié)商分歧,小組成員可以采用會議、電子郵件、綜合辦公系統(tǒng)等方式進行交流,但交流時應注意以下原則:小組會議應該由中立方來組織和主持,用戶和開發(fā)人員都要參加;交流預先要確定準備和參與的規(guī)則;議題要明確并覆蓋所有關鍵點,但信息來源應該自由;交流目標要明確,并告知所有的成員。
5、確定使用實例
從用戶代表處收集他們將使用系統(tǒng)完成所需任務的描述,討論用戶與系統(tǒng)間的交互方式和對話要求,這就是使用實例,一個單一的使用實例可能包括完成某項任務的許多邏輯相關任務和交互順序。使用實例方法給需求獲取帶來的好處來自于該方法是用以任務為中心和以用戶為中心的觀點,比起使用以功能為中心和以開發(fā)者為中心的方法,使用實例方法可以使用戶更清楚地理解和認識到新系統(tǒng)允許他們做什么和怎么做。描寫使用實例的時候要注意使用簡潔直白的表述,盡量使用主動語態(tài),系統(tǒng)或者用戶作為主語,比如用戶提交用戶密碼,系統(tǒng)驗證用戶密碼是否正確,還有一點在描述中不要設計界面細節(jié),比如用戶從下拉框中選擇產品類型。使用實例為以后寫用例場景描述中的基本路徑和擴展路徑提供了素材。
6、召開聯(lián)合會議
最常見的需求獲取方法是召開會議或者面談,聯(lián)合會議是范圍廣的、簡便的討論會,也是核心隊伍成員之間一種很好的溝通方法,該會議通過緊密而集中的討論得以將用戶代表與開發(fā)人員間的合作伙伴關系付諸于實踐并能由此擬出需求文檔的底稿。聯(lián)合會議的第一個議題就是系統(tǒng)的必要性和合理性,必須所有成員都同意系統(tǒng)是必要的而且合理的。接下來就可以討論使用實例清單,清單可以打印成大紙掛在墻上、寫在黑板上或做成演示材料。對每個清單合并去掉重復項,加上補充內容就可以得到一份總的清單,注意避免采用負面的太差不可行去否定用戶的想法,這些想法都應該保留下來作為被評議的清單項,這樣保護了小組成員開放的思維。最后對清單進行討論,會議成員必須檢查每一個使用實例,在把它們納入需求之前決定其是否在項目所定義的范圍內,形成最終的需求報告。
在進行討論時,也應該避免受不成熟的細節(jié)的影響,在對系統(tǒng)需求取得共識之前,用戶能很容易地在一個報表或對話框中列出某些精確設計,如果這些細節(jié)都作為需求記錄下來,他們會給隨后的設計過程帶來不必要的限制,應確保用戶參與者將注意力集中在與所討論的話題適合的抽象層上,重點就是討論做什么而不是怎