Was sind die Software-Entwicklungsmethoden?

Was sind die Software-Entwicklungsmethoden?

Es gibt verschiedene Software-Entwicklungsmethoden, zwischen denen sind die beliebteste Agile und Wasserfall-Modelle. Das Wasserfall-Modell ist ein linearer Entwicklungsprozess, der sich auf unten fortschreitenden Phasen von Anforderungsanalyse, Design, Implementierung, Tests, Integration und Unterstützung besteht. Das Wasserfall-Modell setzt voraus, dass jede Phase in vollem Umfang vor dem Beginn der Nächsten abgeschlossen sein soll und sie sich nicht überlappen müssen.

 

Agile-Modell zielt darauf ab, Risiken mit Hilfe der Aufspaltung von Entwicklungsprozess in die Reihe von kurzen, schnellen Zyklen, so genannte Iterationen, zu minimieren. Gewönlich, dauern sie von zwei bis drei Wochen. Jede Iteration sieht sich wie ein Miniatur-Projekt aus, führt zu kleine inkrementelle Releases und beinhaltet solche Aktivitäten, wie Planung, Anforderungsanalyse, Design, Programmierung, Schöpfung von Tests und Dokumentation.

Methoden, die Agile Idee unterstützen

XP, Lean, Scrum, FDD Methoden gehören zu Agile. XP steht für Extreme Programming. Sein Hauptziel ist, die Dauer der Iterationen durch die kontinuierliche Integration, häufige Releases, Paar Programmierung, Test-Driven Development (TDD) zu reduzieren. Die automatisierte Tests spielen eine große Rolle hier und ein besonderes Augenmerk wird zu Modul- und Funktionstests gegeben.
Lean bedeutet “sparsame” Software-Entwicklung. Es gibt solche Indikatoren für Lean:

  • Eliminierung von Aspekte, die keine Werte schaffen (übermäßige Funktionalität, Bürokratisierung, langsame Kommunikation)
  • Fokus auf Training
  • Extrem schnelle Produktlieferung
  • Teammotivation
  • Ganzheitliche Vision.

Scrum ist eine Reihe von Grundsätzen, auf denen der Entwicklungsprozess sich basiert. Es erlaubt eine Software mit der neuen Funktionalität in streng festgelegten, kurzen Iterationen, so genannte Sprints zum Endbenutzer zu liefern. Neue Eigenschaften / Aufgaben werden am Anfang eines jeden Sprints definiert und können nicht während seiner gesamten Laufzeit geändert werden. Ein solcher Ansatz hilft mit Komplexität, Risiken zu bewältigen und vorhersehbare Ergebnisse zu liefern .

Agile vs Waterfall

Also, was sind die Vorteile der Wasserfall- und Agile-Methoden?

Vorteile von Wasserfall Vorteile von Agile
  • Produktqualität ist wichtiger als Kosten und Zeit
  • Schnelle Dokumentationserstellung
  • Die Anforderungen sind in der Anfangsphase festgelegt
  • Operative Entscheidung der Problemen und Fragen
  • Ausführliche Dokumentation und strukturierter Prozess erlaubt die unerfahrenen Teams zu beinhalten
  • Nutzung von Zeitrahmen
  • Einfach für Verständnis und Nutzung
  • Iterative Entwicklung
  • Ressourcen-, Risiken- und Zeitüberwachung
  • Es ist möglich, ein Produkt in den frühen Stadien der Entwicklung zu testen
  • Einfache Projektsteuerung
  • Alle Anpassungen und Änderungen können leicht angewendet werden

Es sollte auch beachtet werden, dass beide Methoden einige Nachteile haben.

Nachteile von Wasserfall Nachteile von Agile
  • Teuer und langsam
  • Erfordert eine ständige Kommunikation
  • Probleme können nur an der Überprüfungsphase identifiziert werden
  • Hohe Effizienz der Entscheidungsfindung
  • Endbenutzer kann nicht Ziele und Anforderungen des Projekts beeinflussen
  • Es ist nicht für geografisch verteilte Teams geeignet
  • Empfindlich auf Veränderungen
  • Es ist schwierig, ein neues Teammitglied vorzustellen
  • Alle Anforderungen sollen identifiziert und gründlich bevor der Entwicklung beschrieben werden
  • Probleme können sich unerwartet auftreten

Der Wasserfall-Methode wird verwendet, wenn die Produktanforderungen klar definiert sind. Es ist die beste Wahl für große, teure und komplexe Projekte  mit einem großen und geografisch verteilten Team.

 

Die Agile Methode ist für kleiner oder mittlere Projekte mit klar definierte Geschäftsziele geeignet, die während relativ kurzer Zeit von gut organisierten Team der Fachleuten implementiert werden können.

Wie Entwicklungsmethoden beeinflussen die Softwaretests

Da die Softwaretests ein integraler Bestandteil des Entwicklungsprozesses sind, ist die Auswirkung der gewählten Methodik  immens. Im Wasserfall-Modell beginnt der Testprozess erst nach der Codierungsstufe und wird durch die zahlreichen Unterlagen beigefügt: Teststrategie, Testplan, Testfälle, Fehlerbericht, Test Zusammenfassungsbericht. Daher, brauchen Sie mehr Zeit für Waterfall-Projekte, um die Testdokumentation zu erstellen.

 

Wenn die Agile-Methode während der Entwicklung verwendet wird, werden Tests nach jeder Iteration durchgeführt. Es gibt vier Richtwerte, die als Agile Manifesto bekannt:

  • Menschen und Interaktion sind wichtiger als Verfahren und Tools
  • Arbeitsprodukt ist wichtiger als umfangreiche Dokumentation
  • Die Zusammenarbeit mit einem Kunden ist wichtiger als Vertragsverhandlungen
  • Reaktion auf Änderungen ist wichtiger, als Anschluss an die ursprüngliche Planung.
Um die entwickelte nach Agile Methode Projekte zu testen, ist es besser erfahrene Leute zu wählen, die ihre Rollen jederzeit ändern können und Test Analyst, Tester oder Testdesigner bei Bedarf werden. Es gibt auch Fälle, wenn jedes Teammitglied eine Rolle des Test Lead bei jeder neuen Iteration versuchen kann.
Wie viele Dokumentationen soll man verwenden? Diese Entscheidung hängt von dem Team ab. Manchmal kann sie nur in einer Form der Check-Liste und Fehlerbericht vorgelegt werden.

 

Falls Sie mehrere Produkte haben und ein neuer QS-Teammitglied vorstellen müssen, wählen Sie Projekte, die nach Waterfall Methode entwickelt wurde.

Schlussfolgerungen

Die Agile Entwicklungsmethode gilt als billigere und besser auf die wechselnden Marktanforderungen, als die Wasserfall-Methode. Diese beiden Ansätze haben ihre Vor- und Nachteile. Die Wahl hängt von den Eingangsdaten, Projektanforderungen und anderen Faktoren ab. Je nach der gewählten Methode, wird sich das Testverfahren auch abweichen.