Agile Paradise

Agile Softwareentwicklung in einer perfekten Welt

Agile Softwareentwicklung

Agile is a way of developing software
that reminds us
that although computers run the code,
it’s people who create and maintain it.

Jonathan Rasmusson, "The Agile Samurai"

Worum geht es bei Agile?

Jede Woche etwas produzieren

1. Große Probleme in Teilprobleme zerlegen

2. Auf das Wesentliche konzentrieren

  • Dokumentation?
    • Wichtig!
  • Konzept?
    • Wichtig!
  • Planung?
    • Wichtig!
  • Aber was ist am wichtigsten in der Softwareentwicklung?
    • SOFTWARE!

3. Funktionierende Software ausliefern

  • Jede Woche funktionierenden Code ausliefern
  • Testen
  • Automatisiert testen
  • Zeitig testen

4. Feedback

  • Der Kunde ist Teil des Teams
  • Anforderungen ändern sich
  • Neue Ideen kommen auf
  • ...das kann durchaus dazu führen, dass...

...Dinge sich ändern!

5. Veränderung ist nichts Böses!

6. Verantwortung übernehmen

  • Qualität
  • Timing
  • Erwartungen
  • Kosten
  • Jeder im Team!

Planung

Getting stuff done!

In einem weit, weit entfernten Land...

Die Einkaufsliste

  • Benutzer hinzufügen 1
  • Bestellung drucken 2
  • Produkt suchen 3
  • Bestellung stornieren 2
  • Angebot anlegen 1
  • Login einbauen 4
  • ...
  • Angebot anlegen 1
  • Benutzer hinzufügen 1
  • Produkt suchen 3

Definition of Done

Task: Enkel soll das Laub im Vorgarten entfernen

  • Wann ist es "fertig"?
    • Wenn er einen Plan abgibt, wie er den Vorgarten fegen will?
    • Wenn er das Laub besonders schick auf einen Haufen gefegt hat?
    • Den Vorgarten so fotografiert, dass das Laub nicht mehr zu sehen ist?

Done:

  • wenn der Vorgarten frei von Laub ist...
  • und das Laub ordentlich im Komposter gelandet ist...
  • und Harke und Kehrblech wieder ordentlich in der Garage sind!

Soll das bei Software anders sein?

Evolutionäre Software

MVP

Die Drei Wahrheiten

Konfuzius sagt...

...eigentlich ist es ganz einfach

  1. Es ist unmöglich alle Anforderungen zu Beginn eines Projektes zu erfassen!
  2. Welche Anforderungen man auch erfasst, sie werden sich ändern!
  3. Es wird immer mehr zu tun sein, als es Zeit und Geld hergeben!

Und wie nennen wir das Kind?

Agil arbeiten

Meet the team...

Toll Ein Anderer Machts

T-Shape Modell

Das optimale Agile Team

  • Sitzt nah beisammen.
  • Hat einen Kunden, der aktiv am agilen Prozess teilnimmt.
  • Organisiert sich selbst.
  • Entscheidet weitestgehend selbst.
  • Hat ein breites Wissen.
  • Gibt es nicht!

aber wenn wir uns was wünschen dürften...

Das Optimale TEam

Der Agile Kunde

Der Agile Berater

Der Agile Entwickler

Der Agile Tester

Der Agile Projektmanager

Der Agile (UX-)Designer

Teamphasen

Projektablauf

Prozesse, Hard- und Software

Das Inception Deck

Das Inception Deck

Kurz zusammengefasst

Warum sind wir hier?

Dies ist eine kleine Erinnerung, warum wir hier sind, wer unsere Kunden sind und warum wir uns entschieden haben, dieses Projekt zu realisieren.

Erstelle einen Elevator Pitch

Wenn wir nur 30 Sekunden hätten unser Projekt zu beschrieben, was würden wir sagen?

Erfinde eine Verpackung

Wenn wir in einer Zeitschrift blättern würden und eine Werbung für unser Produkt oder unsere Dienstleistung sehen würden, wie würde sie aussehen und - viel wichtiger - würden wir sie kaufen?

Erstelle eine "NICHT"-Liste

Es ist recht klar, was wir in diesem Projekt machen sollen. Lass uns noch klarer festhalten, was wir nicht machen!

"Treffe deine Nachbarn"

Das Team, welches direkt oder indirekt an dem Projekt arbeitet ist oftmals größer, als man im Vorfeld denkt. Warum nicht alle an einen Tisch bringen?

Lösung skizzieren

Skizziere eine ganz grobe Lösung für das Hauptproblem deines Projekts.

Frag dich, was dich wach hält?

Einige Dinge, die in Projekten passieren, sind geradezu beängstigend. Darüber zu reden und Lösungen zu finden, wie wir diese Dinge vermeiden, können sie weniger beängstigend machen.

Stecke den groben Zeitrahmen ab

Ist das ein 3-, 6-, 9- oder 12-Monats Projekt?

Prioritäten abstecken

Was verlangt es uns ab?

  • Wie lange brauchen wir?
  • Was kostet es?
  • Welches Team brauchen wir um erfolgreich zu sein?

User Stories

These: Dokumentation ist böse!

  • Was ist mit Änderungen?

User Stories sind:

  • kurz
  • aus der Sicht eines Nutzers geschrieben
  • enthalten eine Intention
  • und eine Validierung
  • passen auf einen PostIt!

User Stories

  • User Stories sind unsere Dokumentation
  • Sie definieren Akzeptanztests
  • Sind einfach zu überblicken

Planungspoker

Iteratives Arbeiten

Iteratives Entwickeln

  • Test Driven Development (TDD)
    • Behaviour Driven Development (BDD)
  • Refactoring
  • Automatisierte Tests
  • Continuous Integration

Iteratives Entwickeln

  • Testgetrieben
    • Verhaltensgetrieben 
  • Refactoring
  • Automatisierung
  • Continuous Integration

Prinzipien des Agilen Manifest

...so zum Abluss

Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.
Heisse Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.
Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne.
Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.
Errichte Projekte rund um motivierte Individuen. Gib ihnen das Umfeld und die Unterstützung, die sie benötigen und vertraue darauf, dass sie die Aufgabe erledigen.
Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu übermitteln, ist im Gespräch von Angesicht zu Angesicht.
Funktionierende Software ist das wichtigste Fortschrittsmaß.
Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmäßiges Tempo auf unbegrenzte Zeit halten können.
Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.
Einfachheit -- die Kunst, die Menge nicht getaner Arbeit zu maximieren -- ist essenziell.
Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams.
In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.

ENDE

Vielen Dank für Eure Aufmerksamkeit

Ole Rößner

Agile Paradise

By Ole Rößner

Agile Paradise

Agile Softwareentwicklung in einer perfekten Welt

  • 890