專案管理:如何顯性管理並提升Story分解能力
引言:
在“DevOps能力之屋(CapabilitiesHouse of DevOps)”中,華為雲DevCloud提出(工程方法+最佳實踐+生態)×工具平臺=DevOps能力。華為雲DevCloud將推出“DevOps on DevCloud”系列,針對DevOps領域場景,闡述該場景在華為雲DevCloud上的實施方法與實踐。
在敏捷專案中,使用者故事(User Story)是產品團隊用來描述使用者需求的主要方式。每個使用者故事是小的、獨立的行為,最好可以在一個迭代中增量式實現,併為終端使用者提供價值。Bill Wake提出的INVEST模型,描述了良好的使用者故事應該具備的特徵,是使用者故事應該遵循的原則:
- Independent:獨立性
- Negotiable:可協商性
- Valuable:有價值
- Estimable:可估算性
- Small:短小
- Testable:可測試性
將業務特性分解成為符合INVEST模型的使用者故事,成為每一個敏捷團隊的必備技能。LeffingWell在《Agile SoftwareRequirements 》一書中提出了分解故事的10種方法:
- Workflow steps
- Business rulevariations
- Major effort
- Simple/complex
- Variations in data
- Data entry methods
- Deferred systemqualities
- Operations
- Use-case scenarios
- Break-out spike
不少人經常會說分解使用者故事在增量式開發中既是藝術性又是科學性工作。敏捷產品團隊可以參照10種方法進行故事分解,並使之儘量符合INVEST原則。然而敏捷產品團隊如何在軟體交付中記錄故事分解方法,以更好地分享方法或者事後回顧改進或者統計分析呢?當然比較好的方式是採用敏捷專案管理工具,例如華為雲DevCloud的專案管理(ProjectMan)。
在華為雲DevCloud的專案管理中Story並沒有預設欄位來記錄分解方法,因此需要通過“Story設定”特性來自定義此欄位。使用者可以在專案中通過“設定”-“專案設定”-“Story設定”-“欄位與模板”進入工作項模板頁面,如圖所示:
在工作項模板頁面,點選“編輯模板”,並在欄位配置處點選“+新建欄位”,在下圖中輸入欄位名稱、欄位型別以及欄位選項等。將工作項模板編輯後進行儲存。
新建欄位“故事分解方法”
這樣,在新建Story或者編輯Story的時候,團隊成員可以記錄故事分解方法。如下圖所示
在Story中記錄故事分解方法
隨著敏捷專案的迭代進行,產品團隊將不斷積累此專案的故事分解方法,團隊成員可以基於此資料進行分享與學習,將區域性的、隱性的分解方法變為了全域性的、顯性的分解方法。這也正是DevOps三步法(Three Ways)在持續學習與實驗中提倡的實踐之一“將區域性知識轉化為全域性知識”。
一旦在專案迭代開發過程中,團隊積累了故事分解方法的過程資料,那麼團隊可以在適當的實際進行相應的統計分析。對於故事分解方法的統計分析,目前華為雲DevCloud的專案管理的自定義報表特性尚未提供基於自定義欄位的維度分析,產品團隊可以使用工作項匯出特性,將Story匯出到Excel進行統計分析,發現分解方法的一些規律,可以指導產品團隊更好地有重點地提升分解能力。