SDLC - Agiles Modell
Das agile SDLC-Modell ist eine Kombination aus iterativen und inkrementellen Prozessmodellen mit Schwerpunkt auf Prozessanpassungsfähigkeit und Kundenzufriedenheit durch schnelle Lieferung eines funktionierenden Softwareprodukts. Agile Methoden unterteilen das Produkt in kleine inkrementelle Builds. Diese Builds werden in Iterationen bereitgestellt. Jede Iteration dauert normalerweise etwa ein bis drei Wochen. Bei jeder Iteration arbeiten funktionsübergreifende Teams gleichzeitig an verschiedenen Bereichen wie:
- Planning
- Anforderungsanalyse
- Design
- Coding
- Unit Testing und
- Abnahmetests.
Am Ende der Iteration wird dem Kunden und wichtigen Stakeholdern ein funktionierendes Produkt angezeigt.
Was ist agil?
Das agile Modell ist der Ansicht, dass jedes Projekt anders gehandhabt werden muss und die vorhandenen Methoden auf die Projektanforderungen zugeschnitten werden müssen. In Agile sind die Aufgaben in Zeitfelder (kleine Zeitrahmen) unterteilt, um bestimmte Funktionen für eine Version bereitzustellen.
Nach jeder Iteration wird ein iterativer Ansatz gewählt und ein funktionierender Software-Build bereitgestellt. Jeder Build ist in Bezug auf Funktionen inkrementell. Der endgültige Build enthält alle vom Kunden benötigten Funktionen.
Hier ist eine grafische Darstellung des agilen Modells -
Der agile Denkprozess hatte früh in der Softwareentwicklung begonnen und wurde aufgrund seiner Flexibilität und Anpassungsfähigkeit mit der Zeit immer beliebter.
Zu den beliebtesten agilen Methoden gehören Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development und Dynamic Systems Development Method (DSDM) (1995). Diese werden nun gemeinsam als bezeichnetAgile Methodologies, nachdem das Agile Manifest im Jahr 2001 veröffentlicht wurde.
Es folgen die Prinzipien des Agilen Manifests -
Individuals and interactions - In der agilen Entwicklung sind Selbstorganisation und Motivation wichtig, ebenso wie Interaktionen wie Co-Location und Paarprogrammierung.
Working software - Demo-Arbeitssoftware wird als das beste Kommunikationsmittel mit den Kunden angesehen, um deren Anforderungen zu verstehen, anstatt nur von der Dokumentation abhängig zu sein.
Customer collaboration - Da die Anforderungen zu Beginn des Projekts aufgrund verschiedener Faktoren nicht vollständig erfasst werden können, ist eine kontinuierliche Kundeninteraktion sehr wichtig, um die richtigen Produktanforderungen zu erhalten.
Responding to change - Agile Development konzentriert sich auf schnelle Reaktionen auf Veränderungen und kontinuierliche Entwicklung.
Agile Vs traditionelle SDLC-Modelle
Agile basiert auf dem adaptive software development methodsWährend die traditionellen SDLC-Modelle wie das Wasserfallmodell auf einem prädiktiven Ansatz basieren. Vorausschauende Teams in den traditionellen SDLC-Modellen arbeiten normalerweise mit detaillierter Planung und haben eine vollständige Prognose der genauen Aufgaben und Funktionen, die in den nächsten Monaten oder während des Produktlebenszyklus geliefert werden sollen.
Vorhersagemethoden hängen vollständig von der requirement analysis and planningzu Beginn des Zyklus durchgeführt. Alle Änderungen, die übernommen werden sollen, unterliegen einer strengen Änderungskontrolle und Priorisierung.
Agile verwendet eine adaptive approachWo es keine detaillierte Planung gibt und Klarheit über zukünftige Aufgaben nur in Bezug darauf besteht, welche Funktionen entwickelt werden müssen. Es gibt eine funktionsgesteuerte Entwicklung und das Team passt sich dynamisch an die sich ändernden Produktanforderungen an. Das Produkt wird sehr häufig durch die Release-Iterationen getestet, um das Risiko schwerwiegender Fehler in Zukunft zu minimieren.
Customer Interactionist das Rückgrat dieser agilen Methodik, und offene Kommunikation mit minimaler Dokumentation sind die typischen Merkmale der agilen Entwicklungsumgebung. Die agilen Teams arbeiten eng zusammen und befinden sich meist am selben geografischen Standort.
Agiles Modell - Vor- und Nachteile
Agile Methoden sind in der Software-Welt in letzter Zeit weit verbreitet. Diese Methode ist jedoch möglicherweise nicht immer für alle Produkte geeignet. Hier sind einige Vor- und Nachteile des Agile-Modells.
Die Vorteile des agilen Modells sind folgende:
Ist ein sehr realistischer Ansatz für die Softwareentwicklung.
Fördert Teamwork und Cross Training.
Funktionalität kann schnell entwickelt und demonstriert werden.
Ressourcenanforderungen sind minimal.
Geeignet für feste oder sich ändernde Anforderungen
Liefert frühzeitige Teilarbeitslösungen.
Gutes Modell für Umgebungen, die sich ständig ändern.
Minimale Regeln, Dokumentation einfach anzuwenden.
Ermöglicht die gleichzeitige Entwicklung und Bereitstellung in einem insgesamt geplanten Kontext.
Wenig oder keine Planung erforderlich.
Einfach zu verwalten.
Gibt Entwicklern Flexibilität.
Die Nachteile des agilen Modells sind wie folgt:
Nicht geeignet für den Umgang mit komplexen Abhängigkeiten.
Mehr Risiko für Nachhaltigkeit, Wartbarkeit und Erweiterbarkeit.
Ein Gesamtplan, ein agiler Leiter und eine agile PM-Praxis sind ein Muss, ohne das es nicht funktioniert.
Das strikte Liefermanagement bestimmt den Umfang, die zu liefernde Funktionalität und die Anpassungen, um die Fristen einzuhalten.
Hängt stark von der Kundeninteraktion ab. Wenn der Kunde nicht klar ist, kann das Team in die falsche Richtung geführt werden.
Es besteht eine sehr hohe individuelle Abhängigkeit, da nur eine minimale Dokumentation generiert wird.
Der Technologietransfer an neue Teammitglieder kann aufgrund fehlender Dokumentation eine große Herausforderung darstellen.