SDLC – Lebens­zyklus der Software­entwicklung

Was ist der SDLC?

Der Lebenszyklus der Softwareentwicklung (engl. Software Development Life Cycle = SDLC) ist ein Prozess zur Qualitätssicherung. Dabei wird die Entwicklung der Software in Phasen unterteilt, die für jede Änderung durchlaufen werden müssen. Üblicherweise werden folgende Phasen unterschieden:

  • Anforderungsanalyse
  • Planung
  • Softwaredesign (z.B. Design der Architektur)
  • Entwicklung
  • Test mit abschließendem Deployment
  • Betrieb

SDLC in Scrum und Kanban

In seiner ursprünglichen Form ist der SDLC ein sehr gutes Beispiel für Softwareentwicklung nach dem Wasserfallmodell. Anforderungen werden zunächst erhoben, dann eingeplant, entwickelt und abschließend getestet. Im Anschluss werden neue oder geänderte Anforderungen identifiziert und eingeplant, usw.

Das geradlinige Vorgehen des SDLC steht jedoch nicht im Widerspruch mit agilen Arbeitsweisen wie Scrum oder Kanban. Das strukturierte Arbeiten kann auch in der agilen Softwareentwicklung helfen, die Qualität des Produktes sicherzustellen. Dazu werden die Phasen des SDLC in verkürzter Form auf jede Iteration angewendet. In Scrum kann so in jedem Sprint ein kompletter Zyklus durchlaufen werden. In Kanban entsprechen die einzelnen Prozessschritte den Phasen des Zyklus, wodurch jede Aufgabe den Zyklus durchläuft. Die Phase des Betriebs kann in der Kombination mit Scrum oder Kanban auch unter Umständen entfallen, da das Produkt evtl. noch nicht veröffentlicht ist.

Abgrenzung zu DevOps

Sowohl SDLC als auch Continuous Deployment oder DevOps umfassen sowohl Entwicklung als auch Betrieb von Software und haben das Ziel, die Qualität von Software zu verbessern. Der große Unterschied ist jedoch, dass der SDLC ein Prozess zur Softwareentwicklung ist, während DevOps eine Kultur bzw. Mindset beschreibt, die in Unternehmen gelebt werden sollte. Ähnlich wie beim SDLC und Agilität ist es jedoch kein Widerspruch den SDLC-Prozess im Rahmen von DevOps zu benutzen. Die Darstellung und Benennung der Phasen des SDLC kann auf unterschiedlichste Arten erfolgen.

Um den Funktionsumfang des Cloudogu EcoSystem zu beschreiben benutzen wir diese Aufteilung. Wobei dieser Zyklus ganz bewusst auf die Entwicklung von Software fokussiert ist und den Betrieb außen vor lässt.

Lebenszyklus der Softwareentwicklung