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