Agile Softwareentwicklung im Projektalltag

    Agile Softwareentwicklung

    Klassische Entwicklung ist, anders als agile Softwareentwicklung, auf der Annahme aufgebaut, dass Software vollständig planerisch erfasst und in einer Umgebung ohne sich ändernde Anforderungen nach diesem Plan umgesetzt werden kann.

    Die Realität könnte nicht anders sein!

    Die klassische (Wasserfall) Softwareentwicklung basiert auf Vorausplanung und Umsetzung eines zuvor definierten Plans, ohne nennenswerte Änderungen. Die agile Softwareentwicklung basiert dagegen auf Flexibilität und Anpassung an neue Erkenntnisse, und zwar über das gesamte Projekt hinweg.

    Doch was genau ist agile Softwareentwicklung – und durch welche Prozesse zeichnet sich ein Arbeitsalltag mit dieser Methode aus?

    Dieser Beitrag bietet Führungskräften, Product Owner und Marketing Manager einen Einstieg in den Alltag agiler Softwareentwicklung!

    1. Agile Softwareentwicklung – Einstieg

    In der klassischen Entwicklung werden die zuvor erarbeiteten Anforderungen 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 geliefert werden soll.

    Das Erstellen eines Lasten- und anschließend Pflichtenhefts verursacht bereits erste und oft signifikante Kosten und nimmt nicht unerhebliche Zeit in Anspruch.

    Nachträgliche Änderungswünsche in diesem „starren“ Konzept sind nur durch erhöhte Kosten zu bewerkstelligen, ohne Gewissheit auf Erfolg.

    In der digitalen Welt haben Wasserfallprojekte aufgrund ihres starren Charakters nur noch einen geringe Stellenwert. Sie finden dann Anwendung, wenn wirklich sicher ist, was die Software am Ende können soll, wenn variable Anforderungen während der Entwicklungszeit also ausgeschlossen werden können – doch, geht das wirklich?

    Wir verraten: Die Annahme, dass das Ergebnis eines komplexen Projekts vorab genau beschrieben werden kann, hat sich schlicht und einfach immer wieder als falsch herausgestellt.

    Zurück nach oben

    Doch wie lassen sich nötige Planungssicherheit, Prozesse und Transparenz in (womöglich unbekannten) agilen Gewässern umsetzen?

     

    Agile Teams für Ihr Projekt

     

    2. Pflichtenheft oder Lastenheft für agile Softwareentwicklung?

    Agile Softwareentwicklung funktioniert ohne einen detaillierten Anforderungskatalog, das zu Beginn erstellt wird – nicht jedoch ohne detaillierte Anforderungen während des Projektverlaufs.

    Diese Geschwindigkeit ist ein erheblicher 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.

    Natürlich ist das A und O eines erfolgreichen Projekts, dass Sie noch vor Start wissen, was Sie und Ihre Zielgruppe erreichen wollen – die Strategie, Zielsetzung und Rahmengebung muss selbstverständlich auch in agilen Projekten detailliert erarbeitet werden.

    Das könnte Sie auch interessieren: Lastenheft, Pflichtenheft, Projektplanung & Co. – Anforderungen richtig definieren!

    8 Checklisten für Ihr digitales Projekt

    Haben Sie alle Anforderungen im Blick? Kostenlose Checklisten für Ihr digitales Projekt.

    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 Sprint in der Umsetzung befindet.

    Diese Konzeption mit anschließender Priorisierung nennt man in der agilen Softwareentwicklung nach Scrum auch „Backlog Refinement“.

    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).

    Zurück nach oben

    Erhalten Sie regelmäßig das passende Know-how: Jetzt für Newsletter anmelden

    Da die wichtigsten Anforderungen zuerst entwickelt werden, kann nach kurzer Entwicklungszeit schon eine Basisversion des Systems zum Einsammeln von erstem Nutzerfeedback eingesetzt werden. Mit der Zeit wächst so die Software mit realistischen 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.

    Das könnte Sie auch interessieren: Buyer Persona – Definition, Beispiele & Persona Template

    Durch diesen Prozess wird nur das entwickelt, was wirklich von Nutzen ist. Die Anforderungen werden somit gemeinsam mit Anwender:innen 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.

    Die Flexibilität, schnell auf Nutzerfeedback reagieren zu können und somit Veränderung zuzulassen und zu akzeptieren, fehlt in klassischen Softwareprojekten erheblich.

    Zurück nach oben

    8 Checklisten für Ihr digitales Projekt

    Haben Sie alle Anforderungen im Blick? Kostenlose Checklisten für Ihr digitales Projekt.

    3. Anforderungen in der agilen Softwareentwicklung – User 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 erkunden 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.
    • 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 User) Interaktionen zwischen User 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.

    Zurück nach oben

    Agile Teams für Ihr Projekt

     

    4. 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.

    Lesen Sie auch unseren vollständigen Artikel über Scrum als Methode zur agilen Softwareentwicklung.

    Zurück nach oben

    8 Checklisten für Ihr digitales Projekt

    Haben Sie alle Anforderungen im Blick? Kostenlose Checklisten für Ihr digitales Projekt.

    5. 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….

    Das könnte Sie auch interessieren: Product Owner Rolle: Machen Sie diese 10 Fehler?

    Zurück nach oben

    Neue Anforderungen, die sich während der Umsetzung oder während der Akzeptanztests mit den Nutzern ergeben, können direkt im nächsten Sprint (und nicht erst nach Fertigstellung des Projekts) 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.

    Zurück nach oben

    Suchen Sie den passenden Projektpartner?

     

    Ein gefühlter Nachteil, der von den Kunden oder Product Ownern mit einer Historie an (meist mehr oder weniger ) gut vorausgeplanten Wasserfallprojekt oft gesehen wird, ist die Unkenntnis über den Gesamtaufwand zur Fertigstellung der Software.

    Erfahrungsgemäß verläuft agile Softwareentwicklung jedoch für beide Seiten viel zufriedenstellender als Projekte, die mit einem Lastenheft und Pflichtenheft begonnen werden und am Ende ein zwar geplantes Ergebnis liefern, das aber von der Zielgruppe nicht angenommen wird, da diese nicht frühzeitig mit ins Projekt eingebunden wurden oder Details eben doch nicht in der Tiefe definiert wurden, wie sie im Projekt benötigt wurden.

    Unerfüllte Erwartungen und somit Frust sind häufig die Folge.

    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.

    Das könnte Sie auch interessieren: Online Marketing Guide + Video & Vorlagen

    Zurück nach oben

    Der Mehrwert, der in einem Sprint erarbeitet wurde, wird in agiler Softwareentwicklung meist über die Earned-Value-Methode ermittelt und die Performance des Teams über die Velocity die sich aus dem Burndown-Chart ergibt.

    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, wir haben in über 11 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 Zielgruppe.

    Zurück nach oben

    8 Checklisten für Ihr digitales Projekt

    Haben Sie alle Anforderungen im Blick? Kostenlose Checklisten für Ihr digitales Projekt.

     

    6. 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.

    Jetzt für Newsletter anmelden

    Die gängigsten Tools in der agilen Softwareentwicklung sind (insbesondere in der Zusammenarbeit mit remote-arbeitenden Teams):

    • Confluence: Confluence wird als Wiki häufig zur Anforderungsdefinition und Dokumentation in agilen Projekten, meist nach Scrum, 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 Issue Tracker und 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 sind 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. Mehr dazu hier: Virtuelle Teams erfolgreich führen – mit diesen 8 Schritten!
    • 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.

    Zurück nach oben

    7. Agile Softwareentwicklung mit virtuellen 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 virtuellen Teams nahezu der Alltag. Hohe Transparenz und KPI-basiertes Controlling sorgen dafür, dass Erfolg planbar und messbar wird.

     

    Zum Podcast

    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.

    Zurück nach oben

    8 Checklisten für Ihr digitales Projekt

    Haben Sie alle Anforderungen im Blick? Kostenlose Checklisten für Ihr digitales Projekt.

    8. 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 Zielgruppe wirklich benötigen – und nicht das, was irgendwann mal im stillen Kämmerlein geplant wurde.

    Häufiges Feedback durch Ihre Nutzergruppe sorgt dafür, dass Sie Ihre User als auch Ihr Produkt noch besser verstehen können.

    Agil heißt nicht planlos. Strategie, Prozesse und Fokus sind essentielle Pfeiler Ihres agilen Projekts.

    Anforderungen, die in einem Sprint umgesetzt werden sollen müssen sehr wohl klar definiert sein.

    Dann werden Sie sehen (und erleben), wie Sie durch Flexibilität, Transparenz und Geschwindigkeit in Agilen Projekten einen deutlich höheren Mehrwert generieren können als in klassischen Wasserfallprojekten.

    Skalierbare Teams & Zugriff auf weltweites Know-how?
    So geht's!
    Erfahren Sie mehr über Ihre Möglichkeiten.
    Jetzt Video ansehen

    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