Agile Basics

Agilität, Software Engineering, Webdesign

Dieser Beitrag widmet sich der Modul-Zusammenfassung zum Thema „Agile Basics“ basierend auf den offiziellen Lernzielen.

Übersicht Agile Basics
Übersicht Agile Basics

L1: Grundbegriff „Agilität“ kennen

Warum agil?
Die Softwareentwicklung ist für gewöhnlich nicht einfach, sondern eine komplexe Angelegenheit.
Die folgenden drei Faktoren erhöhen die Komplexität für Unternehmen:

  1. Globalisierung
    Unternehmen agieren international und sind weltweit aktiv.
  2. Digitalisierung
    Althergebrachte Geschäftsmodelle werden durch digitale Geschäftsmodelle abgelöst.
  3. Anforderungen der Menschen an ihre Arbeit
    Mit den geänderten Bedürfnissen der Menschen müssen Unternehmen diesen Anforderungen gerecht werden.

Die Bedeutung von „Agilität“ wird in der Softwareentwicklung oftmals mit Schnelligkeit und Flexibilität beschrieben, um konkrete Ergebnisse zu erzielen.

Agile Kernideen
Der Hauptfokus von agilen Teams liegt in der kundenorientierten Entwicklung von Produkten.

  • Mit direkter Kundeninteraktion werden die Probleme und die Bedürfnisse der Kunden verstanden. An die Endkunden werden durch das agile Team angemessene Lösungen geliefert.
  • Der Problem-Lösungszyklus sollte möglichst schnell und häufig durchlaufen werden, da eine hohe Marktdynamik schnelle Reaktion erfordert. Der Kunde soll die Lösung so schnell wie möglich erhalten.
  • Das agile Team organisiert sich selbst und passt sich optimal an ihre Herausforderungen an. Es agiert dabei autonom und selbstorganisiert.
  • Um kundenrelevante Probleme schnell lösen zu können, arbeiten in einem agilen Team Personen mit unterschiedlichen Qualifikationen und Spezialisierungen (-> Interdisziplinarität).
  • Beim agilen Vorgehen werden Phasenüberlappungen angestrebt und dadurch die einzelnen Arbeitsschritte parallel ausgeführt.

Der Begriff „Agilität“ kann wie folgt definiert werden:
Die agilen Teams sind autonome, Business-fokussierte Teams, die ihren Prozess in Besitz nehmen und die Verantwortung für ihn tragen.

Vorteile von Agilität
Mit „Agilität“ ergeben sich folgende Vorteile:

  • Die Phasenüberlappung verkürzt die Time-to-Market.
  • Das interdisziplinäre (cross-funktionale) Team erhöht die Wahrscheinlichkeit von Innovation und es entstehen qualitativere Lösungen.
  • Das agile Team kann schnell auf veränderte Rahmenbedingungen reagieren.
  • Der direkte Kundenkontakt und das Kundenfeedback führen zu grösserer Mitarbeiterzufriedenheit und Motivation.

Verbreitung von Agilität
Agile Entwicklung bedeutet einen Kulturwandel in den Unternehmen, denn es geht grundsätzlich um veränderte Verhaltens- und Denkweisen bei den Beteiligten. Das Verhalten kann durch Schulungen und Coaching nachhaltig geändert werden.

Damit die agile Denkweise zum Erfolg wird, müssen die agilen Werte und Prinzipien konsequent umgesetzt und bei der täglichen Arbeit auch gelebt werden.

Agile Arbeitsweisen und Organisationsformen werden durch die zahlreichen Erfolgstories in der Softwareentwicklung nun vermehrt auch in vielen anderen Bereichen erfolgreich praktiziert:

  • Entwicklung von physischen Produkten
  • Generelles Management und Unternehmensorganisation
  • Entwicklung und Durchführung von Services

L2: Ursprünge und Motivation „Agilität“ kennen

Das agile Manifest
Das agile Manifest stammt aus der Softwareentwicklung und definiert das agile Wertesystem (Mindset). Im agilen Manifest sind vier grundlegende Aussagen bzgl. der Prioritäten in Entwicklungsprojekten formuliert:

  • Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
  • Funktionierende Software ist wichtiger als umfassende Dokumentation
  • Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlung
  • Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans

Weiterhin formuliert das agile Manifest zwölf Prinzipien, welche die Grundregeln der Softwareentwicklung in agilen Projekten beschreiben.

Cynefin-Framework
Beim Cynefin-Framework oder Cynefin-Modell handelt es sich um ein Wissensmanagement-Modell um anstehende Aufgaben, Probleme und Herausforderungen zu beschreiben und die beste Vorgehensweise zu ermitteln.
Cynefin ist ein walisisches Wort und wird mit „Lebensraum“ oder „Zugehörigkeit“ übersetzt.

Das Cynefin-Framework ist in fünf Bereiche aufgeteilt:

  • Chaotisch (Chaotic)
  • Komplex (Complex)
  • Kompliziert (Complicated)
  • Einfach (Simple)
  • Unklar (Disorder)
Cynefin-Modell
Cynefin-Modell ([Lean 2015])

L3: Empirische und plangetriebenes Arbeiten kennen und unterscheiden können

Design Thinking
Beim Design Thinking handelt es sich um einen kreativen Problemlösungsprozess um kundenorientierte Innovationen hervorzubringen.

Der Design Thinking-Entwicklungsprozess enthält sechs Phasen:

  1. Verstehen
  2. Beobachten
  3. Sichtweise definieren
  4. Ideen finden
  5. Prototype entwickeln
  6. Testen

Lean Development
Das Lean Management wird häufig über fünf Prinzipien definiert, welche in vielen Methoden und Werkzeugen aus der agilen Welt zu finden sind.

  1. Wert: Präzise Spezifizierung des Werts vom Produkt
  2. Wertstrom: Erkennung vom Wertstrom
  3. Flow: Erzeugung von einem Wertstromfluss ohne Unterbrechungen
  4. Pull: Bestimmung des Taktes der Bearbeitung durch den Kunden
  5. Perfektion: Kontinuierliche Verbesserung der einzelnen Dinge

Mit Lean-Ansätzen lassen sich Produkte zum Beispiel früher an den Markt bringen und das in besserer Qualität und in kürzerer Produktionszeit.
Die Prinzipien von Lean Development sind in Scrum und anderen Frameworks für die agile Softwareentwicklung umgesetzt.

Agile Entwicklung mit Scrum
Scrum basiert auf der Theorie empirischer Prozessteuerung und fokussiert sich dabei auf die Entwicklung innovativer Produkte oder Services.

Scrum definiert drei Säulen:

  1. Transparenz (Transparency)
  2. Überprüfung (Inspection)
  3. Anpassung (Adaptation)

Mit Inspection & Adaptation werden Erfahrungen und Beobachtungen bewertet und Vorhersagen über die nächsten Schritte abgeleitet.

Scrum kann auf drei Perspektiven betrachtet werden:

  1. Die Produktperspektive beschreibt den Business-Fokus, wie Produkte definiert und verbessert werden können.
  2. Die Entwicklungsperspektive beschreibt die autonomen Entwicklungsteams, welche die Produkte entwickeln.
  3. Die Verbesserungsperspektive beschreibt, wie die Zusammenarbeit und Prozesse verbessert werden können.

Produktperspektive
Der Product Owner ist für den Produkterfolg verantwortlich und optimiert den Produktnutzen durch die Priorisierung der Produkt-Features (-> Produktvision). Für den Produkterfolg pflegt der Product Owner ein Product Backlog, in dem die Produkteigenschaften beschrieben sind.

Die Entwicklung von einem nutzbaren und potenziell auslieferbarem Produktinkrement erfolgt in Sprints.

Am Ende des Sprints demonstriert das Entwicklungsteam die abgeschlossenen Product-Backlog-Einträge den Stakeholdern, um Feedback zum Produkt zu erhalten.

Entwicklungsperspektive
Das selbstorganisierte und interdisziplinäre Entwicklungsteam besteht aus 3 – 9 Teammitgliedern, welches ein lieferbares Produktinkrement entwickelt.

Die Teammitglieder treffen sich jeden Tag zum Daily Scrum, um den Arbeitsfortschritt in Richtung des Sprint-Ziels zu überprüfen und die nächsten Aufgaben im Sprint abzustimmen. Um die Komplexität zu reduzieren, wird das Daily Scrum jeden Tag zur gleichen Uhrzeit am gleichen Ort für maximal 15 Minuten abgehalten.

Verbesserungsperspektive
Der Scrum Master ist ein Coach und hilft allen Beteiligten Scrum effektiv anzuwenden und die Scrum-Theorie, Praktiken, Regeln und Werte zu verstehen.

Der kontinuierliche Verbesserungsprozess findet in Scrum auf zwei Arten statt:

  1. Im Daily Scrum werden Hindernisse identifiziert und Verbesserungen erarbeitet.
  2. In der Sprint-Retrospektive reflektiert das Scrum-Team wie der vergangene Sprint verlief, um mögliche Verbesserungsmassnahmen zu definieren.

Das Konzept vom Nordstern kann helfen, den kontinuierlichen Verbesserungsprozess effektiver zu gestalten, indem den Verbesserungsbemühungen eine Richtung gegeben wird.

Scrum Werte
Für den erfolgreichen Einsatz von Scrum sind im Scrum Guide fünf Werte erwähnt:

  • Selbstverpflichtung (Commitment)
  • Mut (Courage)
  • Fokus (Focus)
  • Offenheit (Openness)
  • Respekt (Respect)

Scrum ist nicht gleich Agilität!
Oft wird Scrum mit Agilität gleichgesetzt. Dabei ist Scrum „nur“ ein Framework, welches sich hervorragend eignet, Agilität in Projekten umzusetzen. Agilität umfasst viel mehr als nur Scrum.

Literatur & Links