Agile Softwareentwicklung in einer perfekten Welt
Agile is a way of developing software
that reminds us
that although computers run the code,
it’s people who create and maintain it.
Jede Woche etwas produzieren
Getting stuff done!
Soll das bei Software anders sein?
Konfuzius sagt...
Meet the team...
aber wenn wir uns was wünschen dürften...
Prozesse, Hard- und Software
Dies ist eine kleine Erinnerung, warum wir hier sind, wer unsere Kunden sind und warum wir uns entschieden haben, dieses Projekt zu realisieren.
Wenn wir nur 30 Sekunden hätten unser Projekt zu beschrieben, was würden wir sagen?
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?
Es ist recht klar, was wir in diesem Projekt machen sollen. Lass uns noch klarer festhalten, was wir nicht machen!
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?
Skizziere eine ganz grobe Lösung für das Hauptproblem deines Projekts.
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.
Ist das ein 3-, 6-, 9- oder 12-Monats Projekt?
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.