Agile Werte - Lizenz von CipDealer

Die Vertreter der agilen Entwicklungsmethodik legen Wert auf:

  1. Neue Rollenverständnisse für Entwickler, Manager und Kunden
  2. Wenig Planungs- und Vorbereitungstätigkeiten
  3. Eine interaktive und iterative Entwicklung
  4. Begrenzte, verhandelte Funktionalität
  5. Einen Fokus auf Qualität, zu erreichen durch Testen

Weniger Hierarchie

Das agile Rollenverständnis gibt dem Team ein großes Gewicht und überlässt diesem die Auswahl und Zuweisung von anstehenden Aufgaben. Der Manager wird als Unterstützer des Teams verstanden, nicht mehr als Entscheider.  Kunden sind nicht mehr nur passive Empfänger der Entwicklungsergebnisse, sondern partizipieren aktiv am Entwicklungsprozess. In vielen Fällen haben Sie im Team auch einen Repräsentanten.

Weniger Planung und Dokumentation

Planungsarbeiten und das Erstellen von Anforderungsdokumenten beanspruchen in nicht agilen Prozessen oft erheblichen Aufwand. Die Befürworter agiler Methoden behaupten, dass die Kunden am Anfang eines Projektes oft gar nicht wüssten, was sie eigentlich wollen. Selbst wenn man plant und Anforderungen zusammenstellt,  so werden diese Arbeiten im Laufe des Projekts  überholt werden und vielfach geändert. Vorab Designs zu erstellen gilt als Zeitverschwendung, weil man noch gar nicht weiß, was funktionieren wird und was nicht.

Statt vorab Anforderungen zu erstellen wird empfohlen, ständig mit dem Kunden zu interagieren. Auf diese Weise erhält das Entwicklungsteam Einsicht in die Problematik des Kunden und gleichzeitig zeitnah Rückkopplung  zum schon erarbeiteten Entwicklungsergebnis.  Anstelle dessen wird die interaktive Vorgehensweise beim Bau des Systems vorgezogen. Notwendig werdende Änderungen am Design werden durch „refactoring“ erreicht.

Agile Entwicklung ist durch die starke Einbindung des Kunden interaktiv und in feste Zeitabschnitte („Iterationen„) eingeteilt. Zu Beginn einer jeden Iteration wird eine Liste mit der gewünschten Funktionalität erstellt, aus der das Team die Aufgaben auswählt, die den höchsten Business Value bzw. ROI  versprechen.

Verhandelt wird nicht der Termin, sondern der Funktionsumfang, der am Ende eines Zeitabschnitts geliefert werden kann.  Agile  Entwickler halten es für unrealistisch, vorab einen Gesamtplan zu erstellen, bei dem sowohl ein Funktionsumfang wie auch ein Liefertermin für ein fertiges Produkt festgelegt werden.  Die agile Planung ist immer nur für den nächsten Zeitabschnitt verbindlich, der sich in der Regel über wenige Wochen erstreckt.

Qualität wird nach dem Verständnis der agilen Methodik hauptsächlich durch Testen erreicht. Einen wichtigen Platz nehmen dabei die Regressionstests ein, die sicherstellen sollen, dass sich die Software stetig verbessert. Andere Ansätze für verbesserte Produktqualität wie formale Methoden, Reviews oder Design spielen praktisch keine Rolle.

Was sind die agilen Werte wert?

Scrum - Lizenz von ClipDealer

Es gibt viele Entwickler, die von der agilen Methodik und dort vor allem von Scrum und Kanban begeistert sind. Das resultiert nicht zuletzt daher, dass Entwickler Code schreiben möchten und keine Dokumente. Auch ist es in der Regel unangenehmer gegen einen Plan zu arbeiten, als mehr oder weniger selbst festlegen zu können, was man in den nächsten zwei Wochen erreichen möchte.

Weniger Hierarchie bedingt geringere Produktkomplexität

Einem Team größere Entscheidungskompetenz einzuräumen ist bei geringem Projektumfang unproblematisch und kann die Motivation erhöhen. Wird das Projekt  größer, steigt die Anzahl der Schnittstellen zwischen den Teammitgliedern überproportional an und  man muss Team-Cluster bilden. Die Schnittstellen zwischen den Teams wird durch einzelne Vertreter der Cluster bedient. Diese Vertreter heißen „Manager“.  Ab diesem Moment wird mehr schriftliche Dokumentation notwendig, weil man nicht mehr davon ausgehen kann, dass jedes Teammitglied jederzeit mit jedem anderen bei Bedarf sprechen kann. Die Erfahrung zeigt, dass agile Methoden schlecht skalieren.

Iterativ als Euphemismus für planlos?

Der Verzicht auf eine längerfristige Planung und das Erstellen von Anforderungen vor Beginn der Umsetzung ist vor allem dann effektiv, wenn Systeme sich  inkrementell  entwickeln lassen. Die agile Vorgehensweise bietet sich deshalb bei der Weiterentwicklung existierender Systeme an und überall dort, wo der Umbau einer existierende Lösung nicht mehr kostet, als das Sammeln von Anforderungen vorab.  Man kann sich aber leicht vorstellen, dass es nicht ratsam ist, nach dieser Methode ein Zweifamilienhaus oder eine Kathedrale zu bauen. Gleiches gilt für solche Systeme, in denen nicht nur Software sondern auch die Entwicklung von Hardware eine Rolle spielt.

Im Takt arbeiten ist hilfreich

Eine Entwicklung in feste Zeitabschnitte zu gliedern ist unabhängig von agiler oder klassischer Methodik eine zu empfehlende Vorgehensweise. Durch den festen Rhythmus gibt man eine Vorgabe für die Planung, bei der man sich überlegen muss, welche neue Funktionalität man in einem wenige Wochen dauernden Zeitblock realisieren kann.

Testen ist kein Fehler

Entwickler schreiben gerne  Code, und das Schreiben von Regressionstests kann viel Spaß machen.  Unabhängig von der Art der gewählten Methodik ist es sinnvoll, automatische Tests zu haben. Tests dienen dazu, Fehler zu entdecken. Die Wahrscheinlichkeit der Entdeckung ist immer kleiner als 100 %. Insofern ist es oft effektiver, einen Fehler zu verhindern, statt ihn später suchen zu müssen. Die Fokussierung auf die Fehlerentdeckung  anstelle von Fehlervermeidung ist deshalb nur dann zu vertreten, wenn der Aufwand für die Erstellung der Tests wesentlich geringer ist, als der Aufwand für ein sorgfältiges Design.

Die Rolle der Werkzeuge

In der Welt des agilen Projektmanagements existiert eine ganze Reihe von Scrum Software, die den Entwicklern das Leben erleichtert. Komplizierte Projektmanagement-Software wird dann  nicht mehr benötigt. Neben Scrum Tools spielen auch Hilfsmittel für kontinuierliche Integration eine große Rolle. Dazu gehören Buildsysteme wie zum Beispiel Jenkins und Konfigurationsmanagementsysteme wie Git und Subversion.

 

Bitte folgen Sie uns:
Agile Werte
Markiert in:    

Schreibe einen Kommentar

Social media & sharing icons powered by UltimatelySocial