天天看點

靈活實踐:團隊是否完成了一個使用者故事的開發工作是由産品經理決定的嗎?

在靈活開發中,産品經理 (PO) 既是産品需求的定義者,又是開發項目的管理者。PO 使用使用者故事 (User Story) 來定義産品的需求。那麼一個使用者故事是否完成了所有的開發工作,光 PO 說了算就可以了嗎?

使用者故事的完成應該由團隊來定義

靈活團隊是一個自治的組織。PO 雖然是産品的所有者,但是他也是靈活團隊的成員。靈活團隊通過持續地溝通和協作來應對不對變化的需求。要讓團隊成員之間順暢地溝通和協作,團隊成員對團隊工作的認可是必不可少的。而隻有有高度使命感和責任感的團隊才會自發地溝通和協作,而不是通過一層層的權利機制去驅動任務的完成。

通常來說,當一個人做出了承諾,他就會對承諾肩負起責任感。如果團隊成員能夠指定标準,他們也會成為标準的捍衛者。有鑒于此,團隊應該在成立之初就要達成一個重要的協定:什麼叫做做完了一個使用者故事?

定義什麼叫做完成?(Definition of Done)

理想的使用者故事應該在完成以後,客戶可以立即看到它的價值,是以它應該是一個完整的軟體需求。一個有責任感的團隊,會對使用者故事的定義、代碼的品質、測試的方案、測試的執行等提出自己的要求。在定義什麼叫做完成時,Scrum Master 可以引導團隊在下面幾個方面達成一緻:

  • 使用者故事定義的标準

    AC是否明确,團隊是否估算了故事點數等

  • 代碼品質

    Code review, 單元測試代碼覆寫率

  • 測試相關

    測試用例、API測試、功能測試

  • 産品經理驗收

完成定義和工作量估算的關系

我在與同僚讨論“完成”的定義的時候,曾有同僚提出,在産品上線以後沒有問題了才叫做完成。如果是這樣,使用者故事就會在上線之前一直是未完成狀态,這會帶來一個明顯的問題:我們沒法估算團隊在一個沖刺 (sprint) 裡開發的速度。從這裡可以看出,完成的定義應該和開發和測試工作的結束相關并且可以用來衡量團隊的開發速度。

結論

本文提出使用者故事的完成應該由團隊來定義,隻有這樣團隊才會對開發工作有使命感和責任感。本文還簡單讨論了如何定義完成以及定義完成和開發工作量的關系。

繼續閱讀