Extreme Programmierung gegen Scrum | XP gegen Scrum
Im Laufe der Jahre wurden in der Softwareindustrie verschiedene Softwareentwicklungsmethoden wie Wasserfallentwicklungsmethoden, V-Modell, Rup und wenige andere lineare, iterative und kombinierte lineare Linear-I-Ire-Methoden verwendet. Agiles Modell (oder korrekter, eine Gruppe von Methoden) ist ein neueres Softwareentwicklungsmodell, das vom Agile Manifest eingeführt wurde, um die Mängel in diesen herkömmlichen Softwareentwicklungsmethoden zu beheben.
Agile Methoden basieren auf der iterativen Entwicklung und verwenden das Feedback der Benutzer als Hauptsteuerungsmechanismus. Agile kann als peoperzentrierter 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 aufgeschlüsselt wird, damit der Kunde frühzeitig einige der Vorteile nutzen 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 agile Methoden derzeit gegenüber den traditionellen Methoden bevorzugt. Scrum und extreme Programmierung sind zwei der beliebtesten Variationen 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 zu geben. Es wird empfohlen, früh und oft wie möglich Tests durch den Kunden einzubeziehen. Die Prüfung erfolgt an jedem Punkt, wenn eine stabile Version verfügbar ist. Die Grundlage von Scrum basiert auf dem Start von Tests von Beginn des Projekts und wird überall bis zum Ende des Projekts fortgesetzt.
Der wichtigste Wert von Scrum ist „Qualität ist die Verantwortung des Teams“, wodurch die Qualität der Software in der Verantwortung des gesamten Teams liegt (nicht nur des Testteams). Ein weiterer wichtiger Aspekt von Scrum ist es, die Software in kleinere, überschaubare Teile zu zerlegen und sie sehr schnell an den Kunden zu liefern. Die Bereitstellung eines Arbeitsprodukts ist von größter Bedeutung. Dann verbessert das Team die Software weiter und liefert bei jedem Hauptschritt kontinuierlich. Dies wird durch sehr kurze Freisetzungszyklen (als Sprints genannte) und Feedback zur Verbesserung am Ende jedes Zyklus erhalten.
Scrum definiert mehrere Schlüsselrollen für den reibungslosen Betrieb eines Entwicklungsteams. Sie sind der Produktbesitzer (der den Kunden vertritt und den Produktrückstand unterhält), Scrum Master (der als Organisator und Koordinator des Teams fungiert, indem sie Scrum -Meetings durchführen, Sprint -Rückstände und Verbrennungen von Diagrammen beibehalten) und andere Teammitglieder. Ein Team kann aus traditionellen Rollen bestehen, aber meistens handelt es sich um selbstverwaltete Teams. Haupt -Scrum -Artefakte sind Produkt -Rückstände/Release -Rückstände (Wunschliste), Sprint -Rückstände/Defekt -Rückstände (Aufgaben in jeder Iteration), Verbrennungsdiagramme (verbleibende Arbeiten vs. Datum). Haupt -Scrum -Zeremonien sind Produkt -Backlog -Meeting, Sprint Meeting und Rückblicktreffen.
Was ist extreme Programmierung?
Extreme Programmierung (Abkürzung XP) ist eine Softwareentwicklungsmethode, die zum agilen Modell gehört. Extreme Programmierung führt Phasen in sehr kleinen kontinuierlichen Schritten aus (im Vergleich zu herkömmlichen Methoden). Der erste Pass, der nur einen Tag oder eine Woche dauert, ist absichtlich unvollständig. Um konkrete Ziele für die Entwicklung der Software zu liefern, werden zu Beginn automatisierte Tests geschrieben. Dann machen die Entwickler die Codierung. Der Fokus liegt auf der Programmierung als Paare. Sobald alle Tests bestanden werden, wird die Codierung als vollständig angesehen. Die nächste Phase ist Design und Architektur, die sich mit dem Refactoring des Code durch denselben Programmierer befasst. Am Ende dieser Phase wird den Stakeholdern unvollständige (aber funktionelle) Produkte vorgestellt. Gleich danach beginnt die nächste Phase (die sich auf den nächsten Satz der wichtigsten Funktionen konzentriert) startet.
Was ist der Unterschied zwischen extremer Programmierung 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 ermöglichen Scrum -Teams keine Änderungen in Sprints, aber XP -Teams sind für Änderungen innerhalb der Iterationen kaum flexibler. Zum Beispiel bleibt nach der Sprintplanung die Elemente dieses Sprint unverändert, aber eine Funktion, an der nicht gearbeitet wurde, kann jederzeit mit einer anderen Funktion in XP ausgetauscht werden. Ein weiterer Unterschied zwischen XP und Scrum besteht darin, dass die Reihenfolge der in XP entwickelten Funktionen eine vom Kunden streng priorisierte, während das Scrum -Team die Reihenfolge der Artikel entscheidet (nachdem der Produktbetrieb vom Produktbesitzer des Scrum priorisiert wird).
Im Gegensatz zu XP legt Scrum keine technischen Praktiken fest. Zum Beispiel wird XP von Praktiken wie Test-gesteuerter Entwicklung (TDD), Paarprogrammierung, Refactoring usw. angetrieben. Einige sind jedoch der Ansicht, dass die Verantriebung einer Reihe von Praktiken zu selbst organisierenden Teams negative Auswirkungen haben könnte, und dies kann als Mangel an XP angesehen werden. Ein weiterer Mangel der extremen Programmierung ist, dass unerfahrene Teams dazu neigen, ohne automatisierte Tests oder TDD (oder einfach Hacking) neu zu refaktorieren. Einige schlagen daher vor, dass Scrum besser zum Starren ist (da es große Verbesserungen durch fokussierte Zeitbox -Iterationen bringt) und XP für leicht reife Teams geeignet ist, die den Wert der oben genannten Praktiken entdeckt haben (anstatt sie zu verwenden, weil sie gefragt wurden, weil sie gefragt wurden dies tun).