Unterschied zwischen Extreme Programming und SCRUM

Extreme Programming vs SCRUM | XP vs SCRUM

In der Softwarebranche wurden im Laufe der Jahre verschiedene Softwareentwicklungsmethoden eingesetzt, wie die Wasserfallentwicklungsmethode, V-Model, RUP und einige andere lineare, iterative und kombinierte lineare iterative Methoden. Agiles Modell (oder richtiger eine Gruppe von Methoden) ist ein neuere Softwareentwicklungsmodell, das durch das Agile-Manifest eingeführt wurde, um die Mängel zu beheben, die in diesen traditionellen Softwareentwicklungsmethoden gefunden wurden.

Agile Methoden basieren auf der iterativen Entwicklung und verwenden die Rückmeldung der Benutzer als Hauptkontrollmechanismus. Agile kann als menschenorientierter Ansatz bezeichnet werden als traditionelle Methoden. Das Agile-Modell liefert eine funktionierende Version des Produkts sehr früh, indem es das System in sehr kleine und überschaubare Unterteile zerlegt, so dass der Kunde einige der Vorteile frühzeitig realisieren kann. Die Testzykluszeit von Agile ist im Vergleich zu herkömmlichen Methoden relativ kurz, da parallel zur Entwicklung getestet wird. Aufgrund all dieser Vorteile werden Agile-Methoden derzeit gegenüber den traditionellen Methoden bevorzugt. Scrum und Extreme Programmierung sind zwei der beliebtesten Varianten von Agile Methoden.

Was ist SCRUM?

Wie bereits erwähnt, ist SCRUM ein inkrementeller und iterativer Projektverwaltungsprozess, der zur Familie der Agilen Methoden gehört. SCRUM basiert darauf, der Kundenbeteiligung früh im Entwicklungszyklus hohe Priorität einzuräumen. Es wird empfohlen, Tests frühzeitig und oft so oft wie möglich durchzuführen. Das Testen erfolgt an jedem Punkt, an dem eine stabile Version verfügbar wird. Die Grundlage von SCRUM basiert auf der Testphase von Beginn des Projekts bis zum Ende des Projekts.

Der Schlüsselwert von SCRUM ist "Qualität liegt in der Verantwortung des Teams", in der betont wird, 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 verwaltbare Teile zu zerlegen und sie sehr schnell an den Kunden zu liefern. Die Lieferung eines Arbeitsprodukts ist von höchster Wichtigkeit. Dann verbessert das Team die Software weiter und liefert in jedem größeren Schritt kontinuierlich. Dies wird durch sehr kurze Release-Zyklen (sogenannte Sprints) erreicht und am Ende jedes Zyklus Feedback zur Verbesserung erhalten.

SCRUM definiert mehrere Schlüsselrollen für den reibungslosen Betrieb eines Entwicklungsteams. Sie sind der Product Owner (der den Kunden repräsentiert und den Produkt-Backlog aufrechterhält), Scrum Master (der als Organisator und Koordinator des Teams fungiert, indem Scrum Meetings durchgeführt werden, Sprint Backlog aufrechterhalten wird und Charts abgebrannt werden) und anderen Teammitgliedern.Ein Team kann aus traditionellen Rollen bestehen, meistens aber selbstverwaltete Teams. Main Scrum-Artefakte sind Produktrückstände / Auftragsrückstände (Wunschliste), Sprint-Rückstände / Fehlerrückstände (Aufgaben in jeder Iteration), Diagramme brennen (verbleibende Arbeit vs. Die wichtigsten SCRUM-Zeremonien sind das Produkt-Backlog-Meeting, das Sprint-Meeting und das Retrospect-Meeting.

Was ist Extreme Programmierung?

Extreme Programming (abgekürzt XP) ist eine Softwareentwicklungsmethodik, die zum Agile-Modell gehört. Extreme Programmierung führt Phasen in sehr kleinen kontinuierlichen Schritten durch (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 zu schaffen, werden zu Beginn automatisierte Tests geschrieben. Dann machen die Entwickler die Codierung. Der Fokus liegt auf der Programmierung als Paare. Sobald alle Tests bestanden haben, gilt die Codierung als abgeschlossen. Die nächste Phase ist Design und Architektur, die sich mit dem Refactoring des Codes durch denselben Satz von Programmierern beschäftigt. Am Ende dieser Phase wird den Beteiligten ein unvollständiges (aber funktionales) Produkt vorgestellt. Gleich 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 Programmierung und SCRUM sind verständlicherweise sehr ähnliche und ausgerichtete 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 bei Änderungen in Iterationen wenig flexibler. Nach der Sprintplanung bleibt der Satz der Elemente dieses Sprints beispielsweise unverändert, aber ein Feature, das noch nicht gestartet wurde, kann jederzeit mit einem anderen Feature in XP ausgetauscht werden. Ein weiterer Unterschied zwischen XP und SCRUM ist, 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 SCRUM-Produktbesitzer den Produktrückstand priorisiert hat).

Im Gegensatz zu XP legt SCRUM keine Konstruktionspraktiken fest. Zum Beispiel wird XP durch Praktiken wie testgetriebene Entwicklung (TDD), Paarprogrammierung, Refactoring usw. angetrieben. Manche glauben jedoch, dass die Festlegung einer Reihe von Praktiken bei selbstorganisierenden Teams negative Auswirkungen haben könnte, und dies kann in Betracht gezogen werden ein Mangel von XP. Ein weiterer Nachteil der Extreme-Programmierung ist, dass unerfahrene Teams dazu neigen, ohne automatisierte Tests oder TDD (oder einfach nur Hacking) zu refactorieren. Daher empfehlen manche, dass SCRUM besser abschneiden kann (da es große Verbesserungen einfach durch fokussierte Timebox-Iterationen bringt) und XP eignet sich für leicht reife Teams, die den Wert der oben erwähnten Praktiken entdeckt haben (anstatt sie zu benutzen, weil sie gefragt wurden dies zu tun).