Was ist agile Entwicklung?

Vereinfacht gesagt, wird ein Projekt in verschiedene Phasen oder Schritte eingeteilt. Innerhalb jeder dieser Phase wird kontinuierlich wiederholt kommuniziert und verbessert.

Die 4 Kernpunkte:

  • Einzelpersonen und Interaktionen über Prozesse und Tools
  • Funktionierende Software über umfassende Dokumentation
  • Kundenzusammenarbeit bei Vertragsverhandlungen
  • Auf Veränderungen reagieren, anstatt einem Plan zu folgen

Der menschlich Aspekt von Projekten, die Anpassungsfähigkeit und die funktionale Software werden über die strikte Einhaltung von Plänen oder exakter Dokumentation gestellt.

Weitere detailliertere Grundsätze wurden im „Agile Manifesto“ festgelegt. Diese Regeln dienen zur Steigerung der Kundenzufriedenheit, der Aufrechterhaltung eines stabilen Arbeitsablaufes und der Schaffung eines Umfeldes in dem Innovation und Anpassungsfähigkeit gedeihen.

Die 12 Prinzipien des „Agilen Manifesto“:

  1. Höchste Priorität hat die Kundenzufriedenheit durch frühzeitige, kontinuierliche Lieferung von Softwareteilen bis zum Endprodukt
  2. Positiver Umgang mit sich ändernden Anforderungen
  3. Häufige Lieferung von Softwareteilen in möglichst kurzen Abständen (wöchentlich, monatlich)
  4. Geschäftsleute und Entwickler müssen während des gesamten Projekts täglich zusammenarbeiten
  5. Bauen Sie Projekte rund um motivierte Personen auf. Geben Sie ihnen das Umfeld und die Unterstützung, die sie brauchen, und vertrauen Sie darauf, dass sie ihre Arbeit erledigen
  6. Die effizienteste und effektivste Methode zur Informationsvermittlung an und innerhalb eines Entwicklungsteams ist das persönliche Gespräch
  7. Funktionierende Software ist der wichtigste Maßstab für den Fortschritt
  8. Agile Prozesse fördern eine nachhaltige Entwicklung. Die Käufer, Entwickler und Benutzer sollten in der Lage sein, auf unbestimmte Zeit ein konstantes Tempo aufrechtzuerhalten
  9. Kontinuierliche Aufmerksamkeit für technische Exzellenz und gutes Design steigert die Agilität
  10. Einfachheit – die Kunst, die Menge der nicht zu erledigenden Arbeit zu maximieren – ist von entscheidender Bedeutung
  11. Die besten Architekturen, Anforderungen und Designs entstehen durch selbstorganisierende Teams
  12. In regelmäßigen Abständen denkt das Team darüber nach, wie es effektiver werden kann, und passt dann sein Verhalten entsprechend an

Bekannte agile Methoden:

KANBAN

  • ist eine visuelle Methode innerhalb von Agile
  • Teams nutzen digitale Kanban-Boards, um den Status von Aufgaben im Entwicklungsprozess zu visualisieren
  • Aufgaben werden als Karten auf der Tafel dargestellt, verschiedene Phasen des Prozesses werden als Spalten dargestellt
  • Teammitglieder rücken Karten von der Backlog-Spalte in die entsprechende Spalte vor, die den aktuellen Stand der Aufgabe widerspiegelt, während sie mit ihrer Arbeit fortfahren
  • hilft Teams effektiv, Hindernisse zu erkennen und den Umfang der erledigten Arbeit zu überwachen

SCRUM

  • wahrscheinlich die bekannteste agile Methodik und organisiert die Arbeit in „Sprints“ oder kurzen Zyklen, sodass Teams ihr Produkt schnell anpassen und iterieren können
  • Team wird von einem Scrum-Master geleitet, dessen Hauptaufgabe darin besteht, alle Hindernisse für die täglichen Abläufe des Teams zu beseitigen
  • Scrum-Teams halten tägliche Meetings ab, um laufende Aufgaben, Hindernisse und alle anderen Probleme zu besprechen, die sich auf den Fortschritt des Teams auswirken könnten
  • Die Sprintplanung markiert den Beginn eines Sprints und beschreibt detailliert, was erreicht werden soll und welche Methoden verwendet werden sollen
  • Die Sprint-Retrospektive ist ein regelmäßiges Treffen, bei dem der vorherige Sprint überprüft und die gewonnenen Erkenntnisse besprochen werden, um die Effizienz zukünftiger Sprints zu steigern

XP (Extreme Programming)

  • ist ein agiles Framework, das häufig in der Softwareentwicklung eingesetzt wird und Werte zur Verbesserung der Teamzusammenarbeit in den Vordergrund stellt
  • 5 Grundwerte: Kommunikation, Einfachheit, Rückmeldung, Mut, Respekt
  • erfordert häufige Veröffentlichungen und Iterationen, verfolgt jedoch einen eher technischen Ansatz
  • eignet sich besonders für Entwicklungsteams, die Produkte schnell veröffentlichen und sich an Kundenfeedback anpassen müssen, wobei der Schwerpunkt auf den Besonderheiten liegt, „wie“ Aufgaben erledigt werden

Warum agil entwickeln?


Die Einführung von Agile kann die Art und Weise, wie Sie Projekte angehen, verändern. Es ermöglicht Flexibilität bei der Planung, fördert eine frühzeitige Bereitstellung und regt zu häufigen Bewertungen an, was sowohl in Lernumgebungen als auch in realen Projekten von großem Vorteil sein kann. Durch die Konzentration auf Kommunikation und Zusammenarbeit hilft Agile Ihnen und Ihrem Team, motiviert zu bleiben, Fortschritte effektiv zu verfolgen und bessere Ergebnisse zu erzielen.

Wenn Sie also in Ihr Projekt einsteigen, sollten Sie darüber nachdenken, Agile zu nutzen. Es handelt sich nicht nur um eine Methodik, sondern um eine Denkweise, die Sie dazu ermutigt, sich anzupassen, zusammenzuarbeiten und zu wachsen. Denken Sie daran, dass jede Codezeile, jede User Story und jede Teambesprechung nicht nur ein Schritt zur Fertigstellung Ihres Projekts, sondern auch zu einem kompetenteren und anpassungsfähigeren Entwickler ist.

Es wird empfohlen, sich für ein minimales Setup wie ein Kanban-Board zu entscheiden, um den Überblick über Ihr Projekt zu behalten und gleichzeitig tägliche Stand-ups wie bei Scrum oder Paarprogrammierung wie bei XP zu übernehmen!