Vorteile Agiler Softwareentwicklung

    Scrum Methode

    Klassische Entwicklung ist, anders als agile Softwareentwicklung. Die klassische (Wasserfall) Softwareentwicklung basiert auf Vorausplanung und Umsetzung eines zuvor definierten Plans. Die agile Softwareentwicklung basiert auf Flexibilität und Anpassbarkeit. In der klassischen Entwicklung werden die zuvor erarbeiteten Anforderungen werden dann von Ihnen oder Ihrem Dienstleister in einem detaillierten Pflichtenheft festgehalten. Dieser Prozess ist für die Aufwandschätzung in der herkömmlichen Softwareentwicklung zwingend notwendig und dient meist als Vereinbarung bzgl dessen was im Projekt hergestellt werden soll. Das Erstellen eines Pflichtenheftes verursacht bereits erste Kosten und nimmt nicht unerhebliche Zeit in Anspruch. Nachträgliche Änderungswünsche in diesem „starren“ Konzept sind nur durch erhöhte Kosten zu bewerkstelligen, wodurch das Projekt nicht immer einen optimalen Verlauf für Sie als Kunde einnimmt – in der digitalen Welt mit ständiger Veränderung haben Wasserfallprojekte wegen ihres starren Charakters nur noch einen geringe Stellenwert. Die Annahme, dass man das Ergebnis eines komplexen Projekts vorab genau beschreiben kann, hat sich in all den Jahren der Anwendung als schlicht und einfach falsch herausgestellt.


    Sicherheit in durch Agile Softwareentwicklung

    So gehen auch im Agilen Vorgehen keine Anforderungen vergessen, die später erhebliche Mehraufwände mit sich bringen.
    Checklisten herunterladen


    Pflichtenheft oder Lastenheft für Agile Softwareentwicklung?

    Agile Softwareentwicklung funktioniert ohne ein detailliertes Pflichtenheft das zu Beginn erstellt wird, nicht jedoch ohne detaillierte Anforderungen während des Prozesses. Diese Einsparung und somit eine höhere Geschwindigkeit ist eines der Vorteile agiler Softwareentwicklung. Kunden oder Product Owner müssen nur wenige und somit die am höchsten priorisierten Anforderungen stellen, und das Projekt startet sofort in einem ersten Sprint zunächst mit der Konzeption, dem Backlog-Refinement und dann mit der Entwicklung der wichtigsten Funktionen. Sie bestimmen dann, was als Nächstes geschehen soll und konzipieren Anforderungen in form von Epics und User Stories für den nächsten Sprint, während sich der aktuelle in der Umsetzung befindet. Diese Konzeption mit anschließender Priorisierung nennt man in der Agilen Softwareentwicklung nach Scrum auch „Backlogrefinement“.

    Nach jedem Schritt erhalten Sie in der agilen Softwareentwicklung ein Stück funktionierende Software, auch Inkrement genannt. Somit behalten Sie stets den Überblick und die Kontrolle über das Projekt indem Sie zu jederzeit den Fortschritt und die Performance Ihres Teams überprüfen können (und nicht erst am Ende des Projekts wie in klassischen Wasserfallprojekten). Da die wichtigsten Anforderungen zuerst entwickelt werden, kann nach kurzer Entwicklungszeit schon eine Basisversion des Systems zum Einsammeln von erstem Nutzerfeedback eingesetzt werden und mit der Zeit wächst die Software mit ihren Anforderungen – und durch das schnelle Feedback der Nutzer auch der Mehrwert für diese.
    Während des Projekts werden neue oder geänderte Anforderungen definiert, weil z.B. festgestellt wurde, dass sich das Umfeld geändert hat oder dass die Anforderungen der Nutzer an das Projekt angepasst werden müssen. Durch diesen Prozess wird nur das entwickelt, was wirklich von Nutzen ist. Die Anforderungen werden somit gemeinsam mit Anwendern und dem Projektteam während des Projektverlaufs erarbeitet, ein weiterer Vorteil agiler Softwareentwicklung, besonders in der sich schnell verändernden Welt zahlreicher Transformationen klassischer Modelle. Diese Flexibilität, schnell auf Nutzerfeedback reagieren zu können, fehlt in klassischen Softwareprojekten erheblich.


    Anforderungen in der Agilen Softwareentwicklung – der Nutz(en/er) im Mittelpunkt

    In der Agilen Softwareentwicklung, wo der Anwender im Mittelpunkt steht, werden Anforderungen aus Nutzersicht so definiert, dass diese im Sinne einer „Digital Customer Journey“ nachvollziehbar und optimalerweise schon vor der Umsetzung interaktiv zu erkunde sind. Diese bestehen meist aus:

    • Personas: Eine „Beispielperson“ einer bestimmten Nutzergruppe, welche die Software nutzen soll.
    • Use Cases: Die Definition von groben Anwendungsfällen einer Person in Ihrer Nutzergruppe (Personas)
    • Epics: Funktionsgruppen der Software (z.B. Benutzerverwaltung, Content Management, Medienverwaltung, Navigation etc)
    • User Stories: User Stories sind ein wichtiger Teil agiler Softwareentwicklung in der aus der Sicht der Nutzer Interaktionen zwischen Nutzer und Software beschrieben werden. Z.B. „Als anonymer Nutzer möchte ich ein Formular sehen, in das ich meinen Benutzernamen und mein Passwort eingebe, den „Einloggen“ Button klicke und anschließend die Software als angemeldeter Nutzer verwenden kann.“
    • Wireframes: Wireframes stellen einzelne Epics und User Stories in einer Art interaktivem Prototypen dar. So können die funktionalen Anforderungen visuell verständlich dargestellt werden.
    • Designs: Designs stellen die Benutzeroberfläche in der finalen Fassung dar. Meist werden die Designs erstellt, indem ein Styleguide einer Corporate Identity auf die zuvor erstellten Wireframes angewendet wird.

    Wann sind Anforderungen in der Agilen Softwareentwicklung „ready“ und wann „done“?

    • Definition of Ready: In der agilen Softwareentwicklung bestimmen Sie, wann eine Anforderung so weit ausgearbeitet ist, dass sie von einem agilen Entwicklerteam umgesetzt werden kann. Meist regelt diese Definition, dass Anforderungen in Form von User Stories, Designs und Akzeptanzkriterien vorliegen müssen um möglichst klar und eindeutig das gewünschte Resultat zu definieren.
    • Definition of Done: Sie bestimmt, wann eine Anforderung wirklich fertig umgesetzt wurde. Häufig ist dies der Fall, wenn die Anforderungen auf dem Stage-System erfolgreich getestet wurden, wenn die Akzeptanzkriterien zu der Anforderung mit automatisierten Tests abgedeckt wurden, wenn die Dokumentation erstellt und die Umsetzung in der Projektmanagement-Software nachvollziehbar protokolliert wurde.


    Agile Softwareentwicklung basiert auf ständiger Verbesserung

    Die Vorteile agiler Softwareentwicklung können voll ausgenutzt werden, wenn Anforderungen während des Backlog Refinements klar definiert und sowohl Team, Tools und Methoden konsequent eingesetzt werden. Um Missverständnisse zu vermeiden: Es muss nicht alles von Beginn an eindeutig definiert werden, aber sehr wohl für jeden Sprint. Anforderungen, die großen Interpretationsspielraum zulassen überlassen es dem Zufall, wie diese Lücken in den Anforderungen letztendlich während der Umsetzung in einem Sprint geschlossen werden. Wer aber möchte schon sein Produkt dem Zufall überlassen….

    Neue Anforderungen, die sich in während der Umsetzung oder während Akzeptanztests mit den Nutzern ergeben, können direkt umgesetzt werden, wenn diese im Product-Backlog priorisiert werden. Passen diese Anforderungen noch in den aktuellen Sprint hinein und committed sich das Team darauf, entstehen meist keine zusätzliche Aufwände und Kosten. Alle Prozesse sind für Sie transparent, die Kosten der einzelnen Funktionen direkt ersichtlich. Diese volle transparenz ist ein weiterer Vorteil der für agile Softwareentwicklung spricht.
    Sie erleben den Entwicklungsprozess aktiv mit und haben nach jedem Sprint eine Software, mit der Sie testen, arbeiten und Feedback einholen können.

    Ein Nachteil, der von den Kunden oder Product Ownern mit einer Histories in (meist mehr oder weniger )gut vorausgeplanten Wasserfallprojekt oft gesehen wird, ist die Unkenntnis über den Gesamtaufwand zur Herstellung der Software. Erfahrungsgemäß verläuft agile Softwareentwicklung jedoch für beide Seiten viel zufriedenstellender als Projekte, die mit einem Pflichtenheft begonnen werden und am Ende ein zwar geplantes Ergebnis liefern, das aber von den Nutzern nicht angenommen wird, da diese nicht frühzeitig mit ins Projekt eingebunden wurden. Der scheinbare Nachteil ist kein wirklicher Nachteil, da die Kosten transparent sind (man zahlt z.B. Sprintweise das, und somit genau das, was man an Mehrwert bekommt) und die Anforderungen klar durch Kosten und Mehrwert priorisiert sind. Der Mehrwert, der in einem Sprint erarbeitet wurde, wird in agiler Softwareentwicklung meist über die Earned-Value-Methode ermittelt und gemessen. Auch wenn ein Festpreis oft „vermeintliche“ Sicherheit gibt, ist dies nur der Fall, wenn die Anforderungen vollständig sind und keine wesentlichen Lücken aufweisen (Achtung: Prüfen Sie ob Sie dazu wirklich in der Lage sind, ich habe in über 10 Jahren noch kein Projekt gesehen, dass das wirklich vollständig erreicht hat). Sonst kommt es sowohl in Wasserfallprojekten als auch in der Agilen Softwareentwicklung zu ungeplanten Mehraufwänden. Eine wesentlich größere Sicherheit erhalten Sie in Agilen Projekten durch die Flexibilität, die Transparenz und die Möglichkeit, in jedem Sprint das umzusetzen, was wirklich wichtig ist – ganz im Sinne Ihrer Nutzer.


    Agile Anforderungen sicher erfassen

    Mit unseren Checklisten werden auch komplexe Agile Softwareprojekte sicher planbar.
    Checklisten Download


    Tools für Agile Softwareentwicklung

    Agile Softwareentwicklung lebt von der Zusammenarbeit der einzelnen Teammitglieder. Das gilt für lokale Teams genauso wie für Remote Teams. Damit der Prozess als auch das Team bestmöglich unterstützt werden, sollten Tools möglichst konsequent mit Mehrwert für das Projektteam eingesetzt werden, damit sich die Vorteile agiler Softwareentwicklung voll entfalten können und Ihr Projekt trotz hoher Flexibilität planbar wird.
    Die gängigsten Tools in der Agilen Softwareentwicklung sind (insbesondere in der Zusammenarbeit mit Remote Teams):

    • Confluence: Confluence wird als Wiki häufig zur Anforderungsdefinition und Dokumentation in Agilen Projekten genutzt. Der Vorteil für agile Softwareentwicklung in der Nutzung zusammen mit Jira ist, dass Anforderungen (Epics als auch User Stories) direkt in Jira als Issues überführt werden können.
    • Jira: Jira dient als Projektmanagementsoftware für agile Softwareentwicklung zum Verwalten des Backlogs und der Sprints. Jira ermöglicht das kollaborative Zusammenarbeiten ganzer Entwicklerteams. Zahlreiche Integrationen wie z.B. mit GIT, Confluence und anderen Tools sorgen für einen möglichst reibungslosen Prozess und Transparenz im Projektverlauf. Zeiterfassung, Planungs-Poker und Task-Management sind enthalten. Eine Alternative ist Trello oder Asana.
    • Slack, Rocketchat, Zulip oder Microsoft Teams: Jedes dieser Tools bietet eine Plattform für den Austausch zwischen einzelnen Teammitgliedern. Meist sind diese Chat-Tools ebenfalls mit einem Video-Chat versehen. So ist auch das Arbeiten an verschiedenen Standorten kollaborativ und agil möglich.
    • Sketch und Invision: Sketch erlaubt das schnelle erstellen von Benutzeroberflächen (UI) und Wireframes. Mit Invision verknüpfen Sie die verschiedenen Screens und erstellen so interaktive Wireframes. Über das Craft Plugin können auch Ihre Frontend-Entwickler Wireframes in Ihrer Spezifikation einfach und präzise erkunden.

    Agile Softwareentwicklung mit Virtuellen Flash Teams

    Zu den Vorteilen agiler Softwareentwicklung gehört erhöhter Mehrwert und hohe Effizienz. Durch moderne Cloudtools zur Unterstützung von Agilen Projekten ist verteiltes Arbeiten in Remote Teams nahezu der Alltag (Sie zählen zu den wenigen glücklichen, wenn Sie noch genügend qualifizierte Mitarbeiter für Ihr Büro vor Ort finden können). Hohe Transparenz und KPI-basiertes Controlling sorgen dafür, dass Erfolg planbar wird.
    Damit die Qualität in Ihrer agilen Softwareentwicklung möglichst auf viele unabhängige Experten verteilt ist, empfehlen wir darauf zu achten, dass in Ihrem Team immer mindestens die folgenden Positionen mit Experten besetzt sind (hier hat es sich herausgestellt, dass fehlende Erfahrung und Qualifikation bei Teammitgliedern im Projektverlauf oft teuer bezahlt wird):

    • Scrum Master: Sorgt dafür, dass das Agile Team die Prozesse, Tools und Methoden konsequent einhält und somit ein reibungsloser Projektablauf stattfinden kann, der die Vorteile agiler Softwareentwicklung voll ausnutzt.
    • Product Owner: Managed das Produkt mit all seinen Features und sorgt dafür, dass ein Mehrwert für die Nutzergruppe der Software entsteht.
    • Business Analyst: Nimmt die Anforderungen auf, analysiert und dokumentiert dieser in Form von Epics und User Stories.
    • UI/UX Designer: Definiert die User-Experience und sorgt dafür, dass die Oberflächen einfach und intuitiv zu bedienen sind.
    • Team Lead / Architect: Bestimmt die Software- und Systemarchitektur gemeinsam mit dem DevOps-Engineer und führt das Entwicklerteam.
    • Backend-Entwickler: Entwickelt das Backend (wir empfehlen hier zwei Entwickler einzusetzen, um einen gegenseitigen Review-Prozess zu etablieren).
    • Frontend-Entwickler: Entwickelt das Frontend (wir empfehlen hier zwei Entwickler einzusetzen, um einen gegenseitigen Review-Prozess zu etablieren).
    • DevOps-Engineer: Sorgt dafür, dass die Deployment Infrastruktur als auch die gesamte Systemarchitektur reibungslos funktionieren und im Projekt flexibel erweiterbar bleiben.
    • QA / Software Tester: Sorgt dafür, dass die Software eine hohe Qualität und wenige Bugs aufweist.
    • QA Engineer: Für agile Softwareentwicklung, mit einer kontinuierlichen Weiterentwicklung, empfehlen wir den Einsatz automatisierter Tests. Diese werden vom QA Engineer erstellt. Somit bleibt die Software auch mit ständiger Weiterentwicklung im Verlauf stabil im Bezug auf vergangene Anforderungen. So vermeiden Sie auch, dass der Testaufwand (oder die Fehlerquote) mit fortschreitendem Projekt nicht exponentiell zunimmt.

    Fazit

    Agile Softwareentwicklung bietet größtmögliche Flexibilität und sorgt durch den passenden Einsatz von Tools und Methoden dafür, dass Ihr Produkt genau das an Funktionen erhält, was Ihre Anwender wirklich benötigen – und nicht das was irgendwann mal irgendjemand im stillen Kämmerlein geplant hat. Häufiges Feedback durch Ihre Nutzer sorgt dafür, dass Sie Ihre Zielgruppe als auch Ihr Produkt noch besser verstehen lernen. Achtung: Agile heißt nicht planlos. Anforderungen, die in einem Sprint umgesetzt werden sollen müssen sehr wohl klar definiert sein. Dann werden Sie sehen, wie Sie durch Flexibilität, Transparenz und Geschwindigkeit in Agilen Projekten einen deutlich höheren Mehrwert generieren als in klassischen Wasserfallprojekten.

     


    Verwandte Blogbeiträge

    Diese Themen beschäftigten uns und unsere Kunden kürzlich

    Bereit für Projekte ohne Grenzen?

    Wir freuen uns auf Ihre Projekt-Ideen! Lernen Sie uns gerne in einer kostenlosen Erstberatung kennen und nehmen Sie noch heute Kontakt zu uns auf.PROJEKT ANFRAGE STELLEN

    Wie sieht Ihre perfekte Digitalagentur aus?

    Wir haben aus über 500 Anfragen die häufigsten Kriterien zur Agenturauswahl zusammengetragen. So können Sie Ihre Anbieter einfach vergleichen.CHECKLISTEN HERUNTERLADEN
    Darmstadt

    Bright Solutions GmbH
    Pfnorstraße 10-14
    64293 Darmstadt

    Adresse anzeigen
    Hamburg

    Bright Solutions Hamburg GmbH
    Altonaer Poststraße 9a
    22767 Hamburg

    Adresse anzeigen
    Telefon

    Darmstadt: +49 6151 / 27 647 - 0

    Hamburg: +49 040 / 350 80 130

    Nummern anzeigen