Agiles Modell

Eine flexible (agile) Methodik trägt dazu bei, das Risiko bei der Softwareentwicklung zu reduzieren, indem sie den Arbeitsablauf in mehrere kleine Zyklen verlagert. Diese Zyklen werden Iterationen genannt und dauern normalerweise zwei bis drei Wochen.

Eine Iteration ist wie ein kleines Softwareprojekt, das aus Aufgaben besteht, von denen jede die Funktionalität verbessert. Dazu gehören: einen Plan erstellen, Anforderungen bewerten, sich auf ein Projekt einigen, Code schreiben, Tests durchführen und technische Dokumentation erstellen.

Eine Iteration reicht normalerweise nicht für eine vollständige Softwareversion aus. Das Gute an Agile ist jedoch, dass am Ende jeder Iteration kleine Teile des Projekts zur Bewertung bereitstehen. Dadurch können Teammitglieder die Prioritäten für die weitere Arbeit ändern, ohne auf die endgültige Veröffentlichung warten zu müssen.

Durch die Anwendung einer „agilen“ Entwicklungsmethodik können Sie nach jeder Iteration ein konkretes Ergebnis sehen. Das heißt, der Entwickler kann nachvollziehen, ob das Ergebnis seiner Arbeit den Anforderungen entspricht oder nicht. Dies ist einer der wesentlichen Vorteile des flexiblen Modells.

Was die Nachteile betrifft, so ist es bei der Verwendung von Agile manchmal schwierig, die Kosten für Arbeitsressourcen und das Budget des Projekts abzuschätzen. Wenn wir die Optionen für die praktische Anwendung des flexiblen Modells betrachten, dann ist Extreme Programming (XP) das bekannteste davon.

XP basiert auf kurzen Besprechungen der Teammitglieder, die jeden Tag stattfinden, und auf regelmäßigen Besprechungen (einmal pro Woche oder weniger). Bei täglichen Kundgebungen (Daily Standup) werden in der Regel besprochen:

  • aktuelle Arbeitsergebnisse;
  • eine Liste der Aufgaben, die von jedem Teammitglied erledigt werden müssen;
  • aufgetretene Schwierigkeiten und Möglichkeiten, sie zu lösen.

Manifest

Agile ist eine umfassende Entwicklungsrichtung, daher sind die Regeln für die Arbeit daran in einem speziellen Dokument – ​​dem Agile Manifest – festgelegt. Dazu gehören sowohl Praktiken als auch Prinzipien, nach denen das Team arbeiten sollte.

Das Agile Manifest besteht aus 4 Grundideen und 12 Prinzipien.

Schlüsselideen:

  • Die Zusammenarbeit zwischen Entwicklern ist wichtiger als Tools.
  • die Arbeitsversion des Produkts hat Vorrang vor der Dokumentation;
  • gegenseitiges Verständnis zwischen Team und Kunde ist wichtiger als die Vertragsbedingungen;
  • Der ursprüngliche Plan kann bei Bedarf jederzeit geändert werden.

Die 12 Prinzipien von Agile sind hier:

  • Die Hauptpriorität ist die Übereinstimmung des fertigen Programms mit den Erwartungen des Kunden.
  • Eine Änderung der Bedingungen ist jederzeit zulässig, auch in der Endphase der Entwicklung (sofern dadurch die Qualität und Wettbewerbsfähigkeit der Software verbessert werden kann);
  • regelmäßige Lieferung funktionierender Versionen des Softwareprodukts (alle 14 Tage, monatlich oder vierteljährlich);
  • Der Schlüssel zum Erfolg ist die regelmäßige Interaktion zwischen Kunde und Entwicklern (vorzugsweise täglich).
  • Projekte sollten unter den Interessenten aufgebaut werden, diesen Menschen sollten die notwendigen Arbeitsbedingungen und jede Art von Unterstützung geboten werden;
  • Der beste Weg, Informationen im Team auszutauschen, ist ein persönliches Treffen.
  • Die Arbeitsversion der Software ist der beste Indikator für den Fortschritt.
  • Alle Beteiligten müssen in der Lage sein, während des gesamten Softwareentwicklungsprozesses das gewünschte Arbeitstempo aufrechtzuerhalten.
  • technische Verbesserungen und gutes Design verbessern die Flexibilität;
  • Es ist wichtig, es einfach zu halten und nicht zu viel zu kreieren.
  • Die besten Ergebnisse werden von den Teams erzielt, die in der Lage sind, sich selbst zu organisieren.
  • Teammitglieder sollten regelmäßig darüber nachdenken, wie sie ihre Effizienz durch eine Änderung des Arbeitsablaufs verbessern können.

Laut dem Agile-Manifest hängt ein guter Softwareentwicklungsprozess direkt von den Menschen ab, die an diesem Prozess beteiligt sind. Dazu müssen Sie ihre Interaktion so effizient wie möglich organisieren und ein möglichst gut organisiertes Team bilden.

Methoden

Darüber hinaus gibt es im Agile Manifest mehrere Methoden, die die Werte und Prinzipien erläutern:

  • Agile Modellierung;
  • Agile einheitlicher Prozess;
  • Agile Datenmethode
  • Schnelle Anwendungsentwicklung (DSDM);
  • Wesentlicher einheitlicher Prozess;
  • extremes Programmieren;
  • funktionsgesteuerte Entwicklung;
  • Real werden;
  • Aufmachen;
  • Gedränge.

Agile Modellierung ist eine Sammlung von Prinzipien, Begriffen und Praktiken, die die Entwicklung von Softwaremodellen und Dokumentation beschleunigt und vereinfacht.

Das Ziel der agilen Modellierung ist die Verbesserung der Modellierung und Dokumentation. Es ist wichtig zu beachten, dass dies weder Codierung, Tests noch Probleme im Zusammenhang mit der Projektsteuerung, -bereitstellung und -unterstützung umfasst. Diese Methodik umfasst jedoch eine Codeüberprüfung.

Agile Unified Process ist eine Methodik, die Benutzern die Annäherung (Modellierung) erleichtert. Wird normalerweise zur Entwicklung kommerzieller Software verwendet.

Agile-Data-Methode – mehrere ähnliche Methoden, bei denen Kundenbedingungen durch die Zusammenarbeit mehrerer Teams erreicht werden.

DSDM – dieser Ansatz unterscheidet sich von den anderen dadurch, dass neben den Entwicklern auch die Nutzer des zukünftigen Produkts aktiv daran beteiligt sind.

Feature-Driven Development ist eine Entwicklungsmethodik, die zeitlich begrenzt ist: „Jede Funktion darf nicht länger als zwei Wochen implementiert werden.“

Es ist zu bedenken, dass ein kleiner Anwendungsfall als Funktion betrachtet werden kann. Wenn es von Bedeutung ist, muss es in mehrere Funktionen unterteilt werden.

Getting Real ist eine iterative Methodik, bei der zuerst die Programmschnittstelle und erst dann ihre Funktionalität entwickelt wird.

OpenUP ist eine Entwicklungsmethode, die den Projektzyklus in vier Phasen unterteilt: Beginn, Verfeinerung, Konstruktion und Übergabe.

Nach den Prinzipien von Agile ist es unabhängig von der Dauer der Arbeit notwendig, allen Stakeholdern und Teammitgliedern eine Möglichkeit zu bieten, sich kennenzulernen und Entscheidungen zu treffen. Dadurch ist es möglich, die Situation effektiv zu kontrollieren und Zwischenergebnisse rechtzeitig auszuwerten. Der Projektplan definiert den Lebenszyklus und das Endergebnis sollte als stabile Veröffentlichung der Anwendung betrachtet werden.

Was Scrum betrifft, so regelt es die Regeln für die Verwaltung des Entwicklungsprozesses und ermöglicht die Anwendung bestehender Codierungspraktiken mit der Möglichkeit, die Bedingungen anzupassen oder Änderungen vorzunehmen. Mithilfe dieser Methodik können Sie Abweichungen vom erwarteten Ergebnis bereits in frühen Entwicklungsstadien erkennen und beseitigen.

Schauen wir uns das etwas genauer an...