Effizienz bei der Entwicklung steigern

Agile Entwicklung und DevOps

von - 02.12.2019
Rapid Prototyping
Frühzeitige Modifikationen: Rapid Prototyping sorgt für zeitnahes Feedback.
(Quelle: Veikko Krypczyk )
Der Erfolg der Software-Entwicklung ist zu einem sehr hohen Maß von den organisatorischen Belangen und der Art und Weise der Projektdurchführung abhängig. In der Praxis haben sich zwei Ansätze bewährt, die gemeinsam ein solides Fundament der modernen Entwicklung bilden können. Die Rede ist von einer agilen Vorgehensweise und der integrativen Zusammenarbeit durch DevOps.
Agilität steht für die Fähigkeit, mit Änderungen umzugehen, das heißt schnell und flexibel auf Kundenanforderungen zu reagieren. Änderungen in den Anforderungen werden nicht mehr als störend aufgefasst, sondern tragen dazu bei, dass das Anwendungssystem frühzeitig in die richtige Richtung gesteuert wird. Ein wesentliches Ziel dieses Vorgehens ist es, in möglichst kurzer Zeit eine erste Version des späteren Endprodukts an den Kunden auszuliefern und bereits in sehr frühen Phasen des Entwicklungsprozesses mit Prototypen zu arbeiten und Feedback einzufordern. Das Feedback wiederum ist die Ausgangsbasis dafür, mögliche Modifikationen zeitnah in den weiteren Projektverlauf einzuarbeiten.
Rapid Prototyping sorgt dafür, dass man sowohl eine Be­stätigung der Richtung (Strategie) als auch der Umsetzung (Operation) bekommt und bei Bedarf reagieren kann. Ein schnelleres Go-live ist das Ziel. Es gibt unterschiedliche Ansätze agiler Entwicklungsmethoden. Scrum gilt heute als sehr weit verbreitet, hat sich vielfach bewährt und ist gut akzeptiert.
Der Begriff DevOps setzt sich zusammen aus Dev für Development und Ops für Operations. Damit wird ein Schulterschluss zwischen den Mitarbeitern beider Bereiche symbolisiert. Dieser Ansatz versucht, den Graben zwischen diesen wichtigen Gebieten der IT zu überwinden, der vor allem aus Zielkonflikten resultiert. Demnach ist der Entwicklungsbereich stark daran interessiert, die implementierten Features möglichst kurzfristig an die Nutzer der Software auszuliefern. Dem IT-Betrieb ist dagegen vorrangig an einem kontinuier­lichen und sicheren Betrieb der gesamten IT-Landschaft gelegen. Die Übernahme von Software-Updates stellt in diesem Sinn stets einen Eingriff in das laufende System dar und kann dessen Stabilität immer bedrohen. Statt kurzfristiger und häufiger Releases werden lange Laufzeiten und umfassend geplante Updates bevorzugt.
Diese Form der Arbeitsteilung ist heute überholt. DevOps zielt also genau darauf ab, die Prozesse in Unternehmen von der Entwicklung über die Bereitstellung in der Produktion bis hin zur Wartung von Software so miteinander zu verzahnen, dass die beschriebenen Herausforderungen gelöst werden. Das kann nur dann gelingen, wenn die gegenläufigen Ziele einer Software-Entwicklung und der Anspruch eines sicheren und stabilen Betriebs in Einklang gebracht werden. Vo­raussetzung ist, dass sich die Personen und das Team als Ganzes stetig an die neuen Herausforderungen anpassen.
DevOps ist zwar ein Thema, das in der Informationstechnik angesiedelt ist, aber im Kern mit der Entwicklung der Organisation in Verbindung steht (Change-Management). Damit ist auch klar, dass DevOps eine Aufgabe des Managements ist und kein technischer Ansatz. Der Lernprozess muss daher von der Ebene des Managements initiiert werden, sonst bleibt er stecken.
Mittels agiler Software-Entwicklung und DevOps wird nun versucht, die „Lücken“ im Entwicklungsprozess zu schließen. Die Ansatzpunkte sind folgende: Das Requirements Engineering stößt an seine Grenzen, wenn es versucht, die Anforderungen an das zu entwickelnde System im Vorhinein quasi generalstabsmäßig zu planen und auch umzusetzen. Wie man es besser machen kann, zeigen agile Methoden, zum Beispiel Scrum. DevOps schließt die Lücke innerhalb der IT und hat sehr viel mit Organisation und einem Veränderungsbewusstsein der Mitarbeiter zu tun. Werden beide Ansätze umfassend, korrekt und vor allem durchgängig angewendet, dann entsteht eine neue Form des Software-Lebenszyklus.
Dabei arbeiten von der ersten Idee und der Erhebung der Anforderungen über das Development bis hin zur Bereitstellung der Software alle Beteiligten zusammen. Lücken und Systembrüche werden weitgehend vermieden. Der gesamte Vorgang wird agil gestaltet, sodass Änderungen in den Anforderungen und Rahmenbedingungen kein Dilemma mehr darstellen. Die Verantwortung der Beteiligten aufseiten der IT ist stets umfassend und nicht an Silos gebunden. Vielmehr hat man es mit einem multidisziplinären Team zu tun, dessen Ziel eine zügige und qualitativ hochwertige Software ist. Damit dies funktionieren kann, sind die passenden Werkzeuge notwendig.
Verwandte Themen