Last updated on | Agile, FAQs

Was ist Agile Methodik

by Luís Gonçalves
agile

Was ist Agile Methodik?

Mir wird oft die Frage gestellt: Was ist agile Methodik? Agil ist ein Fachbegriff, mit dem die IT-Industrie eine alternative Methode des Projektmanagements beschreibt.

Ich werde oft gefragt: Was ist agile Methodik? Ganz einfach, agil ist ein Fachwort, mit dem die IT-Industrie eine alternative Methode des Projektmanagements beschreibt. Agil ist ein Prozess, mit dem Teams schnelle und unvorhersehbare Antworten auf das Feedback geben können, das sie zu ihrem Projekt erhalten. Es bietet Möglichkeiten, die Richtung eines Projekts während des Entwicklungszyklus zu beurteilen. Teams bewerten das Projekt in regelmäßigen Besprechungen, die als Sprints oder Iterationen bezeichnet werden.

Ein agiler Prozess ist ein sehr ermächtigender Prozess, der Unternehmen hilft, das richtige Produkt zu entwerfen und zu bauen. Diese Managementmethode ist sehr vorteilhaft für Softwarefirmen, da sie ihnen hilft, ihr Produkt während der gesamten Entwicklung zu analysieren und zu verbessern. Dies ermöglicht es Unternehmen, ein hochwertiges Produkt zu produzieren, damit sie auf dem Markt wettbewerbsfähig bleiben.

Woher kam Agile?

Im Jahr 2001 entwarf eine kleine Gruppe von Personen, die der traditionellen Herangehensweise des managens von Softwareentwicklungsprojekten überdrüssig war, das agile Manifest. Es ist eine verbesserte Methode, um den Fortschritt von Softwareprojekten zu administrieren.

Das agile Manifesto hat vier wichtige Werte:

  1. Der Fokus sollte mehr auf Individuen und Interaktionen als auf Prozessen und Werkzeugen liegen
  2. Arbeitssoftware ist wichtiger als umfassende Dokumentation
  3. Die Zusammenarbeit mit dem Kunden ist wichtiger als die Vertragsverhandlungen
  4. Der Prozess sollte auf Veränderungen reagieren, statt einem Plan zu folgen

Es gibt 12 Prinzipien der agilen Softwareentwicklung:

  1. Liefern Sie Kundenzufriedenheit, indem Sie kontinuierlich hochqualitative Software bereitstellen
  2. Akzeptieren Sie immer Änderungen der Anforderungen, egal wie früh oder spät im Projekt
  3. Liefern Sie Software, die innerhalb eines kürzeren Zeitraums funktioniert
  4. Sowohl Entwickler als auch Experten müssen während der gesamten Projektdauer täglich eng zusammenarbeiten
  5. Informationen werden am besten während persönlicher Gesprächen zwischen den Parteien übertragen
  6. Motiviere die Teilnehmer, ein Projekt aufzubauen, indem du ein Umfeld der Wertschätzung, des Vertrauens und der Ermächtigung schaffst
  7. Funktionierende Software ist das Schlüsselmaß für den Fortschritt
  8. Der agile Prozess fördert die nachhaltige Entwicklung
  9. Ständige Aufmerksamkeit auf Exzellenz und Qualität in technischer Entwicklung und Design erhöht die Agilität.
  10. Einfachheit ist ein wesentlicher Bestandteil eines effektiven agilen Managements
  11. Selbstorganisierte Teams produzieren die beste Architektur, Anforderungen und Design
  12. Teams sollen durch Inspektion und Anpassung reflektieren, um effektiver zu sein

Es gibt verschiedene Methoden der Agilen, die die Werte und Prinzipien des Manifests fördern. Scrum und XP sind zwei bekannte Beispiele.

Die Vorteile einer agilen Softwareentwicklung

Agile Meetings wurden von Spitzen-Softwareentwicklern erschaffen. Nach Erfahrung mit wiederholten Herausforderungen und Einschränkungen in der traditionellen kaskadierenden Entwicklung in realen Projekten wollten sie einen effizienteren Prozess für die Analyse der Projektentwicklung schaffen. Der Ansatz, den sie verwenden, befasst sich direkt mit den Problemen in Bezug auf die Philosophien und Prozesse traditioneller Methoden.

Die agile Softwareentwicklung bietet viele Vorteile. Sie beinhalten:

Engagement und Zufriedenheit der Interessenvertreter

Der agile Prozess schafft während jeder Sprint-Sitzung viele Möglichkeiten für eine echte Interaktion zwischen dem Team und den Interessenvertretern. Da der Kunde aktiv am gesamten Projekt beteiligt ist, besteht eine kontinuierliche Zusammenarbeit zwischen allen Beteiligten. Dies gibt dem Team die Möglichkeit, die Vision des Kunden vollständig zu verstehen. Durch die Bereitstellung qualitativ hochwertiger, funktionierender Software entwickeln die Beteiligten schnell eine vertrauensvolle und authentische Beziehung mit dem Team. Dies fördert auch das Engagement zwischen dem Kunden und dem Team.

Transparenz

Der agile Ansatz bindet den Kunden während des gesamten Projekts einschließlich der Iterationsplanung, der Überprüfungssitzungen und dem Einbauen neuer Anforderungen in die Software aktiv mit ein. Die Kunden müssen jedoch verstehen, dass sie durch die Transparenz des Projekts eine laufende Arbeit sehen und nicht das Endprodukt.

Frühe und vorhersehbare Lieferung

Sprints werden nach einem festen Zeitplan von 1 bis 4 Wochen durchgeführt. Durch die Verwendung der Timebox-Methode ist die Vorhersagbarkeit hoch, da neue Funktionen den Interessenvertretern schnell und oft zur Verfügung gestellt werden können. Außerdem kann das Team die Software schneller beta testen oder freigeben, wenn sie einen ausreichenden unternehmerischen Nutzen hat.

 Vorhersehbare Kosten und Zeitplan

Da die Sprints einen festen Zeitplan haben, sind die Kosten begrenzt und vorhersehbar und basieren auf dem Umfang der geleisteten Arbeit. Durch die Kombination aller geschätzten Kosten vor jedem Sprint wird der Kunde die ungefähren Kosten für jedes Merkmal besser verstehen. Dies bietet verbesserte Möglichkeiten zur Entscheidungsfindung bei der Priorisierung der Funktionen oder beim Hinzufügen von Iterationen.

 Flexible Priorisierung

Scrum-Methoden ermöglichen mehr Flexibilität durch Priorisierung der vom Kunden gewünschten Funktionen. Das Team hat mehr Kontrolle bei der Verwaltung der lieferbaren Arbeitseinheiten bei jeder Sprintgrenze; und macht damit kontinuierliche Fortschritte auf dem Weg zum endgültigen  Meilenstein. Um ein schnelles RIO vom Engineering zu erhalten, muss die Arbeit frühzeitig an die Kunden geliefert werden, damit sie die Wertschöpfung der Features erkennen können.

Ermöglicht Veränderung

Während der Fokus darauf liegen sollte, den vereinbarten Teil der Produktmerkmale zu liefern, bieten agile Prozesse auch noch die Möglichkeit, den Produktbestand kontinuierlich zu priorisieren und zu verfeinern. Diese Änderungen können der nächsten Iteration hinzugefügt werden, sodass die neuen Änderungen innerhalb weniger Wochen eingeführt werden können.

Fokus auf den unternehmerischen Nutzen

Das Team hat ein besseres Verständnis davon, was für das Unternehmen des Kunden am wichtigsten ist, und kann Funktionen bereitstellen, die dem Unternehmen den größten Nutzen bieten.

 Fokus auf den Benutzer

Die Erzählungen der Benutzer werden dazu häufig verwendet, die Produktmerkmale zu definieren, die sich auf geschäftsbezogene Akzeptanzkriterien beziehen. Durch die Fokussierung auf die Bedürfnisse des Benutzers liefert jedes Merkmal einen echte Wertschöpfung und nicht nur eine IT-Komponente. Es bietet eine bessere Möglichkeit, nach jedem Sprint durch Beta-Tests der Software wertvolles Feedback zu erhalten. Dies liefert wichtige Rückmeldungen früher im Projekt, so dass Änderungen nach Bedarf vorgenommen werden können.

Qualitätsverbesserung

Die Projekte sind in überschaubare Einheiten unterteilt, was es für das Team einfacher macht, sich auf qualitativ hochwertige Entwicklung, Tests und Zusammenarbeit zu konzentrieren. Durch Erstellen von Builds und Durchführen von Tests oder Überprüfungen während der gesamten Iteration können Defekte und Fehlanpassungen frühzeitig gefunden und behoben werden, wodurch die Gesamtqualität verbessert wird.

 Gibt Ihrem Team ein Ziel

Die meisten agilen Prozesse konzentrieren sich auf die Schaffung eines Gemeinschaftsgefühls von Eigentümerschaft und Zielen für alle Teammitglieder. Auch dies gibt Ihrem Team einen Zweck, anstatt ein falsches Gefühl von Dringlichkeit zu erzeugen. Zielstrebige Teams sind produktiver und fordern sich selbst schneller und effizienter heraus.

Die unternehmerischen Vorteile von Agilen

Agiles Management reduziert die häufigen Risiken, die mit der Lieferung, dem Umfang und dem Budget des Projekts verbunden sind.

Es fördert die Zusammenarbeit zwischen dem Kunden und dem Team und bietet gegenseitigen Nutzen bei der Verminderung der hohen Risiken bei der Entwicklung von Software.

what is agile, agile, what is agile methodology, agile methodology

Im Jahr 2009 verglich Dr. David F. Rico agile mit traditionellen Methoden des Software-Projektmanagements. Während seiner Forschung und Synthese analysierte er 23 agile Prozesse und verglich sie mit 7.500 traditionellen Projekten.

Er fand 20 Vorteile für Agile-Projekte:

• 41% waren in Bezug auf den gesamten unternehmerischen Wert besser

• 83% zeigten schnellere Markteinführungszeiten

• 50% waren höher in der Qualität

• 50% waren weniger teuer

• 83% waren produktiver

Agile Methoden

Es gibt mehrere agile Methoden; alle haben eine ähnliche Philosophie, Eigenschaften und Praktiken. Vom Zeitpunkt der Implementierung an hat jede Agile ihre eigenen Praktiken, Terminologien und Taktiken. Zu den wichtigsten Komponenten der agilen Softwareentwicklungsmethodik gehören:

Scrum

Scrum ist ein Management-Rahmenwerk mit weitreichenden Fähigkeiten, um die Iterationen und die Inkremente in allen Projekttypen zu steuern und zu verwalten. Sie sind leichtgewichtig und können mit anderen agilen Methoden bei verschiedenen technischen Praktiken verwendet werden. Scrums haben in der agilen Softwareentwicklungs-Community an Popularität gewonnen, weil sie einfach sind und eine nachgewiesene Produktivitätssteigerung aufweisen.

Schlank und Kanban

  1. Schlanke Software Entwicklung

Schlanke Software-Entwicklung ist eine Iterationsmethode, die ursprünglich von Mary und Tom Poppendieck entwickelt wurde. Viele der Prinzipien und Praktiken in der schlanken Software-Entwicklung stammen aus der Lean-Enterprise-Bewegung und wurden zuerst von großen Unternehmen wie Toyota genutzt. Diese wertebasierte Methode konzentriert sich darauf, dem Kunden einen effizienten „Wertschöpfungskette“ Mechanismus zu liefern, der den Wert für das Projekt liefert.

Die Hauptprinzipien dieser Methodik sind:

  • Abfall vermeiden
  • Lernen verstärken
  • So spät wie möglich Entscheidungen treffen
  • Ergebnisse so schnell wie möglich liefern
  • das Team bevollmächtigen
  • Integrität schaffen
  • das gesamte Projekt vor sich sehen

Wenn nur die Funktionen ausgewählt werden, die für das System von echtem Wert sind, wird die Produktion von Abfall durch die Priorisierung und Bereitstellung in kleinen Teilen eliminiert. Stattdessen legt die schlanke Methodik Wert auf Geschwindigkeit und Effizienz und stärkt das Vertrauen zwischen Kunden und Programmierern durch schnelles und zuverlässiges Feedback. Es konzentriert sich auf die Idee, dass Kundenanfragen das Produkt „ziehen“. Der Fokus liegt eher auf den schnelleren und effizienteren Entscheidungsfähigkeiten von Einzelpersonen oder kleinen Teams als auf einer hierarchisch gesteuerten Methode. Diese Methode konzentriert sich auf die Effizienz der Ressourcen des Teams und stellt so sicher, dass jeder so produktiv wie möglich ist. 

2.Die Kanban Methode 

Organisationen verwenden die Kanban-Methode, um die Erstellung des Projekts zu verwalten, wobei der Schwerpunkt auf der fortgesetzten Bereitstellung ist und das Entwicklungsteam nicht überlastet werden soll. Wie bei Scrum sind Kanban-Prozesse so konzipiert, dass Teams effizienter zusammenarbeiten können.

Es gibt drei Prinzipien:

  1. Visualisieren Sie, was Sie tun: Sehen Sie alle Elemente im Kontext zueinander – informativer
  2. Begrenzen Sie die Anzahl der laufenden Arbeiten (Work in Progress, WIP): Stellen Sie den flussbasierten Ansatz so ein, dass die Teams nicht dazu verpflichtet sind, zu viel Arbeit auf einmal zu erledigen.
  3. Erweitern Sie den Ablauf: Sobald eine Aufgabe beendet ist, beginnen Sie mit dem nächstgereihten Auftrag aus dem Produktbestand

 Die Kanban-Methode fördert die kontinuierliche Zusammenarbeit zwischen Kunde und Team. Es fördert kontinuierliches Lernen und Verbesserungen, um den bestmöglichen Workflow für das Team bereitzustellen.

Extreme Programmierung (XP)

Extreme Programmierung (XP) wurde ursprünglich von Kent Beck beschrieben. Es ist eine der beliebtesten und umstrittensten agilen Methoden. XP ist eine sehr disziplinierte Methode, um qualitativ hochwertige Software immer schneller zu liefern. Der Kunde ist aktiv in das engmaschige Team eingebunden, um fortlaufende Planung, Tests und schnelles Feedback zur Bereitstellung von funktionierender Software durchzuführen. Die Software sollte in Abständen von jeweils drei Wochen geliefert werden.

Die ursprüngliche XP-Methode basiert auf vier einfachen Werten:

  1. Einfachheit
  2. Kommunikation
  3. Feedback
  4. Mut

Sie besteht aus 12 unterstützende Praktiken:

  1. Planungsspiel
  2. Kleine releases
  3. Kundenakzeptanztests
  4. Einfaches Design
  5. Paar-Programmierung
  6. Testgetriebene Entwicklung
  7. Refactoring
  8. Kontinuierliche Integration
  9. Kollektive Eigentümerschaft
  10. Codierungsstandards
  11. Metapher
  12. Nachhaltiges Tempo

 Crystal

Die Crystal-Methode ist einer der leichtesten und anpassungsfähigsten Ansätze in der Entwicklung von Software. Es besteht aus mehreren agilen Prozessen, einschließlich Clear, Crystal Yellow, Crystal Orange und anderen singulär charakterisierten Methoden. Es gibt mehrere Faktoren, die diese Prozesse vorantreiben: die Größe des Teams, wie kritisch das System ist, und die Prioritäten des Projekts.

Die Crystal Methode konzentriert sich auf die Erkenntnis, dass jedes Projekt einzigartige Merkmale aufweist. Daher müssen die Richtlinien und Verfahren speziell auf diese Merkmale zugeschnitten sein.

Die Crystal Methode hat mehrere wesentliche Grundsätze, einschließlich:

  • Teamwork
  • Kommunikation
  • Einfachheit
  • Reflexion
  • Häufige Anpassungen
  • Prozessverbesserung

 Dieser agile Prozess fördert wie andere Methoden frühzeitige und häufige Bereitstellung operativer Software. Es fördert eine hohe Benutzerbeteiligung, Anpassungsfähigkeit und die Beseitigung von Ablenkungen und Bürokratie.

Dynamische Systementwicklungsmethode (DSDM)

Die Dynamische Systementwicklungsmethode (DSDM) entstand 1994, um einen Industriestandard für die Projektabwicklung für die damals so genannte schnelle Anwendungsentwicklung (Rapid Application Development, RAD) bereitzustellen. Obwohl er in den 1990er Jahren sehr populär war, entwickelte sich der RAD-Ansatz unstrukturiert.

Seit seiner Gründung hat sich die DSDM weiterentwickelt und ist gereift; es bietet eine umfassende Grundlage für die Planung, Verwaltung, Ausführung und Skalierung der agilen Prozess- und Iterationsprojekte.

DSDM hat sechs Schlüsselprinzipien, die sich um die unternehmerischen Anforderungen drehen:

  1. Wertschöpfung
  2. Aktive Benutzerbeteiligung
  3. Ermächtigte Teams
  4. Häufige Lieferung
  5. Integrierte Prüfung
  6. Zusammenarbeit der Interessengruppen

 DSDM verwendet einen „Fit fürs Geschäft“-Ansatz für Liefer- und Abnahmekriterien. Es konzentriert sich auf die Formel: 80% Systembereitstellung in 20% der Zeit.

Merkmalsgetriebene Entwicklung (Feature-Driven-Development FDD)Jeff De Luca, entwickelte zusammen mit den Mitwirkenden A.M. Rajashima, Lim Bak Wee, Paul Szego, Jon Kern und Stephen Palmer die merkmalsgetriebene Entwicklung (FDD). Es handelt sich um einen modellgetriebenen, kurzen Iterationsprozess, der zunächst die Form des agilen Modells festlegt. Iterationen zu „Entwickeln fürs Merkmal, Bauen fürs Merkmal“ finden alle zwei Wochen statt. Die Funktionen sprechen Kunden an, weil sie klein und nützlich sind. Das FDD-Design und die Entwicklung werden mithilfe dieser acht Methoden durchgeführt:

  • Modellierung des Domänenobjekts
  • Entwicklung von Merkmalen
  • Eigentümerschaft an Komponenten und Klassen
  • Feature-Teams
  • Inspektionen
  • Konfigurationsmanagement
  • Regelmäßige Builds
  • Sichtbarkeit von Fortschritt und Ergebnissen

 Die Rollen in der Agilen

Im agilen Entwicklungsprozess definiert das Scrum am klarsten, was agil im Projektmanagement ist. Im Scrum-Projekt gibt es drei Rollen: Product Owner, Scrum Master und Teammitglieder.

Der Product Owner (PO) überwacht alle unternehmerischen Anforderungen des Projekts, um sicherzustellen, dass das richtige Produkt in der richtigen Reihenfolge gebaut wird. Ein guter PO gleicht die konkurrierenden Prioritäten aus, steht dem Team zur Verfügung und trifft Entscheidungen über das Projekt.

Der Scrum Master ist der Coach des Teams. Er hilft dem Team, effektiv zusammenzuarbeiten. Scrum Master betreuen das Team, indem sie Barrieren abbauen, die den Fortschritt beeinträchtigen, Meetings und Diskussionsgruppen moderieren, den Fortschritt verfolgen, Probleme lösen und andere Projektmanagementaufgaben wahrnehmen.

Das Team arbeitet zusammen, um den besten Ansatz zu ermitteln, um die vom PO beschriebenen Produktziele zu erreichen. Das Team entscheidet, welche Mitglieder bestimmte Aufgaben verwalten und beschreibt die technischen Praktiken, die zur Erreichung der gewünschten Ziele erforderlich sind.

Wie passt die Rolle des Scrum Master in die agile Software Entwicklung?

In agilen Projektmanagementpraktiken ist der Scrum Master vergleichbar mit dem Projektmanagers des 21. Jahrhunderts. Im Gegensatz zu herkömmlichen Projektmanagern wird der Scrum Master jedoch nicht für den Erfolg oder Misserfolg des Projekts verantwortlich gemacht.

Seine Autorität erstreckt sich nur auf den Prozess. Die Erfahrung des Scrum Masters in diesem Prozess motiviert und leitet das Team auf höchstem Niveau. Andere traditionelle Managementfunktionen wie Verantwortung für Projektumfang, Kosten, Personal und Risikomanagement sind weiterhin Aufgabe des Projektmanagers.

Überraschung: Agile Organisationen sind hierarchisch!

Ein häufiges Missverständnis über agile Organisationen ist, dass sie nicht hierarchisch oder flach sind. Nichts ist weiter von der Wahrheit entfernt. Die Spitzenmanager geben immer noch die Richtung und den Ton für den Rest der Organisation an und die Leute werden immer noch gefeuert, wenn sie ihre Arbeit nicht machen. Der Drang nach mehr Leistung ist noch unerbittlicher als in traditionellen, bürokratischen Organisationen. In einer Bürokratie können sich schlecht arbeitende Mitarbeiter immer noch in den Ecken des Systems verstecken. Aber in einer agilen Organisation gibt es eine radikale Transparenz, die alle Kollegen für ihre Handlungen zur Rechenschaft zieht.

Die Hierarchie in einer agilen Organisation ist allerdings ganz anders als in einem bürokratischen System. Die agile Hierarchie basiert auf Kompetenz, nicht auf Autorität. Die Leistung basiert nicht darauf, dem Chef zu gefallen, sondern auf der Wertschöpfung für den Kunden. Die Organisation verwendet einen dynamischen horizontalen und vertikalen Kommunikationsansatz, der sehr interaktiv ist. Ideen können von jeder Person in jeder Position kommen, einschließlich dem Kunden. Es ist ein Netzwerk, das ständig wächst, lernt und sich an den laufenden Fluss anpasst; durch die Nutzung der gebotenen Möglichkeiten erhöht sich die Wertschöpfung für die Kunden. Wenn es richtig gemacht wird, führt die fortgesetzte Lieferung von mehr Wert für die Kunden durch weniger Arbeit zu wertvolleren Rückflüssen an die Organisation.
Die Agile macht die Unterschiede zwischen Ausbeutung und Exploration deutlich. In einer agilen Organisation suchen alle Mitglieder ständig nach Möglichkeiten, dem Kunden mehr Wertschöpfung zu verschaffen.

In den frühen Jahren des agilen Managements glaubten die Kritiker, dass die kleinen Teams nie mit großen, komplexen Problemen fertig werden könnten. Aber sie lagen falsch. Alle Teams sind Teil eines verwebten Netzwerks, das durch laufende Gespräche zwischen allen Beteiligten, die sich auf gemeinsame Ziele konzentrieren, vorangetrieben wird. Die gemeinsamen und konsistenten Bewegungen aller Beteiligten bieten eine solide Plattform, die es kleineren Teams ermöglicht, komplexere Probleme zu bewältigen. Dies ist bei weitem ein viel besseres System als die bürokratische Methode.

Der agile Prozess

Der agile Prozess bricht ein größeres Softwareprojekt in mehrere kleinere Teile herunter, die in Inkrementen und Iterationen entwickelt werden können. Studien haben gezeigt, dass eine negative Korrelation zwischen Projektgröße und Erfolg besteht (d. h. je kürzer das Projekt, desto höher die Erfolgsquote).Der agile Ansatz reduziert die Größe des Projekts, indem mehrere kleinere Projekte erstellt werden. Dieser Iterationsansatz unterscheidet das agile Management von anderen Managementmethoden.

Im Gegensatz zu anderen Methoden verwendet das agile Management Iterationen während der Planungs- und Entwicklungsphasen. Jede Iteration dauert normalerweise eine Woche. Während dieser Sitzungen arbeiten das Projektteam und das Team des Kunden zusammen, um Prioritäten zu setzen, was der Iteration hinzugefügt werden muss.

Das Endergebnis ist eine operative Software, die dem Kunden in einer produktionsähnlichen Umgebung schnell geliefert wird. Kunden können dann ihr Programm testen und bei Bedarf Änderungen vornehmen. Während des gesamten Prozesses werden viele Releases vorgenommen, wenn Änderungen am Programm durchgeführt werden. Dieser Iterationsprozess wird wiederholt, bis das Projekt abgeschlossen ist.

Allgemeines Management und Agile

Software Programmierung ist heutzutage eine kritische Komponente für fast jedes Unternehmen. Das bedeutet, dass Agile ein essentieller Prozess für jede Art von Organisation und Form der Arbeit ist. Agile Methodologien, die neue Werte, Praktiken, Prinzipien und Vorteile beinhalten, sind eine bessere Alternative zum traditionellen Befehls- und Steuerungsstil des Projektmanagements. Der agile Prozess verbreitet sich sogar in verschiedenen Branchen und Funktionen, einschließlich der obersten Führungsebene.

Während viele Unternehmen agile Prozesse anwenden, arbeiten sie immer noch mit einer bürokratischen “von oben nach unten” Methode. In der heutigen digitalen gesteuerten Wirtschaft ist es für Unternehmen unerlässlich, agile Management-Praktiken zu entwickeln. Aber viele Unternehmen haben immer noch Probleme mit diesem Übergang und operieren in einer Befehlskultur. Das spiegelt sich in der Denkweise und den Fähigkeiten der Geschäftsleitung wieder und ist das größte Hindernis, dem Unternehmen heute gegenüberstehen.

Agile Praktiken

Es gibt viele verschiedene agile Praktiken; viele werden auch von nicht agilen Praktizierenden benutzt. Diejenigen, die auf den agilen Prozess umstellen möchten, sollten die verschiedenen Praktiken verstehen, um dabei zu helfen, wie sie die Praxis auf ihr Umfeld anwenden können. Die folgenden Beispiele veranschaulichen, wie Agile-Praktiken angewendet werden können.

Daily Stand-ups

Daily Stand-ups werden auch tägliche Scrum-Meetings genannt. Die Scrum-Meetings werden täglich vom Team abgehalten, um relevante Informationen miteinander zu teilen. Diese Treffen sollen alle Teammitglieder gleichermaßen informieren und über den Status des Projekts auf dem Laufenden halten. Der Schlüssel zu jedem Meeting ist die Kürze. Während der täglichen Scrum-Meetings sollte jedes Mitglied diese drei Fragen beantworten:

  1. Was habe ich gestern gemacht?
  2. Was werde ich heute tun?
  3. Welche Probleme behindern meinen Fortschritt?

User Story Eine User Story ist eine kurze Beschreibung der vom Endbenutzer gewünschten Funktion. Die User Story besteht aus drei Elementen. Sie sind:

  1. Eine schriftliche Beschreibung, Planung der User Story (in der Regel auf eine Karte geschrieben)
  2. Ein Gespräch über die User Story zum besseren Verständnis
  3. Eine Reihe von Tests bestätigt die User Story.

Die User Stories werden aus der Sicht des Endbenutzers geschrieben und verwenden eine Sprache, die sie verstehen. Geschichten fungieren als Währung zwischen Entwicklern und Kunden; beide Parteien verstehen sie klar. Sie können mehr über 4 Gründe erfahren, warum User Stories nicht „fertig“ werden.

Automatisches Testen

Die Implementierung von formalen und genauen automatisierten Tests ist ein wichtiger Bestandteil des agilen Prozesses. Die Tests ermitteln und beseitigen Fehler an ihrer Quelle, um sicherzustellen, dass ein operatives Softwarepaket an den Kunden geliefert wird. Entwickler können den Testcode unter Verwendung eines Sicherheitsnetzes unter Verwendung einer Vielzahl verfügbarer Frameworks erstellen und gleichzeitig den Softwarecode entwickeln. Diese Methode schützt andere Funktionen, während Änderungen an der Software vorgenommen werden. Es ist auch eine schnellere und effizientere Möglichkeit, Fehler im Programm zu finden.

Automatische Builds

Ein Schlüsselprinzip von agilen Methoden ist es, zu allen Zeiten eine laufende Software zu haben. In der Praxis besteht die einzige Möglichkeit darin, das sicherzustellen, indem die gesamte Softwareentwicklung regelmäßig und automatisch kompiliert, aufgebaut, implementiert und getestet wird. Dies geschieht normalerweise mehrmals am Tag und mindestens einmal, wenn ein Entwickler Code als Hauptteil des Entwicklungszweiges „eincheckt“.

Agile Planung: Freigabe, Iteration und Aufgaben

Es gibt drei Ebenen der agilen Entwicklungsplanung: Freigabe, Iteration und Aufgaben. In den Anfangsphasen treffen sich Projektentwickler und Kunden, um die primären User Stories zu besprechen, die für die Software benötigt werden. Der erste Fokus des Meetings liegt auf den Must-Have-Funktionen, um zu bewerten und zu priorisieren, was zu tun ist.

Release-Planung ist eine kundenorientierte Planungssitzung. Sowohl Kunden als auch Entwickler wählen ein Datum für die erste Produkt-Freigabe-Serie. Sie entscheiden gemeinsam, welche User Stories bei jeder Veröffentlichung zu berücksichtigen sind. Die Entwickler konzentrieren sich auf die Bewertung der User Story, während sich die Kunden auf die Auswahl der User Story konzentrieren. Es gibt eine Vielzahl von Formen der Bewertungsmöglichkeiten, die von den Bedürfnissen und Wünschen der Kunden und Entwicklungsteams bestimmt werden.

Iterationsplanung erfordert die Zusammenarbeit zwischen Kunden und Entwicklern, um einen Teil des Freigabeplans zu initiieren. Während der Iterationen definiert und priorisiert der Kunde die User Stories, während die Entwickler einschätzen, wie viel Aufwand für die Entwicklung jeder User Story erforderlich ist. Die Zeitachse für Wiederholungen ist viel kürzer und dauert nur Wochen statt Monaten.

Die Aufgabenplanung erfolgt nach der Iterationsplanung. Die Geschichten werden vom Entwicklungsteam in eine Reihe von Schritten zerlegt. Aufgabenlisten werden entwickelt und im Projektraum veröffentlicht, damit sie für alle Gruppenmitglieder sichtbar sind. Zu den üblichen Werkzeugen, die während dieser Planungssitzung verwendet werden, gehören Post-it-Notizen und Whiteboards. Jeder Entwickler meldet sich freiwillig, um eine Aufgabe auszuführen und eine Bewertung abzugeben.

Paarprogrammierung Bei der Paarprogrammierung arbeiten zwei Entwickler als Team an einer Programmieraufgabe. Eine Person ist der Fahrer, die Person, die den Code eingibt, während die zweite Person der Navigator ist, derjenige, der die nächsten Schritte plant, während er den Code in das Gesamtbild einfügt.

Eine häufige Kritik an der Paarprogrammierung ist die Verschwendung von Personal, um die Aufgabe zu erfüllen. Es sollten nicht zwei Leute notwendig sein, um eine Arbeit zu erledigen, die von einer Person erledigt werden kann. Während die Programmierung mehr Arbeitskraft verbraucht, rechtfertigt das endgültige Ergebnis die Kosten. Eine kürzliche Studie hat herausgefunden, dass die Paarprogrammierung 15% mehr Aufwand benötigt, aber 15% weniger Defekte produziert. Während die Ergebnisse von Fall zu Fall variieren können, stellen Entwickler häufig fest, dass die Verringerung der Fehler die zusätzlichen Ressourcen wert ist.Ein weiterer Vorteil ist, dass die Paarung nicht in Vollzeit erforderlich ist. Teams können ihre eigenen Regeln und Zeitpläne festlegen, wenn sie entscheiden, dass es besser ist, ein Paar zu bilden.

Kontinuierliche IntegrationWährend der fortlaufenden Integration geben Entwicklungsteams ihren Code mehrmals im Laufe des Tages in das System ein. Eine Reihe von Tests wird ausgeführt, bevor der Code hinzugefügt wird, um sicherzustellen, dass andere bereits vorhandene Tests oder Funktionen im System nicht beschädigt werden. Der Entwickler muss zuerst alle Tests für das System ausführen und etwaige Probleme beheben, bevor die anderen Codes integriert werden können. Je häufiger ein Code in die Software integriert wird, desto schneller und einfacher ist es, Codes zusammenzuführen und Fehler zu erkennen.

 Retrospektiven

Retrospektiven finden am oder gegen Ende eines Projekts statt. Sie geben allen Beteiligten die Möglichkeit, zurückzuschauen und über die während des Prozesses geleistete Arbeit nachzudenken. Das gesamte Team analysiert, was gut gelaufen ist, was nicht, wo Verbesserungen vorgenommen werden können, und vor allem, wie sie die gelernten Lektionen in umsetzbare Veränderungen umwandeln können.

Fazit

Agiles Management ist ein spannender und faszinierender Ansatz für die Softwareentwicklung. Durch die Integration der Produktentwickler und Kunden in die Planungs- und Implementierungsprozesse wird das Ergebnis für alle Beteiligten lohnender.Wenn agile Programmierung richtig gemacht wird, können Organisationen kontinuierlich Möglichkeiten finden, die Wertschöpfung für ihre Kunden zu erhöhen. Es verleiht denjenigen, die aktiv an dem Projekt arbeiten, mehr Sinnhaftigkeit und schafft eine positivere Erfahrung für den Kunden, die für das Unternehmen ein reicheres Endergebnis ergibt.

Luís Gonçalves

About Luís Gonçalves

https://plus.google.com/u/0/+LuisGonçalves1979

Luis Gonçalves is an Entrepreneur, Author & International Keynote Speaker. He works with Senior Executives to implement his ‘Organisational Mastery’ system so they can greatly increase the effectiveness and efficiency of their organisations; enabling them to become recognised and highly rewarded Leaders.

Comments

Share your point of view

X