Unterschied zwischen Extreme Programming und SCRUM

Unterschied zwischen Extreme Programming und SCRUM
Unterschied zwischen Extreme Programming und SCRUM

Video: Unterschied zwischen Extreme Programming und SCRUM

Video: Unterschied zwischen Extreme Programming und SCRUM
Video: Weekly Fix #22: HTC One gewinnen, Killzone: Shadow Fall, kein Unterschied zwischen Xbox One und PS4? 2024, November
Anonim

Extreme Programming vs. SCRUM | XP vs. SCRUM

Im Laufe der Jahre wurden in der Softwareindustrie eine Reihe verschiedener 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 nutzen das Feedback der Nutzer als Hauptsteuerungsmechanismus. Agile kann als menschenzentrierter 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 das Testen parallel zur Entwicklung erfolgt. Aufgrund all dieser Vorteile werden agile Methoden derzeit den traditionellen Methoden vorgezogen. Scrum und Extreme Programming sind zwei der beliebtesten Varianten agiler Methoden.

Was ist SCRUM?

Wie bereits erwähnt, ist SCRUM ein inkrementeller und iterativer Projektmanagementprozess, der zur Familie der agilen Methoden gehört. SCRUM basiert darauf, der Kundenbeteiligung früh im Entwicklungszyklus hohe Priorität einzuräumen. Es empfiehlt, die Prüfung durch den Kunden so früh und so oft wie möglich einzubeziehen. Die Tests werden an jedem Punkt durchgeführt, an dem eine stabile Version verfügbar ist. Die Grundlage von SCRUM basiert darauf, mit dem Testen von Beginn des Projekts an zu beginnen und bis zum Ende des Projekts fortzufahren.

Der Schlüsselwert von SCRUM ist „Qualität liegt in der Verantwortung des Teams“, was betont, dass die Qualität der Software in der Verantwortung des gesamten Teams liegt (nicht nur des Testteams). 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 durch sehr kurze Veröffentlichungszyklen (Sprints genannt) und das Einholen von Feedback zur Verbesserung am Ende jedes Zyklus erreicht.

SCRUM definiert mehrere Schlüsselrollen für den reibungslosen Betrieb eines Entwicklungsteams. Sie sind der Product Owner (der den Kunden vertritt und das Product Backlog pflegt), der Scrum Master (der als Organisator und Koordinator des Teams fungiert, indem er Scrum-Meetings durchführt, das Sprint Backlog verw altet und Charts abbrennt) und andere Teammitglieder. Ein Team kann aus traditionellen Rollen bestehen, aber meistens handelt es sich um selbstverw altete Teams. Hauptartefakte von Scrum sind Product Backlog/Release Backlog (Wunschliste), Sprint Backlogs/Defect Backlogs (Aufgaben in jeder Iteration), Burndown-Diagramme (verbleibende Arbeit vs. Datum). Die wichtigsten SCRUM-Zeremonien sind Product-Backlog-Meetings, Sprint-Meetings und Retrospect-Meetings.

Was ist Extreme Programming?

Extreme Programming (abgekürzt XP) ist eine Softwareentwicklungsmethodik, die zum agilen Modell gehört. Extreme Programming führt Phasen in sehr kleinen kontinuierlichen Schritten aus (im Vergleich zu traditionellen 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 vorzugeben, werden zu Beginn automatisierte Tests geschrieben. Dann übernehmen die Entwickler die Codierung. Der Fokus liegt auf dem Programmieren zu zweit. Sobald alle Tests bestanden sind, gilt die Codierung als abgeschlossen. Die nächste Phase ist Design und Architektur, die sich mit dem Refactoring des Codes durch dieselben Programmierer befasst. Am Ende dieser Phase wird den Stakeholdern ein unvollständiges (aber funktionsfähiges) Produkt präsentiert. Unmittelbar danach beginnt die nächste Phase (die sich auf die nächsten wichtigsten 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 in Sprints, aber XP-Teams sind etwas flexibler gegenüber Änderungen innerhalb von Iterationen. Beispielsweise bleibt nach der Sprintplanung der Satz von Elementen dieses Sprints unverändert, aber ein Feature, an dem noch nicht gearbeitet wurde, kann jederzeit mit einem anderen Feature in XP ausgetauscht 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 über die Reihenfolge der Elemente entscheidet (nachdem das Product Backlog vom Product Owner von SCRUM priorisiert wurde).

Im Gegensatz zu XP legt SCRUM keine Engineering-Praktiken fest. Zum Beispiel wird XP von Praktiken wie testgetriebener Entwicklung (TDD), Paarprogrammierung, Refactoring usw. angetrieben. Einige glauben jedoch, dass die Vorgabe einer Reihe von Praktiken für selbstorganisierende Teams negative Auswirkungen haben könnte, und dies kann in Betracht gezogen werden ein Manko von XP. Ein weiterer Mangel der Extreme-Programmierung besteht darin, dass unerfahrene Teams dazu neigen, ohne automatisierte Tests oder TDD (oder einfach Hacking) zu refaktorisieren. Daher schlagen einige vor, dass SCRUM besser für den Anfang ist (da es große Verbesserungen einfach durch fokussierte Timebox-Iterationen bringt) und XP für etwas reifere Teams geeignet ist, die den Wert der oben genannten Praktiken entdeckt haben (anstatt sie zu verwenden, weil sie darum gebeten wurden). dazu).

Empfohlen: