在產品計劃中排列需求

充分分析您的客戶需求以了解產品該做的事情之後,您應該訂定一份計劃來實作產品。或者,若是現有的產品,您必須找出遺漏什麼功能,並訂定計劃來進行變更。但需求不會自動告訴您計劃是什麼。

本主題大略說明從一組需求得出計劃的方法。這只是將在 Visual Studio 上運作的許多方法中的其中一種,您應該視需要來調整它。

本主題內容

需求和功能

情節分解

指派分葉情節給反覆項目

功能 - 在每個反覆項目中實現的需求

服務品質功能

產品計劃

反覆項目規劃

需求和功能

這個方法有兩種需求:客戶需求和功能。客戶需求是由分析客戶想從產品得到什麼而來。功能是產品計劃中的項目,對應到客戶需求的小子集。每個功能可能包含數個客戶需求,這些需求來自不同的使用者體驗部分和不同的功能區域。

客戶需求

  • 客戶需求是由與可能使用者和其他專案關係人討論後得出。

  • 為了協助分析這些需求,通常您將會建立腳本和模型,並且將情節分解成較小的步驟,形成一個樹狀結構。您可以將模型元素 (例如使用案例和活動) 連結至情節工作項目。

  • 客戶需求有兩種:

    • 情節,也稱為使用案例,它代表使用者和產品之間的互動順序,以追求特定的目標。範例情節的標題可能會如「使用者買了一本書」。

    • 服務品質需求,包含效能、安全性、可用性和其他準則。

  • 您可以將這些需求表示為需求類型的工作項目,將 [需求類型] 欄位設定為 [情節] 或 [服務品質]。

  • 這些需求工作項目應該要連結到系統測試,以便您可以確定所有需求都經過測試。

  • 使用客戶需求查詢來列出這些需求工作項目。

  • 使用 [需求進度] 報表來監視哪些需求已獲得滿足。

如需詳細資訊,請參閱開發需求共用查詢 (CMMI)需求進度報表 (CMMI)為產品待處理項目、使用者劇本或需求建立測試

功能

  • 功能是產品計劃中代表一群工作的項目。在產品規劃時,開發團隊的代表和專案關係人會指派功能到反覆項目。如需詳細資訊,請參閱規劃專案 (CMMI)

  • 將功能輸入為需求工作項目,並將 [需求類型] 欄位設定為 [功能]。

  • 功能的標題會以使用者的術語,說明使用者將能夠以產品完成什麼,而且是在先前的反覆項目中無法達成的。計劃上不會有任何項目 (或是只有很少數的項目) 是不會產出新使用者價值的。

    例如,以下這個功能順序可能會形成一個實作計劃:

    • 「買家可以從清單中挑選一本書,然後加入到希望清單。」

    • 「書籍清單會顯示單價。在希望清單中,會顯示總價。」

    • 「供應商可以在書籍上貼上標籤。買家可以藉由標籤過濾書籍清單。」

    請注意,不會有任何功能只接觸使用者體驗中的一個步驟,且不會有任何功能只牽涉到產品架構的一部分。相反地,在實作功能時,會重新檢視數個功能,並增加新的使用者值。

  • 功能在產品規劃期間被指派給反覆項目。功能底下的所有工作必須指派給相同的反覆項目。如需詳細資訊,請參閱規劃專案 (CMMI)

  • 功能說明客戶需求的部分實現。它是客戶需求的子集,且可能只實作每個客戶需求的一部分。

  • 每個功能可以連結一個或多個測試案例,測試功能所代表的部分需求。這些測試案例是系統測試的子集,而系統測試是連結至客戶需求。

  • 在功能的測試已完整定義且通過之前,功能的狀態不能標示為已完成。

  • 每個功能是一群開發和測試工作。它是 Visual Studio Team Foundation Server 中工作樹狀結構的根。開發工作會實作功能所說明的部分需求。測試工作設定並執行適當的測試案例。

  • 您使用產品需求查詢以列出功能。若要顯示產品計劃,請按一下 [資料行選項] 並將 [反覆項目路徑] 加入到所顯示資料行的清單。若要依反覆項目排序,請按一下 [反覆項目路徑] 資料行。如需詳細資訊,請參閱 共用查詢 (CMMI)

Ff183960.collapse_all(zh-tw,VS.110).gif尋找功能

將需求分成增量的功能,是一項具有創意的工作,這項工作必須包含開發人員、分析師以及專案關係人。功能定義了一項產品功能,可以合情理地與週圍功能分開實作。因此,可運作的功能定義集,以及計劃中的排序,有一部分取決於系統的架構。

也因為如此,產品的規劃與初步設計必須同步進行,尤其是草擬絕大部分計劃的反覆項目 0。

情節分解

為了幫助您將需求安排成功能,將情節分解成較小的步驟會有所助益。

腳本經常能夠幫助此活動。腳本是一連串依順序呈現的圖片,它可說明情節。UML 活動圖表適用於顯示可選擇的路徑,而 UML 順序圖表則可以幫助您討論數個演員之間的互動。使用這些工具分析情節之後,您可以將分解的情節輸入到 Team Explorer。這讓您能將測試案例連結至情節,並因此確認需求獲得滿足。如需詳細資訊,請參閱 UML 活動圖表:方針UML 順序圖表:方針

在這份簡短的逐步解說中,您會以小型情節樹狀結構的形式,輸入一組客戶需求。這將提供建立功能的範例。

若要在 Excel 中開啟客戶需求樹狀結構

  1. 在 Team Explorer中,開啟 MSF for CMMI Process Integration 5.0 版專案。

  2. 依序展開 [工作項目]、[小組查詢] 和 [計劃和追蹤],然後執行 [客戶需求]。

  3. 如果未出現 [反覆項目路徑] 及 [需求類型] 資料行,請按一下 [資料行選項],然後將它們加入顯示清單。

    您可能也想要加入 [區域路徑] 資料行。

  4. 設定查詢以顯示樹狀結構。

    1. 按一下 [編輯查詢]。

    2. 將 [查詢類型] 設定成 [工作項目的樹狀目錄]。

    3. 按一下 [儲存查詢]。

      如果您無法在 [小組查詢] 中儲存查詢,請將它儲存至 [我的查詢]。

    4. 按一下 [檢視結果] 關閉編輯檢視。

  5. 按一下 [在 Microsoft Office 中開啟],然後按一下 [在 Microsoft Excel 中開啟查詢]。

  6. 在 Office Excel 中,如果標題 [標題 1] 的資料行後面未接著 [標題 2] 和 [標題 3] 的資料行,則按一下 [小組] 索引標籤,然後按 [加入樹狀層級] 建立其他的資料行。

您現在可以方便地批次輸入情節。

在真實的情況中,您可能會先開始輸入一個等級的情節,然後將每個情節分解成不同操作中的較小步驟。

若要輸入情節

  1. 在緊接於現存工作項目 (若有的話) 底端資料列之後的資料列中,在 [標題 1] 資料行輸入最頂層情節的標題:

    客戶訂購餐點。

  2. 在與企業專案關係人的討論中,您決定了構成最頂層情節的主體步驟。

    在緊接於最頂層情節之後的資料列中,在 [標題 2] 資料行輸入步驟:

    客戶選擇餐廳。

    客戶從餐廳的菜單選擇項目,建立訂單。

    客戶輸入付款詳細資料。

    餐廳準備並外送訂單。

    向客戶的信用卡收取款項。

  3. 進一步的分析 (或許是使用 UML 活動圖表或互動圖表) 會得到這些情節中一部分的更詳細步驟。

    緊接於[客戶選擇餐廳] 底下,插入一些資料列,然後在 [標題 3] 資料行輸入下列步驟:

    客戶輸入送貨郵遞區號。

    網站顯示可外送到該地址的餐廳清單。

    客戶可以瀏覽所有顯示餐廳的菜單。

    客戶選取一家餐廳開始訂購。

    刪除任何空白的資料列。

  4. 在所有新資料列的 [工作項目類型] 資料行中,將類型設定為 [需求]。

  5. 將所有新資料列的 [需求類型] 資料行設定為 [情節]。

  6. 若要將需求發行到 Team Foundation Server,請選取工作項目表格中的任何資料格,然後按一下 [小組] 索引標籤上的 [發行]。

您現在有一個樹狀結構的客戶需求,可以在 Office Excel 或 Team Explorer中進行更進一步的編輯。

指派分葉情節給反覆項目

「分葉」情節是本身沒有子系的情節。

藉由設定反覆項目路徑欄位,可以指派情節中最基本的步驟給反覆項目。您可以在 Office Excel 檢視中完成此動作。

然後將有子系的每個情節指派給最早認為它可以使用的反覆項目。

在下列範例中,最基本的情節實作於反覆項目 1 和 2,其他功能則加入到較後面的反覆項目。

  • 反覆項目 2 - 客戶選擇餐廳。

    • 反覆項目 5 - 客戶輸入郵遞區號。

    • 反覆項目 2 - DinnerNow 顯示餐廳的清單。

    • 反覆項目 3 - 客戶可以瀏覽每間餐廳的菜單。

    • 反覆項目 2 - 客戶選取一家餐廳以建立訂單。

  • 反覆項目 1 - 客戶從菜單選擇項目,建立訂單。

    • 反覆項目 1 - 客戶按一下菜單項目,加入訂單。

    • 反覆項目 2 - 訂單摘要顯示訂單的總價。

    • 反覆項目 1 - 客戶按一下 [確認],完成訂單。

  • 反覆項目 4 - 客戶輸入付款詳細資料。

  • 反覆項目 2 - 餐廳準備和外送訂單。

  • 反覆項目 4 - 向客戶的信用卡收取款項。

這些指派讓您能在早期對系統的整體設計進行操演,但許多細節則留待未來再進行。某些被認為是低風險的部分可以留到後面的反覆項目。在此範例中,小組先前已經有過連結到信用卡付款系統的經驗。因此,他們覺得有自信,可以將該部分留到後面的反覆項目。

在某些情況下,您會想要再進一步分解分葉情節,以允許簡化及更複雜的版本能分到不同的反覆項目,如下圖所示。

案例工作項目樹狀結構

功能 - 在每個反覆項目中實現的需求

功能是指彙總使用者能在每個反覆項目完成時做到哪些事項的需求。您可以為每個反覆項目建立多個功能。將它們輸入為需求工作項目,並將 [需求類型] 設定為 [功能]。

使用您的情節對工作項目的指派,可幫助您定義功能。下列範例功能計劃是從將上一節的情節對工作項目的指派得來:

  • 反覆項目 1

    • 客戶從菜單選擇項目、將它們加入訂單,然後加入送貨地址。
  • 反覆項目 2

    • 客戶開始先顯示餐廳的清單,然後選擇一間。

    • 當客戶完成訂單時,訂單出現在所選擇餐廳的畫面上。

    • 項目的價格及總價會顯示在訂單上。

  • 反覆項目 3

    • 準備好的餐點已派送之後,餐廳將訂單標示為「完成」。針對餐廳記錄餐點。

    • 每間餐廳可以輸入並更新其菜單。

    • 客戶可以在選取餐廳之前,先瀏覽每間餐廳的菜單。

  • 反覆項目 4

    • 客戶在完成訂單時輸入付款詳細資料。當餐廳將訂單標示為完成時,會向客戶的信用卡收取款項。

    • 會針對已標示為完成的訂單付款給餐廳。

  • 反覆項目 5

    • 餐廳可以設定他們的外送區域。客戶在工作階段開始時輸入郵遞區號。網站只顯示可外送到當地的餐廳。

Ff183960.collapse_all(zh-tw,VS.110).gif部分實作的情節

將情節分解成小步驟,有助於您將可以較早實作的一些步驟與可以較晚實作的步驟分開。

但有時您可以分開情節其他的面向。在本例中,小組可能會在早期的反覆項目中實作基本版本的使用者體驗,稍後再加以改善。因此您可能會加入下列功能:

  • 反覆項目 6 - 餐廳可以選擇菜單的配色和字型,並上載自己的標誌和餐點照片。

這種類型的功能不會直接從分解成步驟時顯露,而是通常會在腳本討論時顯露。使用者體驗功能便很適合留到後面的反覆項目。

Ff183960.collapse_all(zh-tw,VS.110).gif輸入及檢查功能

建立工作項目類型為需求的工作項目,並將 [需求類型] 欄位設定為 [功能]。將功能標題設定成簡短描述。

若要批次輸入功能並討論其指派給反覆項目的情形,請採用產品需求查詢,並使用 Office Excel 檢視。

若要輸入並編輯功能

  1. 在 Team Explorer中,開啟 MSF for CMMI Process Improvement 5.0 版專案。

  2. 依序展開 [工作項目]、[小組查詢] 和 [計劃和追蹤],然後開啟 [產品需求]。

  3. 按一下 [資料行選項] 並將 [原始評估] 和 [反覆項目路徑] 加入到所顯示資料行的清單。

  4. 按一下 [在 Microsoft Office 中開啟],然後按一下 [在 Microsoft Excel 中開啟查詢]。

  5. 在詢問您是否儲存查詢的對話方塊中,按一下 []。

  6. (選用) 在 Office Excel 中,輸入功能標題的清單、設定反覆項目路徑,然後依反覆項目路徑排列資料列。

  7. 若要儲存對 Team Foundation Server 的變更,請按一下工作項目表格中的任何資料格,然後按一下 [小組] 索引標籤上的 [發行]。

Ff183960.collapse_all(zh-tw,VS.110).gif根據需求來追蹤功能

您可以透過下列方式將功能連結至需求:

  • 將功能工作項目連結至其反覆項目的分葉情節需求。您必須使用 [相關項目] 連結來連結它們,因為分葉情節已經有父代。

  • 將測試案例工作項目連結至情節以及它們所測試的服務品質需求。將功能連結至測試案例的子集,開發功能時應該要通過這些測試案例。如此一來,測試案例扮演著功能和客戶需求之間的連結。

服務品質功能

關於軟體設計,服務品質需求通常較普及。例如,安全性需求一般不會與特定的開發工作相關。

然而,對於每個服務品質需求而言,您應該建立一個功能工作項目,其子系主要是測試工作,用來確認符合服務品質的準則。這些工作項目稱為服務品質功能。

有些服務品質功能可以具有開發工作。例如,在早期的反覆項目中,您可能會實作只能應付少許使用者的系統版本,做為概念證明。而在後面的反覆項目,您可能會加入功能,指定如客戶需求中所述的目標容量。

產品計劃

在每個反覆項目的開始之前,請舉行會議來檢閱產品計劃。第一次的產品計劃會議會建立計劃,而後續的會議便根據較早的反覆項目來檢閱它。如需詳細資訊,請參閱規劃專案 (CMMI)

在產品計劃檢閱中,請與企業專案關係人討論功能,並準備好重新設定它們的優先權,以及將它們安排到不同的反覆項目。會議應該包含企業專案關係人和開發小組的代表。

會議中討論功能的開發順序。這可以藉由投影或分享 [產品需求] 查詢之 Office Excel 檢視的畫面,並依反覆項目排列功能來達成。

另一種技巧是將功能放在特定的順序,然後考慮在每個反覆項目中可以完成多少。例如,開發人員可能會討論「客戶可以顯示價格」是否應該從反覆項目 2 移到反覆項目 3,而不在順序中移動它。若要將項目放在順序中,請在試算表額外加入一個名稱為「順位」的資料行,並插入代表順序的整數。依這個資料行來排序試算表。順位不會儲存在 Team Foundation Server 中,但您可以儲存試算表。當您再次開啟試算表時,請按一下工作項目表格中的任何資料格,然後按一下 [小組] 索引標籤上的 [重新整理]。

產品規劃會考慮功能的優先權以及開發成本。優先權來自企業專案關係人,並且加上來自開發人員的一些風險指引。成本預估則來自開發人員。為了對成本有正確的了解,開發小組必須已經對產品的架構完成一些工作,且可能需要來自早期反覆項目的一些經驗。因此,成本預估應該在每次產品計劃檢閱時加以調整。

反覆項目規劃

產品計劃檢閱之後,請規劃反覆項目。產品計劃決定了在反覆項目結束時將要交付的功能。反覆項目規劃決定小組將要完成什麼工作,以便實作與測試這些功能。

以下活動是反覆項目規劃的一部分:

  • 建立開發與測試的工作,並將它們連結為功能需求的子系。

  • 針對每個功能中要開發的客戶需求各面向,建立測試案例。測試案例應該要連結到客戶需求,以便您可以監視需求的完成程度。

您也可以將測試案例連結到功能,以便您可以追蹤功能與需求之間的對應性。在連結的測試案例通過之前,功能不應該標示為已完成。

如需詳細資訊,請參閱 規劃反覆項目 (CMMI)