Agil bedeutet im allgemeinen Sprachgebrauch beweglich oder wendig. Und die agile Softwareentwicklung? Die besticht vor allem durch Flexibilität und konkrete Prinzipien.
In der heutigen Zeit der zunehmenden Digitalisierung wird es für Unternehmen zunehmend wichtiger, durch eine flexible und innovative Software schneller auf die Veränderungen des Marktes und der Branche reagieren zu können. Durch sich ständig im Wandel befindliche Prozesse und die zunehmende Geschwindigkeit, ändern sich bereits bei der Entwicklung der erforderlichen Software deren Anforderungen. Die Vorgehensweise der agilen Softwareentwicklung ist dabei ein Lösungsansatz, um dem gerecht zu werden. Der gesamte Entwicklungsprozess gestaltet sich dabei von Anfang an flexibler und schlanker.
Lange Zeit galt das Wasserfallmodell als Standard in der Softwareentwicklung. Dieser Entwicklungsprozess erfordert jedoch eine aufwändige Dokumentation. In dieser sollen unter anderem Strategien, funktionale Spezifikationen und visuelle Designs der Nutzeroberflächen enthalten sein. Einzelne Phasen wie Kodierung, Implementierung, Tests oder Wartungen müssen dabei jeweils vollständig abgeschlossen sein, bevor eine nächste Phase beginnen kann. Durch diese sequentiellen Entwicklungsschritte können an den Ergebnissen der bereits abgeschlossenen Phasen keine Änderungen mehr vorgenommen werden. Vorteil des Wasserfallmodells ist, dass es oftmals eine einfachere und klarere Meilenstein- und Ressourcenplanung erfordert.
Die Idee des Prototyping ist es, dass der Auftraggeber eine Vorabversion der Software erhält, in der nur eine vorab definierte Teilmenge der Funktionen enthalten ist. Er begutachtet diese und teilt dem Entwickler Änderungswünsche und Spezifikationen mit. Erweiterte Versionen mit den gewünschten Implementierungen der Software stehen somit immer wieder neu zur Verfügung. Dieses Mitspracherecht des Auftraggebers vermeidet zwar die Entstehung von Fehlern, ist aber auch – im Vergleich zum Wasserfallmodell – schwieriger handhabbar für die Projektleitung.
Die agile Softwareentwicklung ist ein Überbegriff für eine Reihe von innovativen Methoden, Praktiken und Konzepten, die auf den Werten und Prinzipien basieren, die im Agilen Manifest zum Ausdruck kommen.
Die theoretische Grundlage für die Prozesse der agilen Softwareentwicklung wurde 2001 von einer Forschergruppe rund um den US-amerikanischen Softwareentwickler Kent Beck formuliert. Sie legt folgende Grundsätze fest:
Manifest für Agile Softwareentwicklung
“Manifest für Agile Softwareentwicklung
Wir erschließen bessere Wege, Software zu entwickeln, indem wir es selbst tun und anderen dabei helfen.
Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt: Individuen und Interaktionen mehr als Prozesse und Werkzeuge Funktionierende Software mehr als umfassende Dokumentation Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung Reagieren auf Veränderung mehr als das Befolgen eines Plans
Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wir die Werte auf der linken Seite höher ein.”
Quelle: http://agilemanifesto.org/iso/de/manifesto.html
Die Grundsätze des Manifests zielen darauf ab, die Softwareentwicklung transparent und flexibel mit möglichst wenig administrativen Aufwand zu gestalten, sodass die Produktivität nicht beeinträchtigt ist.
Diese allgemeinen Werte des agilen Manifests werden durch zwölf Prinzipien ergänzt. Sie definieren Handlungsgrundsätze, wie beispielsweise, dass die Erfüllung der Wünsche des Auftraggebers höchste Priorität hat, oder dass die Funktionstüchtigkeit der Software das wichtigste Maß für den Fortschritt des Projektes darstellt (alle zwölf Prinzipien zum Nachlesen gibt es hier). Agile Techniken helfen im nächsten Schritt dabei, ein konkretes Projektmanagement aufzusetzen. Die Techniken dienen der Projektsteuerung und beinhalten unter anderem eine Übersicht über aktuelle Aufgaben (Task Board), Visualisierungen des Arbeitsstandes (Burn-Down-Charts) u. v. m. Die konkreten agilen Methoden dienen schließlich dazu, Projekte durch eine Grundstruktur zu managen und die Entwicklung auf konkrete Projektbedürfnisse abzustimmen. Als eines der bekanntesten Rahmenwerke für agile Prozesse gilt Scrum. Das Vorgehensmodell hilft dabei, das agile Projektmanagement zu strukturieren.
Die agile Softwareentwicklung kann – je nach Projektgröße und sich häufig ändernden Anforderungen – zu einer kürzeren Projektlaufzeit und damit auch zu geringerem Kostenaufwand führen, da die Software zeitnah angepasst und unvorhersehbare Probleme oder Änderungen rasch behoben werden können. Die Entscheidung für oder gegen eine agile Vorgehensweise hängt natürlich auch vom individuellen Projekt ab, das umgesetzt werden soll. Bei kleineren Projekten oder solchen, in denen der Projektverlauf sicher vorhersehbar ist (durch das Ausschließen von Risikofaktoren und ein eingespieltes Team), sind möglicherweise die klassische Softwareentwicklung der agilen Vorgehensmodelle vorzuziehen.
Ist Ihr Unternehmen auf die schnellen und dynamischen Veränderungen des digitalen Wandels eingestellt? Bei Meta-Level helfen wir Ihnen gerne mit einerindividuell maßgeschneiderte Software weiter. Kontaktieren Sie uns hier !