Agile Methodik: Bedeutung, Vorteile, Nachteile & mehr

Sie wollten schon immer wissen, was agile Methodik in der Softwareentwicklung ist? Schauen Sie hier genauer hin, um die Details zu erfahren.

Die agile Methodik ist eine Softwareentwicklungsphilosophie, die darauf abzielt, den Kunden durch kürzere Entwicklungszyklen bei gleichzeitiger ständiger Überarbeitung einen besseren Wert zu bieten.

Die Softwareentwicklung entstand aus den Bereichen Mathematik und Naturwissenschaften. Es hat also ursprünglich die wissenschaftlichen Methoden aus diesen Bereichen übernommen.

Diese Methoden entwickelten sich in den 1970er Jahren zum Wasserfall-Ansatz, um den Anforderungen der Zeit gerecht zu werden. Computer und ihre Software waren damals groß, komplex und auf eine jahrzehntelange Lebensdauer ausgelegt. Die Wasserfallmethode passte also gut.

Aber Ende der 1990er Jahre veränderte das Internet die Welt dramatisch und ein neuer Ansatz wurde notwendig. So entstand die agile Methodik.

Im Folgenden erhalten Sie einen genaueren Blick auf diese Softwareentwicklungsbewegung und wie sie Ihnen und Ihrem Team helfen kann.

Geschichte der agilen Entwicklungsmethode

Agile Softwareentwicklung entstand aus dem Internet und seinem unersättlichen Bedarf an Anwendungen in den Boomjahren der 1990er und frühen 2000er Jahre.

Dies war auch eine Zeit, in der viele Entwickler ohne Informatikhintergrund zur Webentwicklung wechselten, da der Bedarf an Websites für verschiedene Gruppen und Branchen massiv war.

Natürlich waren die meisten Startups klein. Die meisten Entwicklungen fanden also in kleinen Teams statt, wobei das ultimative Ziel oft eine schnelle Markteinführung war. Denn Verspätung bedeutete den Verlust von Marktanteilen.

Um den Beschränkungen des Wasserfallmodells zu begegnen, Produkte schnellstmöglich auf den Markt zu bringen, entwickelten verschiedene Entwickler in den 1990er Jahren unterschiedliche Methoden. Dazu gehören Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban und andere.

Dann, irgendwann im Jahr 2001, kamen in Utah, USA, 17 Entwickler zusammen, die die eine oder andere Form der frühen agilen Entwicklung praktizierten. Dann beendeten sie ihr Treffen mit der Veröffentlichung des „Manifests für agile Softwareentwicklung“.

Dieses Manifest basiert auf 4 Werten und 12 Prinzipien.

Die 4 Werte und 12 Prinzipien der agilen Entwicklung

Aus den Erfahrungen, die sie während ihres Treffens zusammengetragen haben, einigten sich die 17 Entwickler auf eine Reihe von Werten, um Software effizienter zu erstellen.

Diese vier Werte lauten wie folgt:

  1. Individuen und Interaktionen über Prozesse und Werkzeuge. Das bedeutet, dass es wichtig ist, Software mit Tools zu entwickeln und dabei einem bestimmten Prozess zu folgen. Aber wichtiger ist es, dass kompetente Leute effektiver zusammenarbeiten.

  2. Arbeitssoftware über eine umfassende Dokumentation. Dieser greift die Wasserfallmethode an, bei der zuerst Software entworfen und Dokumentation dafür geschrieben wird, bevor der eigentliche Softwareentwicklungsprozess beginnt.

  3. Kundenzusammenarbeit über Vertragsverhandlungen. Nur durch die enge Zusammenarbeit mit dem Kunden oder Benutzer können Sie genau das lernen und entwickeln, was der Kunde braucht. Dadurch entsteht mehr Wert.

  4. Auf Veränderungen reagieren über nach einem Plan. Es ist wichtig, einem Projektplan zu folgen. Aber der Plan darf nicht zu starr sein. Es muss Änderungen berücksichtigen, um die Erwartungen der Interessengruppen zu erfüllen.

Die oben genannten Werte des Agile Manifest basieren auf 12 Prinzipien und lauten wie folgt:

  1. Kundenzufriedenheit durch frühzeitige und kontinuierliche Lieferung wertvoller Software.
  2. Begrüßen Sie sich ändernde Anforderungen, auch in der späten Entwicklung.
  3. Liefern Sie häufig funktionierende Software (Wochen statt Monate)
  4. Enge, tägliche Zusammenarbeit zwischen Geschäftsleuten und Entwicklern
  5. Projekte basieren auf motivierten Personen, denen man vertrauen sollte
  6. Face-to-Face-Gespräch ist die beste Form der Kommunikation (Co-Location)
  7. Funktionierende Software ist das wichtigste Maß für den Fortschritt
  8. Nachhaltige Entwicklung, in der Lage, ein konstantes Tempo beizubehalten
  9. Kontinuierliche Aufmerksamkeit für technische Exzellenz und gutes Design
  10. Einfachheit – die Kunst, die Menge an nicht erledigter Arbeit zu maximieren – ist unerlässlich
  11. Beste Architekturen, Anforderungen und Designs entstehen aus sich selbst organisierenden Teams
  12. Das Team denkt regelmäßig darüber nach, wie es effektiver werden kann und passt sich entsprechend an

Iterationen oder Sprints

Iterationen oder Sprints in der agilen Softwareentwicklung sind kurze Zeiträume von in der Regel 1 bis 4 Wochen, in die Entwicklungsarbeit eingebrochen wird. Dies erleichtert die Verwaltung, da weniger Planung erforderlich ist.

Jedes Team besteht in der Regel auch aus Mitgliedern mit unterschiedlichen Funktionen, die Planung, Analyse, Design, Codierung und Tests umfassen können.

Das Team arbeitet bei jeder Iteration oder jedem Sprint gemeinsam an der Software. Und sie produzieren am Ende ein funktionierendes Produkt. Diese funktionierende Software ist laut dem Agile Manifest ein Maß für echten Fortschritt.

Je nach Produkt und Kundenbedürfnissen kann das Produkt einer Iteration auf den Markt kommen oder nicht. Daher sind oft viele Iterationen für eine einzelne Version erforderlich.

Die Vorteile der agilen Entwicklung

Wie Sie sich vorstellen können, bringt die agile Methodik viele Vorteile. Sie sind wie folgt:

  1. Schnellere Umsetzung von Ideen
  2. Mehr Flexibilität als der Wasserfallansatz
  3. Verbesserte Produktivität mit verwalteten Iterationen
  4. Bessere Produkte durch Benutzerinteraktionen
  5. Fehler werden schnell erkannt und beseitigt

Nachteile der agilen Methodik

Es gibt auch einige Nachteile, mit einer agilen Entwicklungsmethode zu arbeiten. Und sie können beinhalten:

  1. Es kann zu Beginn schwierig sein, die Gesamtkosten abzuschätzen
  2. Es braucht viel Kundeninput
  3. Beinhaltet viel ungeplante Arbeit
  4. Kein klar definiertes Projektende

Wann Sie agile Methoden einsetzen sollten

  1. Wenn Sie nicht abschätzen können, was die Software benötigt
  2. Sie haben genügend Zugang zu Kunden
  3. Sie entwickeln eine Web-App oder ein einfach zu aktualisierendes System
  4. Sie müssen mit einer frühen Veröffentlichung schnell Marktanteile gewinnen

Es gibt viele beliebte Frameworks für agile Entwicklung. Einige begannen lange vor dem agilen Manifest von 2001, andere kamen später.

Das Ziel eines Frameworks besteht einfach darin, die Regeln einer Methode zu definieren. Während die beliebtesten Frameworks unten als Referenz aufgeführt sind, gibt es jedoch noch viele weitere. Und es steht Ihnen auch frei, Ihr eigenes zu erstellen oder ein vorhandenes Framework an Ihr Team anzupassen.

  1. Scrum: Dieses Framework ist für Teams mit 10 oder weniger Mitgliedern konzipiert. Die Arbeit wird in Sprints von 2-4 Wochen mit täglichen 15-minütigen Meetings unterteilt.

  2. Kanban: Kanban stammt von Toyota und ist ein japanisches Wort, das Billboard bedeutet und sehr hilfreich für Teams ist, die visuelle Hilfsmittel schätzen. Aufgaben werden mit visuellen Darstellungen wie Haftnotizen oder Apps von einer Stufe zur anderen verschoben.

  3. Schnelle Anwendungsentwicklung RAD: Dieser Ausdruck kann sich sowohl auf die agile Softwareentwicklung im Allgemeinen als auch auf die James-Martin-Methode beziehen. RAD konzentriert sich auf die Anforderungen an die Benutzeroberfläche und stützt sich stark auf das Prototyping.

  4. Lean Startup: Dieser Rahmen ist für diejenigen gedacht, die ein Produkt oder eine Dienstleistung entwickeln müssen, aber zuerst seine Marktfähigkeit bestimmen müssen. Es beinhaltet den Einsatz von Experimenten, um zu sehen, was funktioniert und was nicht.

Andere bemerkenswerte Frameworks sind Extreme Programming (XP), Adaptive Software Development, Agile Modeling, Dynamic Systems Development Method und das Scaled Agile Framework.

Die agilen vs. Wasserfall-Methoden

Hier sehen Sie die agilen und Wasserfall-Methoden für die Entwicklung von Software nebeneinander. Es kann hilfreich sein zu wissen, wie jede Methode im Vergleich zur anderen abschneidet. So können Sie ganz einfach die besten Werkzeuge für Ihre Arbeit auswählen.

AgilWasserfall
Inkrementeller & iterativer AnsatzLineares und sequentielles Lebenszyklusmodell
Flexibel zu ändernStarre Implementierungen
Tests und Bewertungen laufen nochNach Abschluss gibt es nur noch eine Testphase
Anforderungen können sich ändernAnforderungen werden nach der Planung festgelegt
Eine Sammlung vieler kleinerer ProjekteEin einziges Projekt
Mehr KundenbeteiligungWeniger Kundenbeteiligung

Adaptive vs. prädiktive Entwicklung

Ziel der agilen Softwareentwicklung ist es, sich an Veränderungen in der realen Welt anzupassen. Und diese resultieren oft aus den Bedürfnissen eines Kunden oder Benutzers. Die Anpassung steht in krassem Gegensatz zum prädiktiven Charakter des Wasserfallmodells.

Es ist dann sinnvoll, bei der Entwicklung von Systemen agile Methoden einzusetzen, bei denen man sich nicht so sicher ist, wie es ausgehen wird. Oder wenn es in einer Branche ständige Veränderungen und Entwicklungen gibt. Das Internet ist ein großes Beispiel.

Ansonsten, wenn Sie für ein System oder einen Markt entwickeln, über den Sie alles wissen und der sich kaum verändert oder gegen Veränderungen immun ist. Dann könnte der prädiktive Charakter der Wasserfallphilosophie hilfreich sein.

Software-Handwerk

Software Craftsmanship ist eine weitere Philosophie, die auf agilen Entwicklungsprinzipien aufbaut und sich darauf konzentriert, die Fähigkeiten der an einem Projekt beteiligten Softwareentwickler zu betonen.

Die Software Craftsmanship-Bewegung hat auch ein Manifest und es heißt:

Als angehende Software Craftsmen setzen wir die Messlatte der professionellen Softwareentwicklung höher, indem wir sie üben und anderen helfen, das Handwerk zu erlernen. Durch diese Arbeit haben wir zu schätzen gelernt: · Nicht nur funktionierende Software, sondern auch gut gemachte Software · Nicht nur auf Veränderungen reagieren, sondern auch stetig Mehrwert schaffen · Nicht nur Einzelpersonen und Interaktionen, sondern auch eine Gemeinschaft von Fachleuten · Nicht nur Kunden Zusammenarbeit, aber auch produktive Partnerschaften Das heißt, bei der Verfolgung der Elemente auf der linken Seite haben wir die Elemente auf der rechten Seite als unverzichtbar empfunden. © 2009, der Unterzeichnete. Diese Erklärung darf in beliebiger Form frei kopiert werden, jedoch nur in ihrer Gesamtheit durch diesen Hinweis

Zusammenfassung

Am Ende unseres Blicks auf die agile Methodik und Softwareentwicklung sehen Sie, dass es so viele Möglichkeiten gibt.

Jedes Team ist anders. Und so wie verschiedene Teams ihre unterschiedlichen Methoden entwickelt haben, um sich an sich ändernde Zeiten anzupassen. Auch Sie müssen sich anpassen, indem Sie entweder mit einem bereits etablierten Framework arbeiten oder es an Ihr Team anpassen.

Nnamdi Okeke

Nnamdi Okeke

Nnamdi Okeke ist ein Computer-Enthusiast, der es liebt, eine große Auswahl an Büchern zu lesen. Er hat eine Vorliebe für Linux gegenüber Windows/Mac und verwendet
Ubuntu seit seinen Anfängen. Sie können ihn auf Twitter über sehen Bongotrax

Artikel: 278

Erhalten Sie Technikfreaks

Tech-Trends, Startup-Trends, Rezensionen, Online-Einkommen, Web-Tools und Marketing ein- oder zweimal monatlich

Ein Kommentar

  1. Dies ist eine der schönsten Zusammenfassungen und Vergleiche, die ich je gesehen habe.
    Hilfreich, dass darauf hingewiesen wird, dass Agilität NICHT die notwendige Antwort auf alle Probleme in der Entwicklung von Unternehmenssoftware ist.

Hinterlassen Sie uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *