Project management & leadership | November 30, 2021

Agile Methodologien in der Softwareentwicklung

Das agile Projektmanagement hat seit seinem Aufkommen in der IT-Welt an Bedeutung gewonnen. Trotz der zunehmenden Akzeptanz bei Softwareentwicklungsprojekten ist das Konzept von vielen Missverständnissen umgeben. Lesen Sie weiter, um herauszufinden, was agil bedeutet und was die verschiedenen agilen Methoden in der Softwareentwicklung sind.

Agile Methodologien in der Softwareentwicklung

Was ist Agile in einfachen Worten?

Der agile Entwicklungsprozess ist einer der wichtigsten Trends in der Softwareentwicklung. Die agilen Prinzipien sind im Manifest für die agile Softwareentwicklung (Agile Manifesto) enthalten. Einfach ausgedrückt ist die agile Entwicklung ein Ansatz, bei dem selbstorganisierende und funktionsübergreifende Teams funktionale Produkte liefern.

grafika jcommerce blog 2018 02 09 agile process

Die Einführung von Agile 

Die Pandemie führte zu einer enormen Beschleunigung der Einführung agiler Methoden sowohl in Softwareentwicklungsteams als auch in Nicht-IT-Abteilungen (z. B. Back-Office). Die Unternehmen mussten sich schnell an die veränderten Umstände anpassen und rasch auf Veränderungen reagieren. Laut dem jährlichen 15. State of Agile Report wird die Verbreitung von Agile im Jahr 2021 gleich hoch sein:

  • 37% bis 84% in Softwareentwicklungsteams.
  • 26 % bis 60 % in Nicht-IT-Abteilungen.

Agile Werte und Prinzipien 

Menschen und Interaktionen statt Prozesse und Tools

Die agile Variante des Outsourcings betont die Rolle einer transparenten Kommunikation, da die Zusammenarbeit in diesem Modell ein hohes Maß an gegenseitigem Vertrauen voraussetzt. Die ausgelagerten Mitarbeiter, die an den Kunden delegiert werden, wollen eigenverantwortlich arbeiten, ihre Ideen respektieren und bei den Entscheidungsprozessen mitreden. Der Auftraggeber hingegen erwartet professionellen Service, Wirkung und die Erfüllung seiner Geschäftsbedürfnisse. Die Anforderungen von Mitarbeitern und Kunden ergänzen sich, aber nur eine offene und schnelle Zusammenarbeit garantiert, dass sie während des Projekts nicht aufeinanderprallen.

Funktionierende Software über umfassende Dokumentation

Das Ziel von Outsourcing-Dienstleistungen ist es, einen bestimmten geschäftlichen Nutzen zu erzielen. Die Erstellung einer umfassenden Dokumentation ist aus der Projektperspektive natürlich wichtig, aber sie wird nie wichtiger sein als die Lieferung funktionierender Lösungen, die Lösung auftretender Probleme oder die Anpassung des Projekts an sich ändernde Anforderungen.

Zusammenarbeit mit dem Kunden vor Vertragsverhandlungen

Anstatt Verträge auf der Grundlage detaillierter Anforderungslisten zu erstellen, ist es besser, den Outsourcing-Partner nach den vorgeschlagenen Mitteln zur Produktlieferung zu fragen und anschließend die Vertragsbedingungen auszuhandeln. Dies ist ein sehr guter Ausgangspunkt für die Erstellung eines Vertrags im Agile Outsourcing, der nicht als starrer Plan für die Projektrealisierung betrachtet werden sollte. Ein gut gestalteter Outsourcing-Vertrag ermöglicht es beiden Parteien, flexibel zu agieren und sichert die Geschäftsabschlüsse zwischen beiden interessierten Parteien auf einer grundlegenden Ebene.

Reagieren auf Veränderungen statt Befolgen eines Plans

„Das Einzige was bleibt ist Veränderung“. Dieses Sprichwort ist auch im Zusammenhang mit Softwareentwicklungsprojekten sehr zutreffend. Anstatt sich an einen Plan zu halten, versuchen agile Teams, sich an veränderte Umstände anzupassen, indem sie flexibel handeln.

Welche Methoden gibt es bei Softwareentwicklungsprojekten?

Kanban 

Kanban ist im Softwareentwicklungsprozess weit verbreitet. Bei JCommerce verwenden wir die Kanban-Methodik in unserem E-Commerce-Projekt für Boozt. Der Kunde selbst hat gesagt, dass dies zur Verbesserung der Arbeit an dem Projekt beigetragen hat: „Wir haben tägliche Stand-ups und ein Kanban-Setup, bei dem Deploys mehrmals am Tag durchgeführt werden. Wir haben dem Team schnell Bereitstellungsrechte erteilt, um es nicht zu verlangsamen, und wir haben es nie bereut.“

Extreme Programmierung (XP)

Extreme Programming ist eines der Rahmenwerke für die agile Softwareentwicklung. XP zielt darauf ab, qualitativ hochwertige digitale Produkte zu entwickeln und gleichzeitig auf sich dynamisch verändernde Kundenanforderungen zu reagieren. Die Kernwerte von XP sind Kommunikation, Einfachheit, Feedback, Mut und Respekt. 

Scrum

Es ist das am häufigsten verwendete agile Framework. Es ist ein flexibler und proaktiver Ansatz für das Projektmanagement. Scrum ist einer der beliebtesten agilen Ansätze. Scrum-Entwicklungsteams sind funktionsübergreifend und bestehen aus einem Scrum Master, einem Product Owner und einem Entwicklungsteam. Die Teammitglieder verfügen über alle Kompetenzen, die für die Lieferung des Produkts an den Kunden erforderlich sind.

Die Arbeit wird in sogenannte Sprints unterteilt. Ein Sprint ist eine Zeitspanne, in der bestimmte Arbeiten abgeschlossen und für die Überprüfung vorbereitet werden müssen. Die Länge des Sprints wird zu Beginn des Projekts festgelegt und gewählt – zum Beispiel 1 oder 2 Wochen. Zu Beginn eines jeden Sprints legt das agile Entwicklungsteam Ziele fest (was es umsetzen und funktionieren lassen will). Nach dem Sprint ist dieser Teil fertig. Nach dem Sprint können sie den aktuellen Stand des Produkts bewerten und die Prioritäten oder sogar das Design der entwickelten Anwendung neu definieren. Jeder Sprint ist so angelegt, dass relativ kleine, aber voll funktionsfähige Funktionen hinzugefügt oder geändert werden.

So nutzen die Teammitglieder die agile Methodik, um die Flexibilität zu erhalten, nach jedem Sprint Änderungen vorzunehmen. Der Kunde hat die Freiheit, während der Entwicklung Änderungen vorzunehmen, um auf den Markt, die Meinungen der Benutzer oder sich ändernde Geschäftsanforderungen zu reagieren. Änderungen können zu Beginn des Sprints (Planungsphase) vorgenommen werden, nicht aber während des Sprints selbst (Entwicklungsphase).

nearshore 2021.07.08 graphic 1 1024x711 1

Die Rolle des Scrum Masters im agilen Projektmanagement

Der Scrum Master unterstützt das Team im Softwareentwicklungsprozess. Er hilft festzustellen, was getan werden muss, damit das Ziel des Sprints erreicht werden kann. Durch entsprechende Fragen prüft der Scrum Master, ob alles für die Teammitglieder verständlich ist.

Die Rolle des Testers in der agilen Entwicklungsmethodik

Viele Menschen fragen sich, welche Rolle der Tester in agilen Teams spielt. Der agile Tester trägt auch zur richtigen Planung der Arbeit des Teams bei. Innerhalb des Scrum-Teams umfasst die Rolle des Testers z.B. die Beherrschung des Product Backlogs, die Schätzung, die Erstellung der Definition of Ready und der Definition of Done.

Lesen Sie auch: Effiziente Kommunikation in IT-Outsourcingprojekten   

Scrum-Entwicklungsteam

Das Scrum-Team ist für die Umsetzung der Vision und der Anforderungen des Product Owners verantwortlich. Dieses Team erstellt die technische Architektur für die Anwendung, implementiert sie und testet sie. Das Scrum-Team steht während der Entwicklung in ständiger Kommunikation mit dem Product Owner. Zu Beginn des Sprints wählt der Product Owner die wichtigsten zu implementierenden Aufgaben aus, und das Team schätzt ab, wie viele dieser Aufgaben es im Rahmen dieses Sprints erledigen kann. Während des gesamten Sprints stimmen sie sich mit dem Product Owner über die Details der Anforderungen ab, und die Ergebnisse ihrer Arbeit werden getestet und am Ende eines jeden Sprints zur Überprüfung vorgelegt.

Je nach Kooperationsmodell kann das gesamte Team (mit Ausnahme des Product Owner) vom Dienstleister kommen oder sich aus Spezialisten des Kunden und des Dienstleisters zusammensetzen.

Product Owner im agilen Entwicklungsmodell

Der Product Owner repräsentiert die Anforderungen an die Softwareentwicklung. Der Kunde sollte eine einzelne Person für diese Rolle auswählen, die als Hauptansprechpartner für die Bereitstellung einer Produktvision von Seiten des Kunden, für die Zusammenarbeit mit dem Team, das diese Vision in den Produktdesignprozess umsetzt, und für die anschließende Implementierung dieses Designs verantwortlich ist. Der Product Owner ist nicht für die technischen Details der Implementierung verantwortlich (es sei denn, der Kunde wünscht dies). Der Product Owner ist verantwortlich für das Verständnis der Zielgruppen und der gewünschten Funktionalitäten sowie für die Beantwortung von Fragen zu Projekten und für den laufenden Prozess der Auswahl der Prioritäten für den nächsten Sprint.

grafika jcommerce blog 2018 02 09 agile product owner 1024x144 1

Der PO muss keine Programmiererfahrung haben, aber es ist gut, wenn er ein gewisses Verständnis für den Markt, Kenntnisse über ähnliche Lösungen und Möglichkeiten sowie ein grundlegendes technisches Wissen hat. Der Product Owner sollte genügend Zeit haben, um während des gesamten Prozesses für die Kommunikation mit dem Entwicklungsteam zur Verfügung zu stehen.

Aufbau eines agilen Teams

Die Zusammenstellung des Teams kann nach der Definition der Anforderungen und des Umfangs des Projekts sowie der Festlegung der voraussichtlichen Fristen für die Projektentwicklung erfolgen. Die typische Zusammensetzung eines solchen Teams sieht wie folgt aus (Beispiel für ein Projekt zur Entwicklung einer mobilen Anwendung):

case jcommerce depersgroep ecommerce platforms development

Kundengeschichte

Unser Kunde aus der E-Commerce-Branche benötigte für die Entwicklung seiner mobilen Anwendung die Unterstützung von iOS- und Android-Teams.

  Lesen Sie den Text, um mehr zu erfahren!

Native Entwicklung

  • Teamleiter / Scrum Master – verantwortlich für die Leitung des Teams, Aufgaben und die Überwachung der Entwicklung
  • iOS-/Android-/Windows Phone-Entwickler – mindestens ein Entwickler für jede Plattform, verantwortlich für die Implementierung von mobilen Anwendungen
  • Server-Entwickler – verantwortlich für die Integration bestehender oder die Erstellung neuer Datenquellen
  • Tester – verantwortlich für das Testen der App, das Finden und Melden von Qualitätsproblemen

Plattformübergreifende Entwicklung 

  • Teamleiter / Scrum Master – verantwortlich für das Management des Teams, der Aufgaben und die Überwachung der Entwicklung 
  • Front-End HTML / JS Entwickler – verantwortlich für die Umsetzung der mobilen App für alle Plattformen 
  • Server-Entwickler – verantwortlich für die Integration bestehender oder die Erstellung neuer Datenquellen 
  • Tester – verantwortlich für das Testen der App, das Finden und Melden von Qualitätsproblemen 

Die genaue Größe des Teams hängt vom Umfang und der Komplexität der Anwendung sowie von den Fristen ab und sollte nach Rücksprache mit dem Dienstleister festgelegt werden. Die Festlegung der Anforderungen und des endgültigen Teams ist wichtig für den Beginn eines Projekts. Danach ist der nächste Schritt die Festlegung der Teststrategie.

Zusammenfassung

Bei der Agilität geht es um eine angemessene Denkweise, in deren Mittelpunkt Offenheit, Flexibilität und das Vertrauen stehen, dass das Entwicklungsteam sein Bestes gibt, um die Aufgabe zu bewältigen.

Contact me on LinkedIn

He has been involved in the IT industry for over 10 years. A graduate of the Faculty of Computer Science at the University of Silesia, he has managed projects in various industries, from cloud alarm systems to autonomous driving systems. He has extensive experience in conducting business analysis, designing and implementing mobile applications and managing developers teams.

Exclusive Content Awaits!

Dive deep into our special resources and insights. Subscribe to our newsletter now and stay ahead of the curve.

Information on the processing of personal data

Exclusive Content Awaits!

Dive deep into our special resources and insights. Subscribe to our newsletter now and stay ahead of the curve.

Information on the processing of personal data

Subscribe to our newsletter to unlock this file

Dive deep into our special resources and insights. Subscribe now and stay ahead of the curve – Exclusive Content Awaits

Information on the processing of personal data

Almost There!

We’ve sent a verification email to your address. Please click on the confirmation link inside to enjoy our latest updates.

If there is no message in your inbox within 5 minutes then also check your *spam* folder.

Already Part of the Crew!

Looks like you’re already subscribed to our newsletter. Stay tuned for the latest updates!

Oops, Something Went Wrong!

We encountered an unexpected error while processing your request. Please try again later or contact our support team for assistance.

    Get notified about new articles

    Be a part of something more than just newsletter

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address, telephone number and Skype ID/name for commercial purposes.

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address and telephone number for marketing purposes.

    Read more

    Just one click away!

    We've sent you an email containing a confirmation link. Please open your inbox and finalize your subscription there to receive your e-book copy.

    Note: If you don't see that email in your inbox shortly, check your spam folder.