INSIGHTS

Agile Softwareentwicklung

April 30, 2021 | Insights | Autorin:  Julia Rieger

IT-Projekte werden mit der Dynamik der heutigen Technologie immer komplexer. Um den Anforderungen gerecht zu werden, kommen agile Methoden für schlanke Prozesse und eine kurze Reaktionszeit zum Einsatz. Dieser Artikel befasst sich mit der Einführung in die agile Softwareentwicklung.

Die agile Softwareentwicklung ermöglicht es dem Kunden steuernd auf das Projekt einzuwirken. Durch deutlich kürzere Entwicklungszyklen und eine gute sowie regelmäßige Kommunikation wird ein Produkt den aktuellsten Anforderungen angepasst. Dadurch kann man vermeiden, dass ein Produkt beim Release nicht schon veraltet ist. Dies hat automatisch einen flexibleren Umgang mit Aufgaben zur Folge, welche das jeweilige Projektteam selbstständig und ohne unnötigen bürokratischen Aufwand umsetzen kann. Gut umgesetzte agile Entwicklung sorgt für mehr Individualität und auch Aktualität der Features und Produkte.

INHALTSVERZEICHNIS

Sie sind von der agilen Methode bereits überzeugt und suchen nach einem eingespielten Team,
welches ihr IT-Projekt erfolgreich umsetzt?

Nehmen Sie gerne Kontakt mit uns auf.

1. ENTSTEHUNG DER AGILEN SOFTWAREENTWICKLUNG: WASSERFALLMODELL VS. AGIL

Vor dem Start der agilen Softwareentwicklung war das Wasserfallmodell die klassische Herangehensweise im IT-Projektmanagement. In diesem Fall wurden Produkte bzw. große klassische Anwendungen mit Front-End, Back-End, DNS-Routen und weiteren notwendigen Diensten als eine riesige Anwendung nach dem Projekt ausgeliefert. Diese riesigen, nicht modularen Anwendungen nennt man monolithische Anwendungen.

Die Besonderheit war, dass man mit dem Problem konfrontiert wurde, einen Single Point of Failure zu haben. Wenn in diesem Zusammenhang Änderungen an dieser Anwendung vorgenommen werden mussten, wurden Dienste bzw. Anwendungen für die Wartungszeit ausgeschaltet (somit waren jene Dienste auch nicht für die Außenwelt erreichbar), damit diese neuen Features oder Änderungen in das Produktivsystem eingebaut werden konnten.

Ein weiteres Problem waren die sich ständig ändernden Anforderungen von Seiten der Kunden, welche auch in deutlich kürzeren Abständen erfolgten. Also mussten neue Herangehensweisen her!

Die agile Softwareentwicklung sorgte dafür, dass der Kunde in den Entwicklungsprozess integriert und maßgeblich beteiligt ist. Durch die modulare Entwicklung war es nun möglich, Teilerfolge zu zeigen und flexibel auf sich ändernde Anforderungen zu reagieren.

Hinweis: Agile Prozesse bedeuten natürlich nicht zwangsläufig, dass keine monolithische Anwendung gebaut wird. Das Beispiel sollte lediglich die Anforderungen der Kunden verdeutlichen und aufzeigen, weshalb agile Prozesse von Nöten wurden.

2. WAS SIND DIE BESTANDTEILE DER AGILEN SOFTWAREENTWICKLUNG?

Im Jahr 2001 wurde das Manifest der agilen Softwareentwicklung [1] formuliert und dieses wurde unter anderem von den Gründern der bekannten Frameworks: Scrum und Extreme Programming unterzeichnet. In diesem stehen die Prinzipien und Leitsätze der agilen Entwicklung geschrieben. Auch wenn die agile Entwicklung eine Sammelbezeichnung vieler unterschiedlicher Frameworks und Herangehensweisen ist, haben die Methoden vieles gemeinsam. Diese Gemeinsamkeiten lassen sich mit den 12 agilen Prinzipien und 4 agilen Leitsätzen zusammenfassen.

3. DIE 4 LEITSÄTZE DER AGILEN ENTWICKLUNG

Die Leitsätze können als Werte verstanden werden, welche als Gegenüberstellungen zu herkömmlichen Vorgehensweisen im Manifest verdeutlicht werden.

1. Individuen und Interaktionen sind wichtiger als die Prozesse und Werkzeuge
2. Funktionierende Software ist wichtiger als umfassende Dokumentation
3. Zusammenarbeit mit dem Kunden ist wichtiger als die Vertragsverhandlung
4. Reagieren auf Veränderungen ist wichtiger als das Befolgen eines Plans

Was ist damit nicht gemeint?
Die Präferenzrelation „ist/sind wichtiger“ impliziert natürlich nicht, dass damit beispielsweise Prozesse und Werkzeuge oder eine Dokumentation unwichtig wären. Stattdessen lassen sich die vier Prinzipien wie folgt zusammenfassen:

1. INDIVIDUEN UND INTERAKTIONEN SIND WICHTIGER ALS DIE PROZESSE UND WERKZEUGE

Für ein erfolgreiches Projekt sollten die Individuen, die Kommunikation und die Zusammenarbeit im Vordergrund stehen. Immerhin bringt das Team den Produktentwicklungsprozess voran. Die genannten Punkte haben einen größeren Einfluss auf den Erfolg eines Projekts, als die Wahl der Prozesse oder Tools. Oder anders ausgedrückt – die direkte Kommunikation ist oft wichtiger als die Formalitäten.

2. FUNKTIONIERENDE SOFTWARE IST WICHTIGER ALS UMFASSENDE DOKUMENTATION

Das oberste Ziel eines IT-Projekts ist natürlich eine lauffähige und einsatzbereite Software zu entwickeln. Erst danach folgt die Dokumentation, aber das macht eine Dokumentation natürlich nicht hinfällig! Dies lässt sich auch eine Ebene kleiner runterbrechen – agile Teams arbeiten ergebnisfokussiert. Statt der Dokumentation steht die Erledigung von Teilaufgaben im Vordergrund.

3. ZUSAMMENARBEIT MIT DEM KUNDEN IST WICHTIGER ALS DIE VERTRAGSVERHANDLUNG

In agilen IT-Projekten wird der Kunde von Anfang an in die Entwicklung von Produkten eingebunden. Im Fokus sollte die Maximierung des Nutzens durch das Produkt für den Kunden im Vordergrund stehen und nicht zwangsläufig das, was im Vertrag festgehalten wurde. Der Zusammenarbeit mit dem Kunden sollte daher grundsätzlich mehr Zeit eingeräumt werden als den Vertragsverhandlungen.

4. REAGIEREN AUF VERÄNDERUNGEN IST WICHTIGER ALS DAS BEFOLGEN EINES PLANS

Durch fehlende Flexibilität kommt es zu mehr Komplikationen bei Projekten. Die Dynamik der Technologie und der Softwareentwicklung sorgt für stetige Veränderungen – was somit bei der Erstellung des Plans vielleicht noch alternativlos war, kann morgen vielleicht effizienter gelöst werden. 

Diese Leitsätze lassen sich natürlich auch Übertragen auf andere agile Projekte, dabei muss nicht zwangsläufig die Softwareentwicklung im Vordergrund stehen. Mittlerweile haben auch Beratungsunternehmen oder Designagenturen agile Ansätze, wie Scrum für sich entdeckt. Im Zentrum steht hier stets das agile Team. 

4. DIE 12 PRINZIPIEN DER AGILEN ENTWICKLUNG

Bei den agilen Prinzipien handelt es sich um den Handlungsrahmen für das agile Arbeiten.

1. Das Zufriedenstellen des Kunden, mit früher und fortlaufender Auslieferung von wertvoller Software-, hat oberste Priorität

2. Veränderungen der Anforderungen
sind auch während der Entwicklung erwünscht. Durch agile Prozesse können Veränderungen zum Wettbewerbsvorteil des Kunden genutzt werden.

3. Funktionierende Software
sollte regelmäßig innerhalb von wenigen Wochen oder Monate geliefert werden. Dabei wird eine kürzere Zeitspanne bevorzugt.

4. Erwünscht ist eine enge und fast tägliche Zusammenarbeit der Fachexperten und Entwickler an dem jeweiligen Projekt.

5. Es sollte ein Arbeitsumfeld geschaffen werden, das für die Erledigungen der Aufgaben von motivierten Individuen benötigt wird.

6. Die Übermittlung von Informationen an und innerhalb des Projektteams, sollte von Angesicht zu Angesicht erfolgen.

7. Die Funktionsfähigkeit der Software ist DAS FORTSCHRITTSMASS.

8. Ein gleichmäßiges Tempo sollte von Auftraggebern, Entwicklern und Usern bei der Arbeit eingehalten werden, um eine nachhaltige Entwicklung gewährleisten zu können.

9. Der technischen Exzellenz und einem guten Design bedarf es stets einer besonderen Beachtung.

10. Die Einfachheit ist essentiell – Code, der nicht geschrieben werden muss, sollte auch nicht geschrieben werden. Ganz nach dem Motto: „Keep it simple“

11. Selbstorganisierte Teams
schaffen die besten Anforderungen, Entwürfe und Architekturen.

12. Regelmäßige Reflexion
der Arbeitsweise und des Verhaltens ist wichtig. Erlerntes wird genutzt und entsprechende Anpassungen werden gemacht, um eine Steigerung der Effektivität zu erzielen.

5. DIE VORTEILE DER AGILEN SOFTWAREENTWICKLUNG AUS KUNDENSICHT

Bereits im oberen Abschnitt des Artikels wurden einige Vorteile angeschnitten. Folgende Punkte fassen die großen Vorteile aus Kundensicht zusammen:

1. Projektstand ist transparent: Das Team liefert in regelmäßigen Abständen eine funktionsfähige Anwendung. Eine funktionierende Anwendung ist das Fortschrittsmaß – damit wird der Projektstand besser ersichtlich.

2. Bessere Steuerung des Projektes: Bei der agilen Entwicklung sind Anforderungspläne nicht in den Stein gemeißelt, wodurch Anforderungsänderungen auch während der Entwicklung von Seiten des Kunden stets willkommen und möglich sind. Falls sich also eine ursprüngliche Idee als weniger effizient herausstellt, können schnell entsprechende Änderungen vorgenommen werden.

3. Höherer Wissenstransfer:  Der Kunde wird in den Entwicklungsprozess eingebaut. Er ist somit Teil des Teams und durch eine tägliche Kommunikation ist nicht nur der Projektstand transparent, sondern es erfolgt auch grundsätzlich ein höherer Wissenstransfer, der für alle Seiten eine steile Lernkurve bedeutet.

4. Aktualität der Software: Der iterative und inkrementelle Ansatz einer agilen Softwareentwicklung sorgt dafür, dass sich veraltete Technologien (welche möglicherweise im ursprünglichen Anforderungsplan festgelegt wurden) nicht durchsetzen, sondern hingegen effizientere und neuere Technologien zum Einsatz kommen.

5. Effizientere Einarbeitung bei neuer Rollenbesetzung: Sollte sich seitens der Kunden Rollenänderungen ergeben, werden neue Teammitglieder durch die erhöhte Kommunikation und Interaktion schneller in das Projektteam integriert. Auch können dadurch frische und effiziente Ideen durch das agile Umfeld besser in einem aktiven Projekt eingeflochten werden.

6. Partnerschaftlichkeit statt Kunden-Dienstleister-Beziehung:  Viele Punkte stärken das Wir-Gefühl: Gemeinsame Meetings, erhöhte Transparenz durch gute Kommunikation, stetige Auslieferung einer funktionsfähigen Software, eine enge Zusammenarbeit und das Einpendeln eines gemeinsamen Arbeitstempos.

Ob reine Softwareentwicklung, UI/UX oder Workshops – AraCom bietet ein großes Leistungsspektrum für ihre zukünftigen IT-Projekte.

6. AGILE METHODEN: EIN KURZER ÜBERBLICK

Die agilen Methoden bilden den Rahmen für ein erfolgreiches IT-Projektmanagement. Dieser Rahmen umfasst agile Techniken und integriert damit die Prinzipien und Werte des Manifests. Die Grundstruktur der Ansätze sorgt dafür, dass Prozesse planbar sind und agile Teams effizient arbeiten können. Eine der bekanntesten Methoden, welche sich nicht nur in der Softwareentwicklung etabliert hat, ist Scrum.

Alle Individuen, die sich im Laufe ihres Arbeitslebens mit Projektmanagement auseinandergesetzt haben, sind mit Sicherheit über den Terminus technicus Scrum oder über eine Abwandlung davon gestolpert bzw. haben es angewandt. Ein Überblick über die Unterschiede der Ansätze ist jedenfalls kein einfaches Unterfangen – viele Methoden sind Abwandlungen anderer Methoden, wodurch es fließende Übergänge gibt. Neben Scrum, gibt es jedenfalls noch weitere agile Ansätze, die sich im IT-Projektmanagement etabliert haben:

KANBAN

SCRUMBAN

EXTREME PROGRAMMING

ASD – ADAPTIVE SOFTWARE DEVELOPMENT

CRYSTAL

DSDM – DYNAMIC SYSTEMS DEVELOPMENT METHOD

FDD – FEATURE DRIVEN DEVELOPMENT

 

QUELLEN:
1.  Manifesto for Agile Software Development. abgerufen am 14.04 2021