Africa Studio - stock.adobe.com

So wirken Scrum und DevOps im Unternehmen zusammen

Scrum und DevOps sind beides Unternehmens-Frameworks im Zusammenhang mit CI und CD sowie der agilen Entwicklung. Wir erklären die Unterschiede, und wie die Ansätze zusammenpassen.

Da die Softwareentwicklung immer komplexer und iterativer wird und monolithische Varianten immer seltener, benötigen IT-Ops-Teams einen Weg, um Kontinuierliche Integration (CI) und Kontinuierliche Bereitstellung (CD) koordiniert umzusetzen.

Ansätze wie Agile haben sich bewährt und auch DevOps ist in den letzten Jahren immer beliebter geworden. Daneben gehört Scrum zu den weit verbreiteten Unternehmensphilosophien im Zusammenhang mit Agile.

Was ist Scrum?

Benannt nach einem Spielzug des britischen Ballsports Rugby, tauchte Scrum erstmals in einem Artikel auf, den Hirotaka Takeuchi und Ikujiro Nonaka 1986 veröffentlicht haben. Die Wahl des Namens soll unterstreichen, dass Scrum ein teamorientierter Ansatz ist. Die Mitglieder eines Scrum-Teams heißen Scrum Masters.

Agile konzentriert sich auf vier Grundprinzipien:

  1. Individuen und Interaktionen – mit einem Schwerpunkt auf Prozessen und Tools
  2. Funktionierende Software – anstelle ausufernder Dokumentation
  3. Zusammenarbeit mit dem Kunden – statt Vertragsverhandlungen
  4. Reaktion auf Veränderungen – statt restriktiver Planung

Scrum gibt diesen Prinzipien von Agile einen Rahmen und sorgt gleichzeitig dafür, dass andere Bereiche der IT-Umgebung nicht vernachlässigt werden.

Die Idee hinter Scrum ist es, ein Problem – die Anfrage des Kunden – in separate, kleinere Aufgaben aufzuteilen, die sich von einzelnen Personen oder kleinen IT-Teams lösen lassen. Geschäfts- und Kundenprobleme bilden ein Produkt-Backlog, das dann in einer schnellen Sprint-Planungssitzung analysiert und in ein Sprint-Backlog unterteilt wird.

Scrum-Teams halten tägliche Scrums ab, um die Aufgaben aus den Backlogs zu identifizieren und verteilen. Beim nächsten täglichen Scrum überprüfen die Teams den Fortschritt, den sie beim Lösen der Aufgabe gemacht haben. Haben sie das Problem gelöst, stellen sie den Code als inkrementelles Update zur Verfügung, und ein Sprint-Review trägt das Feedback in die Sprint- und Produkt-Backlogs. Danach entscheidet das Team, welche neuen Aufgaben es in das Sprint Backlog aufnimmt. Idealerweise leert sich das Sprint-Backlog immer weiter – es gibt keine Pflicht, neue Aufgaben aufzunehmen.

Tägliche Scrum-Meetings sollten sich auf den Fortschritt und die Bedürfnisse konzentrieren, nicht auf technische Fragen. Teams sollten Kunden mit einbeziehen, um direkten und rechtzeitigen Input für Anforderungsänderungen zu erhalten.

Der DevOps-Ansatz

Vieles davon dürfte DevOps-Praktikern schon bekannt vorkommen. DevOps zerlegt große Anforderungen in kleinere Arbeitspakete und überführt sie in die Betriebssoftware – ein paar Schritte weiter als Scrum.

Allerdings betrachten viele DevOps-Entwickler ihren Ansatz nicht mit der gleichen Granularität wie Scrum. In vielen Fällen ist DevOps auf den Ablauf der Prozesse eingeschränkt: Es bewegt den Code durch den Entwicklungsprozess und den anschließenden Bereitstellungsprozess, um den Code in die Produktion zu übertragen. Ergänzt wird dies durch Rückkopplungsschleifen zwischen der Betriebs- und der Entwicklungsumgebung.

DevOps neigt auch dazu, dem Kunden weniger Aufmerksamkeit zu schenken. Viele DevOps-Praktiker bekommen vom Kunden Anforderungserklärungen, die sie über DevOps umsetzen. Das Ergebnis bekommt der Kunde dann in der Regel in weniger Einzelschritten präsentiert als bei Scrum. Darin ähnelt der Ansatz eher dem klassischen Wasserfallmodell.

DevOps versus Scrum

DevOps spürt Prozesse auf, durch deren Automatisierung sich die Codeentwicklung und -bereitstellung beschleunigen und replizieren lässt: Es funktioniert nicht als End-to-End-Umgebung, um alles von der Kundenanforderung bis zum laufenden Code zu verwalten.

Mit Scrum müssen IT-Ops-Teams eine neue Herangehensweise an Probleme erlernen, wobei der Schwerpunkt auf der sozialen und planerischen Komponente des Projekts liegt und nicht auf der technischen. Der Unterschied zwischen Scrum und DevOps ist, dass Scrum definiert, wie Probleme zu lösen sind, während DevOps die Mittel zur Lösung dieser Probleme bietet.

Aus diesem Grund können sich DevOps und Scrum gegenseitig ergänzen. Scrum konzentriert sich auf die Entwicklung und bietet einen tiefgehenden, aber granularen Ansatz zur Verwaltung der schnellen Entwicklung. Der Code wird nicht in den Betrieb überführt, sondern es wird angezeigt, dass der Code für die Bereitstellung bereit ist.

DevOps umfasst die beiden Umgebungen, bietet aber im Allgemeinen nicht die aufgabenspezifischen Fähigkeiten von Scrum.

Beachten Sie hier das im Allgemeinen. Es gibt keinen Grund, warum DevOps-Tools nicht mit integrierten Scrum-Funktionen ausgestattet sein sollten. Microsoft Azure Boards beispielsweise ist eine Umgebung, die GitHub-Repositories mit agilen Ansätzen wie Scrum oder Kanban verbindet und eine Konsole zur Überwachung von Fortschritten, bekannten Fehlern, bevorstehenden Funktionen und Rückständen bereitstellt. Darüber hinaus bietet Atlassian mit seiner Open DevOps- und Jira-Produktlinie einen hohen Automatisierungsgrad in DevOps-Umgebungen, der agile Ansätze in ein hochfunktionales DevOps-Toolset einbezieht.

Scrum – oder jeder andere agile Ansatz – und DevOps schließen sich nicht gegenseitig aus. Es ist nicht ratsam, die beiden einzuführen und sie anschließend in getrennten Umgebungen zu betreiben. DevOps-Praktiker sollten darauf achten, wie sie Scrum mit DevOps-Tools verweben. Dies führt zu besseren Feedbackschleifen in den frühen Stadien des DevOps-Prozesses, sorgt für eine ständige Interaktion mit den Kunden und bindet nachgelagerte Feedbackschleifen aus dem DevOps-System in Scrum-Meetings und -Diskussionen ein.

Erfahren Sie mehr über IT-Berufe und Weiterbildung