Was ist Agile?

Abgeschlossen

Agil ist ein Begriff, der verwendet wird, um Ansätze für die Softwareentwicklung zu beschreiben, bei denen die inkrementelle Lieferung, die Teamzusammenarbeit, Continuous Planning und Continuous Learning im Vordergrund stehen. „Agile“ ist weniger ein Prozess als vielmehr eine Philosophie oder eine Denkweise für die Planung der Arbeit eines Teams. Sie basiert auf der iterativen Entwicklung und hilft einem Team dabei, die unvermeidlichen Änderungen bei der Softwareentwicklung besser zu planen und besser darauf zu reagieren. Hören wir uns Maras Besprechung mit Andy nach dem letzten Release an.

Mara hatte den Eindruck, dass sie das Team ein wenig für DevOps begeistern konnte. Allerdings ist der Prozess nun ins Stocken geraten. Das Team war zu sehr mit dem Beheben von Fehlern im letzten Release beschäftigt, um sich um andere Dingen kümmern zu können.

Wir erinnern uns, dass Irwin, der Produktmanager, dem Team ziemlich wichtiges Kundenfeedback zur Autorennspielwebsite bereitgestellt hat. Es war nicht einfach, diese Fehler zu beheben. Andy und Mara schreiben Code und geben ihn an Amita, die Testerin, weiter. Amita schien immer neue Fehler zu finden und musste den Code zurückgeben. Beim Buildserver ist ein Fehler aufgetreten. Tim konnte die Website des Spiels in der Produktion nicht zum Laufen bringen, selbst nachdem sie in der Entwicklung und im Test funktioniert hat. Alle haben viele Stunden gearbeitet und auf einige Wochenenden verzichtet.

Nachdem sie das Release ausgeliefert haben, saßen Mara und Andy bei einem Kaffee zusammen. Beide waren müde. Mara war entmutigt. Andy hatte dagegen eine andere Einstellung.

Andy: Ich weiß nicht, warum du so überrascht bist. Software auf den Markt zu bringen, ist harte Arbeit. Das ist immer eine Plackerei. Oder war das bei dir schon einmal anders?

Mara: Das war es, und ich bin überzeugt, dass wir hier ebenfalls einiges vereinfachen können. Ich denke, DevOps könnte uns helfen.

Andy: Ich erinnere mich, dass wir eine Wertstromanalyse durchgeführt haben. Aber was nun? Wir müssen mit dem neuen Release anfangen. Ich dachte, DevOps sei erledigt.

Mara: Es gibt noch viele weitere Möglichkeiten. Ich denke, wir sollten den ersten Schritt tun und eine Agile-Planung durchführen. Zur Unterstützung können wir Azure Boards verwenden.

Andy: Was meinst du mit Agile?

Mara: Agile ist ein Ansatz für die Softwareentwicklung. Die Benennung „Agile“ wurde 2001 im Agile Manifesto geprägt. In diesem Manifest wurden einige Leitprinzipien für einen besseren Ansatz für die Softwareentwicklung festgelegt. In dem Manifest steht Folgendes:

Wir schätzen:

  • Individuen und Interaktionen gegenüber Prozessen und Tools
  • Funktionierende Software anstatt umfassende Dokumentation.
  • Zusammenarbeit mit Kunden anstatt Vertragsverhandlungen.
  • Reagieren auf Veränderungen gegenüber dem Befolgen eines Plans

Andy: Also wenn du eine Möglichkeit kennst, das Leben auf wundersame Weise zu vereinfachen, bin ich dabei. Meine Kinder schlafen immer schon, wenn ich nach Hause komme. Aber das klingt sehr schwammig ohne konkrete Lösungen.

Mara: Das ist keine wundersame Weise. Aber wir können es Schritt für Schritt angehen. Und Azure DevOps bietet die Tools, die wir für die Implementierung von Agile-Methoden benötigen. Vorläufig können wir zum Planen Azure Boards verwenden. Kannst du mir zunächst den Buildprozess erklären und mir dann helfen, die größten Probleme zu identifizieren?

Nach jeder Menge Kaffee haben Mara und Andy die größten Probleme im Buildprozess identifiziert. Beim letzten Release sind diese Probleme alle aufgetreten. Nachdem Andy gegangen ist, schaut sich Mara ihre Notizen an und beschließt, allein mit der Agile-Planung zu beginnen. Sie verwendet auf eigene Faust den Basic-Prozess in Azure Boards, um alle Probleme an einem Ort zusammenzutragen.

Im nächsten Schritt stellt sie das Board dem Team vor, um das Team mit einzubinden.

Empfehlungen für die Implementierung von Agile

Das Team bereitet sich auf die ersten Schritte zur Implementierung von Agile vor. Im Folgenden finden Sie einige allgemeine Empfehlungen, die jedes Team verwenden kann, um Agile in der eigenen Organisation zu implementieren.

Erstellen einer Organisationsstruktur zur Unterstützung von Agile-Methoden

In den meisten Organisationen ist die Implementierung von Agile nicht ganz einfach. Sie erfordert neben einem Bewusstseinswandel auch einen kulturellen Wandel, durch den viele der in der Organisation vorhandenen Richtlinien und Prozesse in Frage gestellt werden. In den meisten Unternehmen herrscht üblicherweise eine horizontale Teamstruktur. In der Praxis bedeutet das, dass die Teams der jeweiligen Softwarearchitektur entsprechen. So kann beispielsweise ein Team für die Benutzeroberfläche einer Anwendung zuständig sein, ein anderes für die Daten und ein weiteres für die dienstorientierte Architektur.

Vertikale Teams erzielen bei Agile-Projekten jedoch bessere Ergebnisse. Vertikale Teams erstrecken sich über die gesamte Architektur und sind an den Produktergebnissen ausgerichtet. So kann beispielsweise ein Team für den E-Mail-Teil der App verantwortlich sein, und die Teammitglieder können aus allen drei oben genannten Bereichen stammen. Die vertikale Teamstruktur hat den Vorteil, dass die Skalierung durch das Hinzufügen von Teams erfolgt.

Beraten von Teammitgliedern in puncto Agile-Techniken und Agile-Methoden

Beim ersten Einstieg in Agile-Techniken und Agile-Methoden beschließen einige Teams, externe Berater zu beauftragen. Berater*innen können mit mehreren Teams zusammenarbeiten und so dazu beitragen, dass organisatorische Hindernisse und Silos beseitigt werden. Daher verfügen sie häufig nicht nur über pädagogische Fähigkeiten, sondern auch über Führungsqualitäten. Sie können Teammitglieder auch in Agilen Arbeitsweisen schulen und ihnen beispielsweise beibringen, wie Kurz- und Überprüfungsbesprechungen durchgeführt werden. Mit der Zeit müssen die Teammitglieder jedoch die Fähigkeit entwickeln, sich gegenseitig zu beraten. Das bedeutet, dass die meiste Arbeit gemeinsam erledigt werden sollte und nicht von Einzelpersonen, die die meiste Zeit allein arbeiten.

Ermöglichen von teaminterner und teamübergreifender Zusammenarbeit

Wenn Zusammenarbeit der Schlüssel zum Erfolg bei Agile ist, wie können Sie diese dann fördern? Hier sind einige Anregungen.

Kulturänderung

Wenn Sie die Kultur verändern, sollten Sie einige Dinge beachten. Es ist wichtig, dass die Teammitglieder einen ruhigen, bequemen Platz zum Arbeiten haben. Sie benötigen Räume, in denen sie sich konzentrieren können, ohne viele Ablenkungen und Lärm.

Besprechungen gehören zum Arbeitsalltag und es kann sich so anfühlen, als würden sie das ganze Arbeitsleben eines Mitarbeiters bestimmen. Damit die Teammitglieder mehr Kontrolle haben, ist für Besprechungen eine Agenda und ein strenger Zeitrahmen nötig.

Asynchrone Mitteilungen wie E-Mails und Nachrichten können leicht zu einer Überforderung führen, da Mitarbeiter*innen häufig das Gefühl haben, sofort reagieren zu müssen. Machen Sie deutlich, dass nicht alle Mitteilungen eine sofortige Reaktion erfordern.

Remoteteammitglieder sind inzwischen in vielen Unternehmen Normalität. Jeder muss sich mit allen Teammitgliedern wohlfühlen und sie gleich behandeln, egal ob sie im Büro oder außerhalb arbeiten. Die Zusammenarbeit über Mitteilungen sollte Teil der DNA der Organisation werden.

Die Bedeutung einer guten Kommunikation kann nicht hoch genug eingeschätzt werden, vor allem bei Meinungsverschiedenheiten. Daher sind Konfliktlösungsstrategien Methoden,die jedes Agile-Team beherrschen sollte.

Funktionsübergreifende Teams

So wichtig, wie für Teammitglieder die Zusammenarbeit ist, so wichtig ist es für Teams, miteinander zu arbeiten. Funktionsübergreifende Teams bringen neue Fertigkeiten und Perspektiven ein, mit denen sich die Fähigkeiten jedes Einzelnen, Herausforderungen kreativ zu meistern, erweitern lassen. Zudem sorgen funktionsübergreifende Teams für einen besseren Zusammenhalt in der gesamten Organisation. Sie tragen dazu bei, dass weniger Revierkämpfe stattfinden, und verstärken das Gefühl, dass alle auf ein gemeinsames Ziel hinarbeiten.

Tools für die Zusammenarbeit

Gute Tools können dazu beitragen, dass Ihre Agile-Teammitglieder sowohl innerhalb des Teams als auch mit anderen Teams effektiver zusammenarbeiten. Hier finden Sie einige Anregungen, die Ihnen den Einstieg erleichtern:

  • Microsoft Teams: Teams ist eine Anwendung, die einen Arbeitsbereich für Chats, Besprechungen, Notizen und zum Speichern von Dateien bereitstellt.
  • Skype: Skype ist benutzerfreundlich und ein gutes universelles Tool. Viele Personen haben es bereits installiert.
  • Slack: Slack stellt über nur eine Schnittstelle viele separate Kommunikationskanäle bereit. Sie können diese Kanäle auf vielfältige Weise organisieren, z. B. nach Projekt, Team oder Thema. Konversationen werden beibehalten und sind durchsuchbar. Sowohl interne als auch externe Teammitglieder lassen sich einfach hinzufügen. Slack lässt sich direkt an den Quellcode vieler Tools von Drittanbietern wie GitHub anpassen.

Google Hangouts, Asana, Trello, GoToMeeting und monday.com sind weitere gängige Tools. Machen Sie sich mit den Möglichkeiten vertraut, damit Sie einschätzen können, welche davon die Anforderungen Ihres Teams und Ihres Unternehmens erfüllen.