Unterschied Zwischen Extremer Programmierung Und SCRUM

Unterschied Zwischen Extremer Programmierung Und SCRUM
Unterschied Zwischen Extremer Programmierung Und SCRUM

Video: Unterschied Zwischen Extremer Programmierung Und SCRUM

Video: Unterschied Zwischen Extremer Programmierung Und SCRUM
Video: SCRUM VS EXTREME PROGRAMMING | WHAT ARE THE MAJOR DIFFERENCES? 2024, November
Anonim

Extreme Programmierung vs SCRUM | XP gegen SCRUM

Im Laufe der Jahre wurden in der Softwareindustrie verschiedene Softwareentwicklungsmethoden verwendet, darunter die Wasserfallentwicklungsmethode, das V-Modell, RUP und einige andere lineare, iterative und kombinierte linear-iterative Methoden. Das agile Modell (oder genauer gesagt eine Gruppe von Methoden) ist ein neueres Softwareentwicklungsmodell, das durch das agile Manifest eingeführt wurde, um die Mängel dieser traditionellen Softwareentwicklungsmethoden zu beheben.

Agile Methoden basieren auf iterativer Entwicklung und verwenden das Feedback der Benutzer als Hauptkontrollmechanismus. Agile kann als personenbezogener Ansatz bezeichnet werden als herkömmliche Methoden. Das agile Modell liefert sehr früh eine funktionierende Version des Produkts, indem das System in sehr kleine und überschaubare Unterteile zerlegt wird, sodass der Kunde einige der Vorteile frühzeitig erkennen kann. Die Testzykluszeit von Agile ist im Vergleich zu herkömmlichen Methoden relativ kurz, da die Tests parallel zur Entwicklung durchgeführt werden. Aufgrund all dieser Vorteile werden derzeit agile Methoden gegenüber herkömmlichen Methoden bevorzugt. Scrum- und Extreme-Programmierung sind zwei der beliebtesten Varianten agiler Methoden.

Was ist SCRUM?

Wie oben erwähnt, ist SCRUM ein inkrementeller und iterativer Projektmanagementprozess, der zur Familie der agilen Methoden gehört. SCRUM basiert darauf, der Kundenbeteiligung zu Beginn des Entwicklungszyklus hohe Priorität einzuräumen. Es wird empfohlen, Tests durch den Kunden frühzeitig und so oft wie möglich durchzuführen. Die Tests werden zu jedem Zeitpunkt durchgeführt, an dem eine stabile Version verfügbar wird. Die Grundlage von SCRUM basiert darauf, dass die Tests vom Beginn des Projekts an beginnen und bis zum Ende des Projekts fortgesetzt werden.

Der Hauptwert von SCRUM ist „Qualität liegt in der Verantwortung des Teams“. Dies unterstreicht, dass die Qualität der Software in der Verantwortung des gesamten Teams (nicht nur des Testteams) liegt. Ein weiterer wichtiger Aspekt von SCRUM besteht darin, die Software in kleinere, überschaubare Teile zu zerlegen und diese sehr schnell an den Kunden zu liefern. Die Lieferung eines funktionierenden Produkts ist von größter Bedeutung. Dann verbessert das Team die Software weiter und liefert kontinuierlich bei jedem wichtigen Schritt. Dies wird erreicht, indem sehr kurze Release-Zyklen (sogenannte Sprints) durchgeführt werden und am Ende jedes Zyklus Feedback zur Verbesserung eingeholt wird.

SCRUM definiert mehrere Schlüsselrollen für den reibungslosen Betrieb eines Entwicklungsteams. Sie sind der Product Owner (der den Kunden vertritt und das Produkt-Backlog verwaltet), der Scrum-Master (der als Organisator und Koordinator des Teams fungiert, indem er Scrum-Meetings durchführt, das Sprint-Backlog aufrechterhält und Diagramme abbrennt) und andere Teammitglieder. Ein Team kann aus traditionellen Rollen bestehen, meistens handelt es sich jedoch um selbstverwaltende Teams. Die wichtigsten Scrum-Artefakte sind Product Backlog / Release Backlog (Wunschliste), Sprint Backlogs / Defect Backlogs (Aufgaben in jeder Iteration), Burn Down Charts (verbleibende Arbeit vs. Datum). Die wichtigsten SCRUM-Zeremonien sind das Product Backlog Meeting, das Sprint Meeting und das Retrospect Meeting.

Was ist extreme Programmierung?

Extreme Programming (abgekürzt XP) ist eine Softwareentwicklungsmethode, die zum Agile-Modell gehört. Extreme Programmierung führt Phasen in sehr kleinen kontinuierlichen Schritten aus (im Vergleich zu herkömmlichen Methoden). Der erste Durchgang, der nur einen Tag oder eine Woche dauert, ist absichtlich unvollständig. Um konkrete Ziele für die Entwicklung der Software festzulegen, werden zu Beginn automatisierte Tests geschrieben. Dann machen die Entwickler die Codierung. Der Schwerpunkt liegt auf der paarweisen Programmierung. Sobald alle Tests bestanden sind, gilt die Codierung als vollständig. Die nächste Phase ist Design und Architektur, die sich mit der Umgestaltung des Codes durch dieselbe Gruppe von Programmierern befasst. Am Ende dieser Phase wird den Stakeholdern ein unvollständiges (aber funktionales) Produkt präsentiert. Unmittelbar danach beginnt die nächste Phase (die sich auf die nächsten wichtigen Funktionen konzentriert).

Was ist der Unterschied zwischen Extreme Programming und SCRUM?

Extreme Programming und SCRUM sind verständlicherweise sehr ähnliche und aufeinander abgestimmte Methoden. Es gibt jedoch subtile, aber wichtige Unterschiede zwischen diesen beiden Methoden. SCRUM-Sprints dauern 2-4 Wochen, während typische XP-Iterationen kürzer sind (letzte 1-2 Wochen). Normalerweise erlauben SCRUM-Teams keine Änderungen an Sprints, aber XP-Teams sind wenig flexibler für Änderungen innerhalb von Iterationen. Beispielsweise bleibt nach der Sprintplanung die Menge der Elemente dieses Sprints unverändert, aber eine Funktion, an der noch nicht gearbeitet wurde, kann jederzeit durch eine andere Funktion in XP ersetzt werden. Ein weiterer Unterschied zwischen XP und SCRUM besteht darin, dass die Reihenfolge der in XP entwickelten Funktionen vom Kunden streng priorisiert wird, während das SCRUM-Team die Reihenfolge der Artikel festlegt (nachdem der Product Backlog vom Product Owner des SCRUM priorisiert wurde).

Im Gegensatz zu XP legt SCRUM keine technischen Verfahren fest. Zum Beispiel wird XP durch Praktiken wie testgetriebene Entwicklung (TDD), Paarprogrammierung, Refactoring usw. angetrieben. Einige glauben jedoch, dass das Mandatieren einer Reihe von Praktiken für selbstorganisierende Teams negative Auswirkungen haben könnte, und dies kann in Betracht gezogen werden ein Mangel an XP. Ein weiteres Manko der Extreme-Programmierung besteht darin, dass unerfahrene Teams dazu neigen, ohne automatisierte Tests oder TDD (oder einfach nur Hacking) umzugestalten. Einige schlagen daher vor, dass SCRUM besser zum Starten geeignet ist (da es große Verbesserungen einfach durch gezielte Iterationen mit Zeitboxen bringt) und XP für leicht ausgereifte Teams geeignet ist, die den Wert der oben genannten Praktiken entdeckt haben (anstatt sie zu verwenden, weil sie gefragt wurden dazu).

Empfohlen: