Agile Entwicklung ist eine iterative Softwareentwicklungsmethodik, die von Entwicklungs- und Projektteams eingesetzt wird.
Das ist eine prägnante und relativ anschauliche Art und Weise zu definieren, was Agile ist. Agile kann auch anders definiert werden.
Ein Agile-Ansatz ist eine inkrementelle Methodik für die Verwaltung von Projekten und die Erstellung von Software, die es den Teams ermöglicht, ihren Kunden schneller und mit weniger Aufwand einen Mehrwert zu liefern.
Es muss gesagt werden, dass diese Definition vielleicht eine der liebenswertesten und unterhaltsamsten ist, die man in der Literatur zu dieser Methodik lesen kann.
Die humorvolle Note in der obigen Definition mag überraschen, aber sie ist auch sehr zutreffend, denn eines der Merkmale der agilen Methodik ist die Stressreduzierung, eine ausgewogenere Herangehensweise an die Programmier- und Designarbeit.
Die Anti-Stress-Wirkung von Agile wird auch durch die spezifische Herangehensweise dieser Methodik an Ziele, Ergebnisse, Aktivitäten, Effizienz und Bewertung erreicht.
Bei Agile geht es nicht um den "Wow-Effekt" oder den "Big-Bang-Start", sondern um kleine, schrittweise Erfolge.
Der Agile-Ansatz konzentriert sich mehr auf den Prozess, die evolutionäre Entwicklung und Inkremente. Es geht nicht darum, zu beeindrucken, sondern um Effizienz.
Bei Agile werden Anforderungen, Pläne und Ergebnisse ständig evaluiert, sodass Entwicklungs-, Projekt- und Forschungsteams natürlicher, schneller und flexibler auf Veränderungen reagieren können.
Wie sich der 11. September auf die Verbreitung und Anwendung von Agile auswirkte
Die Geschichte von Agile sollte mit einem Ereignis beginnen, das dazu beigetragen hat, den agilen Ansatz als Projektmanagementmethode bekannt zu machen.
Diese Geschichte wurde mir von meinem Agile-Professor an der Universität Oxford erzählt, der als SCRUM-Master beim Rüstungskonzern Lockheed Martin arbeitete.
Es stellte sich heraus, dass die Ereignisse des 11. September 2001 hätten verhindert werden können. Zu diesem Schluss kam das FBI, das seine eigene Nachlässigkeit untersuchte.
Es stellte sich heraus, dass die Daten über die Terroristen und ihr Verhalten in den IT-Systemen der amerikanischen Spezialeinheiten gespeichert waren, die leider verstreut waren und über keinen eigenen Data Hub verfügten.
Aufgrund der Unfähigkeit, Daten zu kombinieren und daraus Schlüsse zu ziehen, war der Anschlag auf das WTC erfolgreich.
Um ähnlichen Situationen vorzubeugen, beschloss die amerikanische Regierung, eine Supersoftware zu entwickeln, die Daten aus verschiedenen Systemen und verschiedenen Regierungsdiensten kombiniert.
Wie gesagt, sie haben es getan. Sie haben die IT-Projektspezifikation verfasst. Sie schätzten das Projekt und erhielten vom US-Kongress eine Finanzierung in Höhe von 400 Millionen Dollar.
Ein wichtiges Detail dieses Prozesses ist die Tatsache, dass diese Supersoftware nach dem Wasserfallmodell (Kaskade) entwickelt wurde.
Die Software wurde entwickelt, und 400 Millionen wurden ausgegeben; bei den Tests stellte sich jedoch heraus, dass sie nicht funktionierte.
Es wurde gemäß der Spezifikation programmiert, erfüllte aber nicht die grundlegenden Anwendungsfälle.
Die Entscheidungsträger, die diesen Misserfolg analysierten und die Software in Auftrag gaben, kamen zu dem Schluss, dass das Problem in der Art und Weise der Durchführung des Projekts lag.
Die Wasserfallmethode, das Fehlen von Iterationen, die Unmöglichkeit, Änderungen am Projekt vorzunehmen, und das starre Festhalten an einer nicht perfekten Spezifikation führten zu einer völligen Entfremdung zwischen den Teammitgliedern in diesem großen IT-Projekt. So haben Sie Software entwickelt, die nicht funktionierte.
Als Lösung für dieses Problem wurde die agile Methode vorgeschlagen, deren Manifest Mitte Februar 2001 erstellt wurde.
Die beiden Ereignisse sind durch das Jahr 2001 verbunden, das die Welt nicht nur politisch und gesellschaftlich, sondern auch in Bezug auf das Design verändert hat.
Agiles Manifest — was ist Agile?
Datum: Das Jahr 2001, Februar. Bis zum 11. September blieben mehrere Monate.
Ort: Ein Skigebiet in Utah, USA, in dem sich mehrere Programmierer ungehindert von Terminen trafen.
Ziel: Alles, was bei IT-Projekten nicht funktioniert, soll geändert werden.
Siebzehn Programmierer trafen sich, um ihre Erfahrungen auszutauschen. Und diese waren nicht nur positiv. Es herrschte das Gefühl der Unwirksamkeit, der Verschwendung, der Unzulänglichkeit, des Unverständnisses und der großen Unflexibilität.
Die Softwareentwicklung erforderte die Schaffung einer Methodik, die den Bedürfnissen der heutigen Zeit besser gerecht wird.
Die Antwort darauf war und ist der Agile-Ansatz. Auch wenn die Zeit vergeht, ist die agile Methodik immer noch sehr relevant und hilfreich. Seine Zeitlosigkeit ist seine große Stärke.
Das Ziel der Unterzeichner, Urheber und Schöpfer des Agilen Manifests war in erster Linie, den Softwareentwicklungsprozess zu verbessern:
- Wirksam
- Flexibel
- Effiziente
- Harmonisch
- Tiefgründig — basierend auf Werten, die eine gewisse Tiefe in den Softwareentwicklungsprozess bringen würden
Gleichzeitig wollten sie Probleme beseitigen, die die Qualität, die Effektivität und die Arbeitsatmosphäre beeinträchtigten.
Die Schöpfer des Agilen Manifests wollten ineffektive Praktiken aus diesem Prozess ausschließen, um ihn von Aktivitäten zu befreien, die zwar wenig beitragen, aber einen Verlust an Effizienz, Begeisterung und Engagement verursachen.
Schuld daran waren zum Beispiel starre Vorschriften und die Notwendigkeit, unnötige Unterlagen zu erstellen.
An ihrer Stelle führte das Agile Manifest vier Grundwerte ein, die die Haltung gegenüber Schlüsselbereichen und -problemen prägnant zusammenfassen.
Dem Agilen Manifest zufolge sollten Menschen und ihre Interaktionen immer wichtiger sein als Prozesse und Werkzeuge.
Die agile Methodik stellt funktionierende Software selbst über die sorgfältigste Dokumentation.
Zusammenarbeit mit dem Kunden bei strikter Einhaltung der Vertragsbedingungen.
Flexibles und schnelles Reagieren auf Veränderungen gegenüber der Erfüllung der vorgegebenen und starren Pläne.
Die agile Methodik sollte es Entwicklungsteams ermöglichen, Agilität zu erreichen, um ihre Fähigkeit zu verbessern, effektiv auf Veränderungen zu reagieren.
Die Erkenntnis, wie viel Zeit, Energie und Arbeit für die Bewältigung von Veränderungen (Erwartungen, Bedürfnisse, Ziele, Anforderungen, Bedingungen) vergeudet wird, bildete die Grundlage für die Notwendigkeit, bessere Grundsätze zu entwickeln.
Aus diesem Grund, so Page Laubheimer, konzentriert sich die agile Methodik auf radikale Transparenz und die ehrliche Erkenntnis, dass kein Entwicklungsteam zu Beginn eines Projekts alle Probleme, Lösungen und Antworten kennt.
Worum geht es bei der Agilen Methodik? Agiles Projektmanagement
Die Popularität von Agile in der Softwareentwicklung ist das Ergebnis seiner Effektivität und anderer Vorteile, zu denen die folgenden gehören:
- Flexibilität, die sich in einer viel leichteren Neuausrichtung der Ziele niederschlägt
- Kürzere Zeithorizonte
- Konzentration auf die schnelle Entwicklung von Arbeitssoftware
- Vermeidung von Fehlern und/oder schnellere Erkennung und Behebung
- Über die Grenzen des "Iron Triangle of Project Management" — Umfang, Zeitplan und Qualität — hinausgehen
Agile ist eine iterative Methodik, bei der Inkremente kontinuierliche Entwicklungen auf der Grundlage von Kunden-, Benutzer- und Stakeholder-Feedback bedeuten (auch unter Berücksichtigung der allgemeinen Markt-, Branchen-, Wirtschafts- und Gesetzesbedingungen).
Der agile Ansatz verbessert die Fähigkeit zur Anpassung und Organisation. Es geht darum, Software auf der Grundlage von Methoden zu entwickeln, die den aktuellen Kontexten und Bedingungen viel besser gerecht werden.
Der Wasserfall-Ansatz, der oft mit Agile verglichen wird, basiert auf einer linearen, starren Entwicklung und beinhaltet viele Einschränkungen. Zum Beispiel in Bezug auf die Geschwindigkeit und das Timing von Reaktionen.
Während der Wasserfall-Ansatz auf der Grundlage strenger Kriterien für Fortschritt, Entwicklung und Veränderung arbeitet, führt Agile eine Philosophie der kleinen Schritte, kleinen Erfolge und geringen Kosten für die Änderung von Regeln, Zielen, Mitteln und Werkzeugen ein. Agiles Arbeiten basiert auf einer Feedbackschleife.
Der Wasserfall-Ansatz eignet sich am besten für Projekte, bei denen die Abläufe vorhersehbar sind und sich wiederholen.
In Branchen, in denen Veränderungen die Regel sind, wird dieser Ansatz ziemlich problematisch.
Methodologien zur Umsetzung von Agile
So schnell wie möglich — das ist der Leitsatz, der sich in Agile wiederfindet.
So erfüllen Entwicklungsteams, die nach der agilen Methodik arbeiten, die neuen Anforderungen der Kunden.
Und diese können dank der persönlichen Treffen kommuniziert und priorisiert werden.
Agile hat viele Ansätze, Lösungen und Werkzeuge entwickelt, von denen die bekanntesten sind:
- Die Dynamic Systems Development Method (DSDM) soll die Softwareentwicklung unterstützen. DSDM konzentriert sich auf die geschäftlichen Anforderungen, Pünktlichkeit, Zusammenarbeit, Qualität und Inkremente auf der Grundlage solider Grundlagen, iterativer Entwicklung, kontinuierlicher und transparenter Kommunikation und demonstrativer Kontrolle.
- Das Ziel von Scrum ist es, dem Projekt durch feste Rollen, Verantwortlichkeiten und Besprechungen eine Struktur zu geben. Es priorisiert die Erstellung von Software in Form von Sprints, die es dem Team ermöglichen, regelmäßig Software zu liefern.
- Feature-Driven Development (FDD) zielt darauf ab, ein allgemeines Modell zu entwickeln, eine Liste von Merkmalen zu erstellen, nach Merkmalen zu planen, nach Merkmalen zu entwerfen und nach Merkmalen zu erstellen.
- Kanban zielt darauf ab, kleine und kontinuierliche Veränderungen im bestehenden System zu fördern. Kanban basiert auf der Visualisierung des Flusses und der Arbeitsweise, der Reduzierung der unfertigen Arbeit, der Steuerung des Flusses, der Konkretisierung der Regeln und der Konzentration auf kontinuierliche Verbesserung.
- Die Adaptive Software Development (ASD) soll Arbeitsteams dazu ermutigen, in einem dreistufigen Prozess zu wachsen: Spekulieren, Zusammenarbeiten und Lernen.
- Extreme Programming (XP) konzentriert sich auf die Verbesserung der Qualität und der Geschwindigkeit, mit der auf veränderte Kundenanforderungen reagiert wird.
- Lean Software Development (LSD) zielt darauf ab, die Softwareentwicklung zu unterstützen, indem das Prinzip der Eliminierung von Verschwendung, der Verstärkung des kontinuierlichen Lernens, der Verzögerung von Entscheidungen und der Beschleunigung der Lieferung, der Stärkung des Teams und des Aufbaus von Integrität angewendet wird.
Scrum vs. Agile — Unterschiede
Einer der populärsten Ansätze im Bereich Agile — Scrum — wird oft als Synonym für diese Methodik angesehen, was natürlich nicht stimmt.
Scrum ist ein Ansatz, ein engeres Konzept als Agile. Obwohl Agile- und Scrum-Methoden Gemeinsamkeiten aufweisen, sind ihre Unterschiede erheblich.
Scrum und Agile haben gemeinsam, dass der Zyklus des digitalen Produktentwicklungsprozesses kurz ist (ein einzelner Sprint dauert normalerweise nicht länger als einen Monat).
Agile und Scrum konzentrieren sich auf Menschen, Spezialisten, Teams, Zusammenarbeit und Kommunikation.
Sowohl bei Agile als auch bei Scrum kommt es vor allem auf die Flexibilität und die Fähigkeit an, schnell auf das Feedback aus den persönlichen Treffen zu reagieren.
Agile ist eine Methodik, die die Entwicklung des Produkts durch Iterationen gewährleistet. Sie eignet sich am besten für kleine Teams, in denen die Führung eine wichtige Rolle spielt.
Das Wichtigste bei Scrum ist die Fähigkeit des Teams, sich selbst zu organisieren.
Was ist Agile? Agile ist im Vergleich zu Scrum eine viel starrere Methode. Die Kommunikation bei Agile findet in der Regel zwischen Teams statt.
Scrum beinhaltet tägliche Besprechungen (tägliche Stand-ups), bei denen jedes Teammitglied eine bestimmte Rolle übernimmt.
Anforderungen, Analysen und agile Projekte werden ständig überwacht. In Scrum werden die Funktionalitäten am Ende eines jeden Sprints vorgestellt und bewertet.
Agile eignet sich am besten für einfache Projekte, und Scrum wird für die Leitung innovativer und ungewöhnlicher Projekte empfohlen.
Agiles Projektmanagement und Benutzererfahrung
Eine umfassendere Diskussion der Beziehungen zwischen Agile und Benutzererfahrung finden Sie in dem Artikel "What is Agile Development?", der im Blog der Interaction Design Foundation veröffentlicht wurde.
Der größte Wert dieses Artikels liegt in der Gegenüberstellung von Agile und UX aus der Perspektive von Entwicklungs- und Projektteams — ihren Ansätzen, Erwartungen, Wahrnehmungen, Arbeitsmethoden und Einstellungen gegenüber Benutzern und Stakeholdern.
Um diese Unterschiede auszugleichen, muss ein geeignetes Umfeld geschaffen werden, in dem die Zusammenarbeit auf guter Kommunikation, Offenheit, Verständnis, Austausch und Dialog beruht.
Wenn man die Bedürfnisse und Ziele von Agile und Benutzererfahrung in Einklang bringt, muss man auch die Definition der Rollen, die die jeweiligen Spezialisten spielen, und die Teams, die sie bilden, im Auge behalten.
Hier lohnt es sich, an die Grundsätze zu erinnern, die Organisationen anwenden sollten, wenn sie das Potenzial von Agile und UX voll ausschöpfen wollen.
Hoa Loranger — eine mit der Nielsen Norman Group verbundene Forscherin — schreibt in dem Artikel "Doing UX in an Agile World: Case Study Findings", schreibt, dass die Verwendung von Agile nicht bedeuten kann, dass die Rolle der Benutzererfahrung reduziert wird.
Außerdem plädiert sie dafür, dass sich UX-Spezialisten aktiv in den agilen Prozess einbringen. Vor einem Sprint sollten sie Aktivitäten planen (z. B. agile Tests und die Festlegung von Annahmen).
Außerdem sollten UX-Spezialisten Führungsqualitäten zeigen und sich die Zeit nehmen, ihre Mitarbeiter zu erreichen.
Agile Arbeitsabläufe sollten flexibel genug sein, um den Bedürfnissen des UX-Teams gerecht zu werden. Und letztere sollten als integraler Bestandteil von Produktteams betrachtet werden.
Gleichzeitig ist es für die Qualität dieser Zusammenarbeit und der Arbeitsergebnisse unerlässlich, dass der agile Prozess nicht völlig kontrolliert und streng ist.
Page Laubheimer merkt sehr scharfsinnig an, dass die typischen agilen Prozesse leider Variablen wie Zeit, Ressourcen und Umfang, die für UX-Designer und UX-Forscher von Bedeutung sind, nicht berücksichtigen.
Daher ist eine für beide Seiten vorteilhafte Kombination von Benutzererfahrung und Agile möglich, solange:
- Das Management der Organisation versteht und unterstützt die UX-Arbeit
- Der agile Arbeitsablauf ist flexibel genug, um sich an die UX-Anforderungen anzupassen
- UX-Spezialisten sind ein unverzichtbarer Teil von Produktteams, in denen sie als ebenso wichtig, unverzichtbar und wünschenswert angesehen werden
Agile Methodik. Agile-Ansätze. Zusammenfassung
- Die korrekte agile Entwicklung ist eine iterative Softwareentwicklungsmethodik, die Entwicklungs- und Projektteams bei der Erstellung digitaler Produkte anwenden.
- Ein agiles System ist ein inkrementeller Ansatz für die Verwaltung von Projekten (AGILE-Fahrplan).
- Die agilen Prinzipien sind ziemlich einfach. Das Team konzentriert sich auf die Umsetzung des festgelegten Plans und auf die kontinuierliche Verbesserung. Fortschritt und Erfolg lassen sich in erster Linie an der Bereitstellung funktionierender Software messen. Dies ist der Kern der agilen Methoden.
- Agile wird zur Erstellung von Software (z. B. Webanwendungen, mobile Anwendungen) eingesetzt. Diese Methodik hilft Teams, ihren Kunden schneller und mit weniger Aufwand einen Mehrwert zu liefern.
- Der agile Ansatz bietet Stressreduzierung und eine ausgewogenere Herangehensweise an die Entwicklungs- und Designarbeit.
- Agiles Projektmanagement, agile Methoden und das Thema Agile beruhen auf Werten und spezifischen Philosophien.
- Die agile Methodik ist nicht auf den "Wow-Effekt" ausgerichtet. Es geht nicht um einen "Big-Bang-Start". Es geht um die kleinen, aufeinanderfolgenden Erfolge, die die Kundenzufriedenheit sicherstellen, und um die Fähigkeit, die Schlussfolgerungen aus dem vorangegangenen Sprint zu nutzen, was viel effektiver ist als der traditionelle Ansatz.
- Bei der agilen Vorgehensweise geht es nicht um Effekthascherei, sondern um Effizienz.
- Das Ziel der Unterzeichner, Urheber und Schöpfer des Agilen Manifests war in erster Linie, den Softwareentwicklungsprozess effektiver und flexibler zu gestalten.
- Das Ziel der Programmierer, die das Agile Manifest unterzeichnet haben, war es, ineffektive Praktiken aus diesem Prozess auszuschließen, um ihn von Aktivitäten zu befreien, die zwar wenig beitragen, aber einen Verlust an Effizienz, Begeisterung und Engagement verursachen.
- Dem Agilen Manifest zufolge sollten Menschen und ihre Interaktionen immer wichtiger sein als Prozesse und Werkzeuge.
- Agile stellt funktionierende Software über jede noch so gründliche Dokumentation.
- Sie stellt die Zusammenarbeit mit dem Kunden über die starre Einhaltung der Vertragsbedingungen.
- Sie räumt flexiblen und schnellen Reaktionen auf Veränderungen Vorrang vor der Erfüllung vorgegebener und starrer Pläne ein.
- Die agile Methodik sollte es den Entwicklungsteams ermöglichen, die Agilität zu erreichen, um ihre Fähigkeit zu verbessern, wirksam auf Veränderungen zu reagieren.
- Agile ist eine iterative Methodik, bei der Inkrement eine kontinuierliche Bereitstellung auf der Grundlage des Feedbacks von Kunden, Benutzern und Stakeholdern bedeutet.
- Der Kaskadenansatz basiert auf einer linearen, starren Entwicklung und ist mit vielen Einschränkungen verbunden.
- Während der Kaskadenansatz auf der Grundlage starrer Kriterien für Fortschritt, Entwicklung und Veränderung arbeitet, führt Agile eine Philosophie der kleinen Schritte, kleinen Erfolge und geringen Kosten für die Änderung von Regeln, Zielen, Mitteln und Werkzeugen ein.
- Agile hat viele Ansätze, Lösungen und Werkzeuge entwickelt.
- Scrum wird fälschlicherweise als Synonym für die agile Methodik verwendet.
- Agile und Scrum konzentrieren sich auf Menschen, Spezialisten, Teams, Zusammenarbeit und Kommunikation.
- Sowohl bei Agile als auch bei Scrum kommt es vor allem auf die Flexibilität und die Fähigkeit an, schnell auf das Feedback aus den persönlichen Treffen zu reagieren.
- Das Wichtigste bei Scrum ist die Fähigkeit des Teams, sich selbst zu organisieren.
- Agile ist im Vergleich zu Scrum eine viel starrere Methode.
- Agile Methodik, Agile Strategie, Agiles Projektmanagement, Agile Methode geht davon aus, dass Kommunikation oft zwischen Teams stattfindet.
- Scrum beinhaltet tägliche Besprechungen (tägliche Stand-ups), bei denen jedes Teammitglied eine bestimmte Rolle übernimmt.
- Die Anwendung des agilen Ansatzes darf nicht bedeuten, dass die Rolle der Benutzererfahrung reduziert wird.
- Agiles Projektmanagement setzt voraus, dass die agilen Arbeitsabläufe flexibel genug sind, um den Bedürfnissen des UX-Teams gerecht zu werden.
- Das UX-Team sollte als integraler Bestandteil des Produktteams betrachtet werden.
- Der Prozess muss im agilen Projektmanagement nicht vollständig kontrolliert und streng sein.
- Typische agile Prozesse berücksichtigen keine Variablen wie Zeit, Ressourcen und Umfang, die für UX-Designer und -Forscher von Bedeutung sind.
- Eine für beide Seiten vorteilhafte Kombination von Benutzererfahrung und Agilität ist möglich, wenn das Management der Organisation die UX-Arbeit versteht und unterstützt.
- Agile Arbeitsabläufe sollten so flexibel sein, dass sie den Bedürfnissen von Spezialisten und UX-Designern gerecht werden.