1. 程式人生 > >敏捷開發中如何定義“完成”?

敏捷開發中如何定義“完成”?

當前,似乎每個人都在踐行敏捷。這主要歸功於敏捷能夠適應變化並整合客戶反饋的特質。現代社會這兩者是非常重要的,因為技術在不斷地革新,且人們獲取資訊的方式越來越容易——包括公開的客戶反饋。

快速響應並將客戶反饋納入產品和流程,要求自組織團隊不斷調整工作的內容以提高效率。團隊可以進行定期調整以滿足每天出現的新需求。在專案規劃方面,這種波動環境可能會使事情變得棘手:因為幾乎不存在明確的截止期限和可預期的交付成果。

因此,如果踐行敏捷的基礎正在快速變化,那麼在不斷迭代專案的同時,敏捷中如何定義完成?我們如何知道已經真正完成了任務?這是一個有趣的問題。在回答這個問題之前,讓我們先了解關於敏捷及其方法論。

一、在敏捷中如何完成工作

簡單來說,在專案管理中,敏捷用迭代方法來規劃和指導專案過程,這將鼓勵變革。這種方法與傳統的專案管理方法(如瀑布式)截然相反,因為瀑布式設定了嚴格的流程和結構。

敏捷是為短時間內進行衝刺(sprint)的小團隊設定的過程,可以幫助團隊在專案中快速響應變化。小組在衝刺前後定期碰面,根據專案變化調整工作方式。

通過敏捷框架,團隊才可能打造客戶需要的產品,而不是閉門造車,交付不符合市場需求和趨勢的產品。有了敏捷模式,在專案過程中,團隊可隨時根據需要進行調整工作,從而找到更好的路徑去開發合適的產品。這將使得組織更具競爭力,但當存在無窮盡的功能更新和其他修復任務時,我們也很難界定某些任務是否可以標記為已經完成。

 

 

(圖為Worktile需求管理功能圖)

二、敏捷中完成的定義

瞭解了相關背景後,讓我們來回答前面的問題,即如何確定我們是否完成了敏捷任務。其中一種答案認為在完成衝刺後,敏捷任務即可視為完成。衝刺通常是專案過程中持續時間較短的任務,通常為一天、幾天,但最長不會超過一個月。衝刺完成之後,團隊開會並回顧已完成的工作、需要調整的地方和未來的行動規劃。計劃依然存在,但已經被調整以符合實際工作情況。

完成迭代

理論上,每完成一次迭代就意味著專案的完結。但事實並非總是如此。一旦出現了必須解決的問題,專案就必須快速對這些變更做出響應。因此,我們不建議在每個衝刺(sprint)後釋出產品。但需要確保在sprint階段完成各個功能,以便追蹤專案的進度。

因此,完成工作意味著產品的各項功能得到充分地開發、測試、設計並得到產品負責人的認可。只有這樣才可算完成。敏捷中有很多“完成”,但如果有任何存疑之處,sprint就沒有真正完成,因此也不應交付。

在產品真正完成和交付之前,每個功能是否完工都需要取決於其他功能的完成情況。這就意味著需要整體的完成。但每個sprint都應該在結束是完成某個特定功能。這就意味著如有必要,該功能在sprint結束時可以單獨交付。

 

 

(圖為Worktile迭代管理功能圖)

團隊差異

但每個團隊都有自己專屬的完成定義,這從另一方面說明所有的使用者故事標準已經得到認可。但無論這個定義是什麼,它要能提高工作質量,並在使用者故事完成時進行評估。

在軟體開發方面,完成指的是某些內容按照標準進行了編碼,經過了審查、實施、測試、整合和記錄。在服務支援方面,指的是使用者故事的每個任務都已經完成,產品所有者對其進行了稽核,並確定所交付產品滿足了需求。

在敏捷中,完成意味著團隊知道需要交付什麼,並且按要求進行了交付。完成是一種確保透明的手段,能夠確保工作的質量符合產品要求和組織目的。

三、完成的定義是否會變化?

敏捷這種至關重要的管理方法可以在各類框架中執行,包括 Scrum、極限程式設計、自適應軟體開發、DSDM、特性驅動開發、看板和水晶方法等。

這些流程是可在敏捷框架內工作的方法,但它們具備不同的方法和功能,可以適用於不同型別的專案併發揮最佳的成效。具體哪一種更好可能需要取決於具體專案的情況。但這並不意味著每個專案只能選擇一種方法。綜合運用一個或多個方法,可能更適合專案的需求。敏捷之所以廣受歡迎,也恰好是因為其靈活性及過程的多樣性。儘管敏捷包含不同型別的程序,它們都遵循了同樣的完成定義。

 

 

(圖為Scrum敏捷開發流程)

四、完成的原則是不變的

2001年釋出的《敏捷宣言》宣告了敏捷的誕生。宣言的發表是為了迴應傳統的軟體開發管理方法,它概述了每個敏捷框架中存在的基本概念。敏捷宣言強調的四個核心價值是:

  • 個體和互動高於流程和工具

  • 工作的軟體高於詳盡的文件

  • 客戶合作高於合同談判

  • 響應變化高於遵循計劃

敏捷軟體開發還提出了12條原則。這些原則充分體現了我們對任務或專案何時真正完成的理解:

 

五、軟體開發之外的敏捷

雖然敏捷誕生於軟體開發,但目前已經應用於更廣泛的商業領域。敏捷、精益和組織學習的想法概念已經超越了軟體開發的小圈子,其他行業也開始採用站立會、優先順序和視覺化管理。

 

 

(圖為Worktile視覺化任務看板)

敏捷從不僅是作為IT專案管理的工具,它還可以改變其他企業的管理流程,使用敏捷思想來改變管理專案就是一個非常好的例子。

敏捷某些方面的特徵,如待辦事項等,可以在企業專案中使用並將成為最終交付專案的部分功能和特徵。專案中的衝刺或短期專案,能充分發揮敏捷的快速和高適應性優勢。敏捷的另外一種應用是跨職能團隊的構建,這能大大提高溝通效率。且持續整合還將有助於提高專案不同版塊之間的透明度,從而提高工作效率。此外,還有資訊發射源、迭代、增量開發、Scrum會議、時間盒、用例、使用者故事等等,所有這些都能夠幫助公司用與傳統瀑布開發不同的方法完成工作。

 

 

文章來源:Worktile敏捷部落格

歡迎訪問交流更多關於技術及協作的問題。

文章轉載請註明出處。

 

&n