Aus dem Kurs: DevOps – Grundlagen
Agile Softwareentwicklung
Aus dem Kurs: DevOps – Grundlagen
Agile Softwareentwicklung
DevOps geht nicht ohne agile Softwareentwicklung. Viele Firmen arbeiten heutzutage bereits agil. Die Wahrscheinlichkeit ist hoch, dass es bei Ihnen im Unternehmen genauso ist. Das ist gut und wichtig und die erste Grundlage, die gesetzt werden muss. Die Planung, das Projektmanagement und somit die agile Entwicklung ist gleichzeitig auch der erste Schritt im DevOps Software Delivery Lifecycle. Früher wurde viel im Wasserfallmodell gearbeitet. Dabei wurden langwierige Planungen gemacht, die dann über einen sehr langen Zeitraum von den verschiedenen Teams implementiert wurden. Ein solcher Prozess begann mit der Anforderungsanalyse und Spezifikationen, gefolgt von der Designphase und dann der Implementierungsphase. Erst danach wurde getestet und anschließend veröffentlicht. Gravierende Fehler, die etwa in der Qualitätssicherungsphase auftraten, müssten eigentlich in der Design- oder Implementierungsphase korrigiert werden, die nun allerdings längst vorüber war. So gingen gut und gerne mal sechs Monate ins Land, bis z.B. eine Fehlerkorrektur beim Endnutzer ankam. Schön ist das Ganze natürlich nicht. Das Wasserfallmodell findet man in der Praxis heute eher selten. Agile Entwicklungsmethoden sind schon lange üblich. Das werden Sie sicherlich auch schon festgestellt haben. Ich stelle allerdings immer wieder einige Fehler fest, insbesondere aus dem DevOps-Blickwinkel. Es ist gar nicht so unüblich, dass die agile Transformation in vielen Fällen nur halbgar durchgeführt worden ist. Häufig wurde nur die reine Entwicklungsarbeit agilisiert. Was fehlte, war allerdings der Blick auf den gesamten Value Stream. Denn dieser liefert schließlich den Wert für die Endnutzer:innen aus. So sieht man leider häufig einen sog. agilen Wasserfall. Es wurde zwar in Sprints gearbeitet, das Delivery wurde aber gar nicht für Endnutzer zur Verfügung gestellt. Sie fragen sich nun vielleicht, wo denn der Unterschied zwischen agiler Softwareentwicklung und DevOps ist. Grundsätzlich kann man sagen, dass DevOps eine Ergänzung der agilen Softwareentwicklung ist. Statt also nur auf die Entwicklungstätigkeiten zu schauen, schaut man nun eben auch auf häufige Releases und Deployments. Spätestens am Ende eines Sprints sollte die Software so weit sein, dass man sie nicht nur theoretisch, sondern auch praktisch ausliefern kann. Aber auch Sprintlängen von zwei Wochen wären dann viel zu lang. Besser ist es, wenn man alles so unter Kontrolle hat, dass man mehrfach täglich die Neuentwicklungen und Fehlerkorrekturen ausrollen kann. Gerade bei potenziellen Sicherheitslücken ist das extremst wichtig. An dieser Stelle folgt keine weitere Vertiefung in das agile Projektmanagement. Wichtig ist nur, dass die Prinzipien der agilen Softwareentwicklung bei DevOps weitergedacht werden. Visibilität ist z.B. ein weiterer Aspekt, den man nicht vernachlässigen sollte. Wer tiefer in das Thema einsteigen möchte, dem kann ich den LinkedIn-Kurs "Agiles Projektmanagement" ans Herz legen.