Scrum + 極限程式設計



極限程式設計是最早出現的敏捷方法論之一,並且在不斷發展。肯特·貝克(Kent Beck)發展了極限程式設計,其前提是使用最佳程式設計實踐並將它們發揮到極致。

在當前情況下,極限程式設計側重於目前業界流行的最佳實踐,並將它們發揮到極致。最普遍的例子包括測試驅動開發、整體團隊方法、可持續節奏等。

XP – 靈活性作為技術

極限程式設計如此受歡迎的原因之一是其靈活的特性。此外,極限程式設計更多的是關於技術而不是流程,因此可以很好地與以流程為中心的 方法相融合。因此,您可以輕鬆地將極限程式設計的功能與其他理念結合起來,無論在何處

  • 一些極限程式設計實踐在流程中是互補的。

  • 極限程式設計本身不適合直接實施。

但是,請記住,您選擇的任何極限程式設計實踐都應完全貫徹執行。否則,您不能聲稱自己在使用極限程式設計。

事實上,這適用於您採用的任何流程。允許混合搭配,但前提是您使用的是互補的功能,並且沒有損害所用功能的價值。

目前最流行的極限程式設計混合方法是 Scrum + 極限程式設計混合方法。我們將從最基本且仍然流行的軟體開發方法論——瀑布模型開始。

瀑布模型

在瀑布模型中,開發按階段進行,在完成前一階段之前無法開始下一階段。

Waterfall Model

儘管有些人認為瀑布模型是一種傳統方法論,但它仍在許多組織中使用。如果在開發開始之前完全瞭解需求,則它是一種成熟且有效的方法論。該流程簡單明瞭,不需要任何培訓或指導。

您需要記住的是,沒有哪種方法論適用於所有情況,每種方法論都有其自身的優缺點。因此,您必須瞭解哪種方法論適合您的上下文、您的環境和您的客戶利益。

讓我們看一下瀑布方法論的缺點:

  • 由於所有需求都必須在開發開始之前確定,因此當需求不完整或模糊時,它不適用。

  • 由於該方法論是單向的,因此無法將任何階段的反饋重新納入任何早期階段,儘管獲得了關於最終產品的更多清晰度。

  • 測試僅在開發完成後進行,由未參與早期階段(例如需求收集或開發)的開發人員團隊進行。這種“測試最後”的方法通常會導致缺陷控制不佳、缺陷率高、交付給客戶的缺陷數量多。

  • 在開發結束之前,無法獲得可用的產品,因此沒有人會知道是否正在構建正確的東西,儘管它正在被正確地開發。

  • 缺陷修復和需求更改很難被吸收,因為存在破壞設計的可能性很高,並且產生的成本也很高。

如果您預測開發中會出現這種情況,則敏捷方法論最合適。

敏捷方法論

敏捷方法論提倡:

  • 頻繁釋出可工作的產品增量,使反饋能夠在正確的時間流入。

  • 以團隊為中心的方法,使每個人都對最終產品負責。

  • 靈活的計劃,重點放在為客戶提供價值、滿足客戶期望、投資回報率上。

  • 隨時準備接受更改,以便交付的最終產品不會過時。

出現了多種敏捷方法論,其中 Scrum 變得越來越流行,並且被廣泛使用。

Scrum 如何帶來改變?

在 Scrum 中,專案被分解成釋出和時間盒式的短衝刺。對於每個衝刺,您只會承擔客戶優先順序最高且您可以在一個衝刺中交付的必要功能。在每個衝刺結束時,您將擁有一個可以釋出的可工作產品。

需求稱為積壓專案,迭代稱為衝刺。將採用持續測試與測試優先方法。開發人員和測試人員也參與使用者故事的編寫,這些使用者故事是積壓專案。這為團隊中的每個人提供了對產品行為的預先了解,也有助於在衝刺開始時確定驗收標準。

Scrum Difference

正如我們之前所說,Scrum 本身根據定義,在某些情況下是有效的,但與任何其他開發方法論一樣,它也有其自身的缺點。

  • 時間盒式的衝刺不允許在釋出計劃中進行任何靈活性,這會阻礙開發和測試。

  • Scrum 本身沒有提供開發方向。

因此,Scrum 通常與其他更側重於開發策略的敏捷方法論相結合。

Scrum + 極限程式設計混合方法

Scrum 經常被用來結合互補的極限程式設計實踐,極限程式設計側重於工程方面,如持續溝通、頻繁的反饋迴圈、重構、集體所有權、持續整合、測試驅動開發等,而 Scrum 則側重於衝刺的固定範圍、燃盡圖等。

  • 由於 Scrum 是一種定義明確的方法論,因此從專案的第一天開始就更容易適應。

  • 由於極限程式設計更偏向於溝通和團隊凝聚力,因此團隊更專注於開發。

因此,發現 Scrum + 極限程式設計混合方法是有效的。

Scrum + XP 混合專案的工具

SpiraTeam 和 Rapise 等工具專為 Scrum + 極限程式設計混合專案而設計。SpiraTeam 提供關鍵專案質量和進度指標的報告儀表板,在一個整合的檢視中,專為 Scrum 和極限程式設計專案量身定製。

一些指標包括:

  • 需求測試覆蓋率
  • 任務進度
  • 專案速度
  • 主要風險和問題

Rapise 工具是一個測試自動化解決方案,可以完全整合到您的開發流程中,並可以適應您不斷變化的需求。您可以使用它來測試桌面、Web 和移動應用程式。開發人員、測試人員和業務使用者可以使用此工具生成驗收測試。

廣告

© . All rights reserved.