敏捷開發(fā)中如何定義“完成”?
在項目過程中,敏捷模式可以幫助團隊隨時根據需要進行調整工作,從而找到更好的路徑去開發(fā)合適的產品。
當前,似乎每個人都在踐行敏捷。這主要歸功于敏捷能夠適應變化并整合客戶反饋的特質?,F代社會這兩者是非常重要的,因為技術在不斷地革新,且人們獲取信息的方式越來越容易——包括公開的客戶反饋。
快速響應并將客戶反饋納入產品和流程,要求自組織團隊不斷調整工作的內容以提高效率。團隊可以進行定期調整以滿足每天出現的新需求。在項目規(guī)劃方面,這種波動環(huán)境可能會使事情變得棘手:因為幾乎不存在明確的截止期限和可預期的交付成果。
因此,如果踐行敏捷的基礎正在快速變化,那么在不斷迭代項目的同時,敏捷中如何定義完成?我們如何知道已經真正完成了任務?這是一個有趣的問題。在回答這個問題之前,讓我們先了解關于敏捷及其方法論。
一、在敏捷中如何完成工作
簡單來說,在項目管理中,敏捷用迭代方法來規(guī)劃和指導項目過程,這將鼓勵變革。這種方法與傳統(tǒng)的項目管理方法(如瀑布式)截然相反,因為瀑布式設定了嚴格的流程和結構。
敏捷是為短時間內進行沖刺(sprint)的小團隊設置的過程,可以幫助團隊在項目中快速響應變化。小組在沖刺前后定期碰面,根據項目變化調整工作方式。
通過敏捷框架,團隊才可能打造客戶需要的產品,而不是閉門造車,交付不符合市場需求和趨勢的產品。有了敏捷模式,在項目過程中,團隊可隨時根據需要進行調整工作,從而找到更好的路徑去開發(fā)合適的產品。這將使得組織更具競爭力,但當存在無窮盡的功能更新和其他修復任務時,我們也很難界定某些任務是否可以標記為已經完成。
二、敏捷中完成的定義
了解了相關背景后,讓我們來回答前面的問題,即如何確定我們是否完成了敏捷任務。其中一種答案認為在完成沖刺后,敏捷任務即可視為完成。沖刺通常是項目過程中持續(xù)時間較短的任務,通常為一天、幾天,但最長不會超過一個月。沖刺完成之后,團隊開會并回顧已完成的工作、需要調整的地方和未來的行動規(guī)劃。計劃依然存在,但已經被調整以符合實際工作情況。
完成迭代
理論上,每完成一次迭代就意味著項目的完結。但事實并非總是如此。一旦出現了必須解決的問題,項目就必須快速對這些變更做出響應。因此,我們不建議在每個沖刺(sprint)后發(fā)布產品。但需要確保在sprint階段完成各個功能,以便追蹤項目的進度。
因此,完成工作意味著產品的各項功能得到充分地開發(fā)、測試、設計并得到產品負責人的認可。只有這樣才可算完成。敏捷中有很多“完成”,但如果有任何存疑之處,sprint就沒有真正完成,因此也不應交付。
在產品真正完成和交付之前,每個功能是否完工都需要取決于其他功能的完成情況。這就意味著需要整體的完成。但每個sprint都應該在結束是完成某個特定功能。這就意味著如有必要,該功能在sprint結束時可以單獨交付。
(圖為迭代管理示意圖,來源Worktile)
團隊差異
但每個團隊都有自己專屬的完成定義,這從另一方面說明所有的用戶故事標準已經得到認可。但無論這個定義是什么,它要能提高工作質量,并在用戶故事完成時進行評估。
在軟件開發(fā)方面,完成指的是某些內容按照標準進行了編碼,經過了審查、實施、測試、整合和記錄。在服務支持方面,指的是用戶故事的每個任務都已經完成,產品所有者對其進行了審核,并確定所交付產品滿足了需求。
在敏捷中,完成意味著團隊知道需要交付什么,并且按要求進行了交付。完成是一種確保透明的手段,能夠確保工作的質量符合產品要求和組織目的。
三、完成的定義是否會變化?
敏捷這種至關重要的管理方法可以在各類框架中執(zhí)行,包括?Scrum、極限編程、自適應軟件開發(fā)、DSDM、特性驅動開發(fā)、看板和水晶方法等。
這些流程是可在敏捷框架內工作的方法,但它們具備不同的方法和功能,可以適用于不同類型的項目并發(fā)揮最佳的成效。具體哪一種更好可能需要取決于具體項目的情況。但這并不意味著每個項目只能選擇一種方法。綜合運用一個或多個方法,可能更適合項目的需求。敏捷之所以廣受歡迎,也恰好是因為其靈活性及過程的多樣性。盡管敏捷包含不同類型的進程,它們都遵循了同樣的完成定義。
(圖為Scrum敏捷開發(fā)流程)
四、完成的原則是不變的
2001年發(fā)布的《敏捷宣言》宣告了敏捷的誕生。宣言的發(fā)表是為了回應傳統(tǒng)的軟件開發(fā)管理方法,它概述了每個敏捷框架中存在的基本概念。敏捷宣言強調的四個核心價值是:
- 個體和互動高于流程和工具
- 工作的軟件高于詳盡的文檔
- 客戶合作高于合同談判
- 響應變化高于遵循計劃
敏捷軟件開發(fā)還提出了12條原則。這些原則充分體現了我們對任務或項目何時真正完成的理解:
五、軟件開發(fā)之外的敏捷
雖然敏捷誕生于軟件開發(fā),但目前已經應用于更廣泛的商業(yè)領域。敏捷、精益和組織學習的想法概念已經超越了軟件開發(fā)的小圈子,其他行業(yè)也開始采用站立會、優(yōu)先級和可視化管理。
敏捷從不僅是作為IT項目管理的工具,它還可以改變其他企業(yè)的管理流程,使用敏捷思想來改變管理項目就是一個非常好的例子。
(圖為可視化任務看板,來源Worktile)
敏捷某些方面的特征,如待辦事項等,可以在企業(yè)項目中使用并將成為最終交付項目的部分功能和特征。項目中的沖刺或短期項目,能充分發(fā)揮敏捷的快速和高適應性優(yōu)勢。
敏捷的另外一種應用是跨職能團隊的構建,這能大大提高溝通效率。且持續(xù)集成還將有助于提高項目不同版塊之間的透明度,從而提高工作效率。此外,還有信息發(fā)射源、迭代、增量開發(fā)、Scrum會議、時間盒、用例、用戶故事等等,所有這些都能夠幫助公司用與傳統(tǒng)瀑布開發(fā)不同的方法完成工作。
本文由 @Kaya 原創(chuàng)發(fā)布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
所以,如何定義完成呢?