Beliebte Vorgehensmodelle Softwareentwicklung und Frameworks

Die geläufigsten historischen und modernen Vorgehensmodelle Softwareentwicklung und Frameworks: eine Einführung und Leitfaden der Vor- und Nachteile

Mobilen App-EntwicklungUPDATED ON Oktober 5, 2021

Author

What is the software development life cycle

Bei einer Methodik handelt es sich um einen speziellen Ansatz bzw. eine Reihenfolge, um ein bestimmtes Ziel zu erreichen. Vorgehensmodelle Softwareentwicklung sind hier nicht anders. Jedes neue Softwareprodukt durchläuft die gleichen 6 Phasen eines Software Development Cycles:

  1. Planung
  2. Design
  3. Entwicklung
  4. Test
  5. Bereitstellung
  6. Wartung

Doch wie wir wissen, führen viele Wege nach Rom. Der Umfang und die Details in jeder Phase sind nicht immer gleich.

Können wir Sie bei Ihrem nächsten Entwicklungsprojekt unterstützen?

Flexible Modelle für Ihre Bedürfnisse!

Manchmal wird dem Softwareentwicklungsteam die Verantwortung übergeben, Projektmanagement-Entscheidungen eigenständig zu treffen und umzusetzen. Unter anderen Umständen sind die Teams dagegen an strenge Prozesse und Regelwerke gebunden. Manchmal werden selbst die kleinsten Details, wie ein fertiges Softwareprodukt aussehen und funktionieren soll, bereits von Anfang an festgelegt und dementsprechend umgesetzt. Alternativ können die Details auch während der Entwicklung anhand der vorab festgelegten Ziele entschieden werden. In diesem Falle werden Experimente und Nutzer-Feedback zurate gezogen.

In einem gut geführten Softwareentwicklungsprojekt sind diese Variationen, die innerhalb und zwischen den Phasen des Software Development Life Cycles auftreten, kein Zufall. Sie sind nämlich fester Bestandteil des Vorgehensmodells Softwareentwicklung, das für das jeweilige Projekt ausgewählt wurde.

Vorgehensmodelle Softwareentwicklung beinhalten oft Prinzipien, Glaubensgrundsätze oder auch einen speziellen kulturellen Faktor. Beispielsweise lauten die vier Schlüsselwerte der agilen Methodik wie folgt:

  • Personen und Interaktion anstatt Prozesse und Werkzeuge;
  • Arbeitssoftware anstatt umfassende Dokumentation;
  • Kundenkollaboration anstatt Vertragsverhandlungen;
  • Reaktion auf Veränderungen anstatt strikter Planumsetzung.

Die Methodik beruht ebenfalls auf 12 Prinzipien.

Unterschiedliche Vorgehensmodelle teilen die jeweiligen Stufen des Software Development Life Cycles weiter auf oder geben diesen unterschiedliche Namen.

Es kann auch zu Variationen in der Arbeitsabfolge kommen, selbst wenn diese dem gleichen Vorgehensmodell entspricht. Dies kann daran liegen, dass die Methodik bewusst Raum für Flexibilität lässt, oder weil die Teams verschiedenen Frameworks folgen.

Ein Softwareentwicklungs-Framework besteht aus vielen kleinen Details, die alle unter weitläufige Vorgehensmodelle wie Agile fallen und genauere Informationen darüber liefern, wie und wann die einzelnen Komponenten innerhalb des Entwicklungsprozesses ausgeführt werden sollen.

Da der theoretische Ansatz nun verständlicher sein sollte, werfen wir im Anschluss einen genaueren Blick auf einige der historisch und gegenwärtig bedeutendsten Vorgehensmodelle Softwareentwicklung sowie die jeweiligen Frameworks. Wir können schon fast garantieren, dass Sie mindestens ein Softwareprodukt, das Sie oft und hoffentlich gerne nutzen, mit diesen Vorgehensmodellen oder Frameworks entwickelt wurde.

Wasserfall

Die Wasserfallmethodik zur Softwareentwicklung ist ein geplanter, sequenzieller Ansatz. Die endgültige Software wird hierbei von Anfang an vollständig mit definierten Funktionalitäten und anderen Anforderungen geplant. Beim Bau eines Hauses kann dieses Vorgehen mit detaillierten Architekturplänen verglichen werden.

Waterfall methodology for app development

Agile

Bei der agilen Softwareentwicklung handelt es sich um einen iterativen Ansatz, bei dem sich Anforderungen und Lösungen im Laufe des Projekts verändern können. Agile Entwicklung wird in kleinere Abschnitte unterteilt, die als Sprints bezeichnet werden. Anforderungen und Lösungen werden in der Regel nach jedem Sprint neu bewertet.

Während die Wasserfall-Methodik verwendet wird, um ein vollständiges Softwareprodukt von Anfang bis Ende zu erstellen und anschließend freizugeben, wird in der agilen Methodik das Minimum Viable Product (MVP) freigegeben, um den Nutzern einen Mehrwert zu liefern. Das MVP wird anschließend anhand des Benutzerverhaltens und Feedbacks iterativ angepasst und ergänzt.

Da Softwareprodukte an Umfang und Komplexität zugenommen haben, hat sich Agile zur dominierenden Softwaremethodik entwickelt. Befürworter argumentieren, dass ein agiler Ansatz Software entwickelt, die Benutzer wünschen oder benötigen – im Gegensatz zu Software, von der jemand (oft fälschlicherweise) annimmt, dass ein Bedarf vorliegt.

Agile methodology for software and app development

Lean

Die Lean-Methodik wurde ursprünglich für Fertigungsprozesse entwickelt und im Toyota Production System definiert, bevor sie als Softwareentwicklungsmethodik umfunktioniert wurde. Toyota beschreibt das Produktionssystem, das das Lean-Modell repräsentiert, als:

„Ein Produktionssystem, das auf der Philosophie der vollständigen Beseitigung aller überflüssigen Prozesse basiert, um die effizientesten Methoden zu finden.“

Als Teilbereich verschiedener Praktiken fällt Lean unter die agile Methodik.

K&C – WIR KREIEREN EINZIGARTIGE TECH-LÖSUNGEN SEIT ÜBER 20 JAHREN. WIR VERSCHAFFEN IHNEN IHREN WETTBEWERBSVORTEIL!

Schreiben Sie uns eine Nachricht, um Ihre individuellen Bedürfnisse oder das nächste Projekt zu besprechen.

Scrum

Scrum, ein Teilbereich der agilen Methodik und der am häufigsten verwendete Ansatz, kann als leichtgewichtiges Prozess-Framework für die agile Entwicklung definiert werden. Ein wesentlicher Unterschied zu anderen agilen Prozessen sind die Konzepte und Praktiken, die sich in 3 Kategorien unterteilen lassen:

  • Rollen
  • Artefakte
  • Zeitboxen

Kanban

Kanban ist eine alternative Strategie zu Scrum, um ein agiles Entwicklungsmodell umzusetzen. Während Scrum auf kurzen, strukturierten Sprints basiert, ist Kanban eine kontinuierliche und flüssige Strategie.

Es basiert auf der Visualisierung von Arbeitsabläufen, Effizienz-Optimierung und der Reduzierung von laufenden Arbeiten (Work-in-Progress).

Scrum vs. Kanban

Scrum vs Kanban deutsche infographic

Scrum wird manchmal als eine spezielle Implementierung von Agile mit Kanban definiert  – eine spezifische Implementierung von Lean.

Feature-Driven Development (FDD), Extreme Programming (XP) und Test-Driven-Development sind weitere Varianten, die unter das Dach von Agile fallen.

DevOps

DevOps als Methodik, Organisationskultur, Tools und Praktiken, ist in den letzten Jahren immer beliebter geworden. Dazu trägt die Tatsache bei, dass DevOps mit Agile kompatibel ist und verschiedene Aspekte von DevOps sogar von Agile übernommen wurden.

Der Unterschied besteht darin, dass Agile eine allgemeine Methodik für die Produktentwicklung darstellt, während sich DevOps speziell auf die Kombination von Softwareentwicklungs-, QA- und IT-Operations-Teams in einer Einheit konzentriert, sodass eine kontinuierliche Integration und Bereitstellung neuer Iterationen ermöglicht wird.

DevOps bedeutet, dass Ingenieure über den gesamten Entwicklungslebenszyklus arbeiten – von der Entwicklung über das Testen bis hin zur Bereitstellung. In Zeiten vor DevOps übergab das Softwareentwicklungsteam den Software-Build einfach in einer Staging- oder Testumgebung an das Operations-Team, das diese dann bereitstellte.

DevSecOps ist eine Erweiterung von DevOps, bei der jeder, der an einem Softwareentwicklungsprojekt arbeitet, auch für die Sicherheit verantwortlich ist.

DevOps infographic

GitOps

GitOps, speziell für die Cloud-native Softwareentwicklung, stellt ein weiteres Modell bzw. eine Reihe von Praktiken dar, die Entwicklungs- und Betriebsaufgaben innerhalb einer kontinuierlichen Bereitstellungs-Pipeline näher zusammenführt.

In einem Satz zusammengefasst:

„GitOps ist versionierte CI/CD auf einer deklarativen Infrastruktur.“

Das Paradigma, verankert im Prinzip des Git-Repositorys, enthält immer deklarative Beschreibungen der aktuell gewünschten Infrastruktur in der Produktionsumgebung, die die „Single Source of Truth“ darstellen.

Die Live-Umgebung muss hierbei immer eine exakte Kopie der Git-Deklaration sein, sodass die Software auf beiden genau gleich läuft. Was wiederum bedeutet, dass jeder neue Code, der dem Git hinzugefügt und bereits in dieser Umgebung getestet wurde, sicher automatisch in die Live-Umgebung gezogen werden kann. Traditionell überträgt das Operations-Team genehmigte Iterationen manuell in die Live-Umgebung, sobald die Tests abgeschlossen sind.

Die Auswahl eines projektspezifischen Vorgehensmodells oder Frameworks ist wichtig, aber erst die Umsetzung macht den Unterschied

Die geeignetsten Vorgehensmodelle Softwareentwicklung  für ein bestimmtes Projekt hängen von der Art des jeweiligen Projekts sowie den Erfahrungen und Vorlieben des Management- und Entwicklerteams ab. Ein komplexes, großes Unterfangen benötigt ggf. komplett andere Ansätze als ein kleines, einfaches Projekt. Die Erfahrungen des Teams können hier ebenfalls zum ausschlaggebenden Faktor werden.

Letztendlich ist ein Vorgehensmodell oder ein Framework ein Produktivitäts- und Organisationswerkzeug. Und die Effektivität eines Tools hängt vornehmlich davon ab, wie es unter den jeweiligen Umständen verwendet wird. Ein gutes Tool bei richtiger Verwendung liefert bessere Ergebnisse. Aber selbst das beste Tool erzielt bei schlechter Verwendung nicht die gewünschten Resultate.

Ein angemessenes Vorgehensmodell Softwareentwicklung oder Framework kann das bestmögliche Ergebnis erzielen, wenn gleichzeitig eine starke Führung und Engagement vonseiten des Entwicklerteams vorhanden ist.

Wann gelingt IT Outsourcing?

(und wann nicht?)