Freitag, 18. Mai 2012

Was sind Erfolgsfaktoren in der agilen SW-Entwicklung ?


Hallo liebe Leser,

In diesem Abschnitt machen wir uns Gedanken zu den Erfolgsfaktoren – wie angekündigt - bei der Softwareentwicklung mit agilen Methoden. Dabei erscheint es mir als sehr wichtig auch die Kehrseite der Medaille zu diskutieren. Denn auch mit den agilen Methoden wird nicht alles perfekt Verlaufen, weder am Anfang noch später!

Deshalb ist es wichtig –abgestimmt auf die Mitarbeiter und Organisation (im operativen, normativen und strategischen Umfeld) - die Erfolgsfaktoren und deren Wechselwirkung akribisch zu analysieren. Diese Untersuchung und Festlegung der Schlüssel-Faktoren sollte bei der Initialisierung oder am Anfang des Projektes gemacht werden.
Der ‚schnelle Erfolg’ ist sicher einer der zentralen Schlüssel-Faktoren. Er bringt die Kritiker zum Schweigen – vorläufig - und hält die Motivation somit auch die Energie der Beteiligten, aufrecht. In enger Wechselwirkung mit dem ‚schnellen Erfolg’, stehen die Mitarbeiter und deren Einstellung zum Vorhaben. Da ist es wichtig, dass sie nicht zu den grössten Kritikern gehören! Um das zu verhindern ist im Vorfeld Überzeugungsarbeit zu leisten: Das Thema und seine Vorteile in kleinen Schritten näher zu bringen. Ein entscheidender Faktor für die Mitarbeiter ist auch die Disziplin. Die Vorgaben/Prozesse sind einzuhalten. Ist das nicht der Fall wird es chaotisch oder zu organisiert (die Agilität ist dann weg!).

Vorwärts gehen, auch wenn’s mal nicht so rund läuft  ist ebenfalls sehr wichtig. Denn je mehr Erfahrung eingespielt wird, desto mehr Erfolg lässt sich erzielen. Mit Erfolg lässt es sich einfacher Arbeiten und Führen.
Die Definition der Arbeitspakete wie die Reihenfolge der Verarbeitung ist entscheidend.

Die Grösse / Umfang der Pakete soll gering gehalten werden. Coding und Testing sind in einem Schritt (Exetreme Programming). Vorteil: Der Code kann in kleinen Stücken dem Produkt zugefügt werden. Somit wird der Überblick bewahrt und die Qualität bleibt hoch (stabil, wenig Bugs). Dabei sind die Arbeitspakete auch nach ihrer Komplexität zu strukturieren. Zu beginnen ist mit jenem Bündel, das den geringsten Schwierigkeitsgrad aufweist. Somit ist der Einstieg ins Thema nicht zu heftig und bei den komplexen Brocken weist der Entwickler schon so viel implizites Wissen auf, dass die Lösung einfach erscheint. Da setzt ein wichtiger Punkt der agilen Softwareentwicklung ein: Die Codierer sind in der Lage sämtliche Arbeitspakete zu bearbeiten! Somit wird der Stapel an Paketen abgearbeitet, wie beim Ticketsystem auf der Post!

Der Kunde kann einfach in die Entwicklung seines Systems eingebunden werden, indem ihm z.B. bis zur Ticket Nummer 45 das Produkt vorgeführt, zum Testen oder für den operativen Gebrauch übergeben wird.

Die oben dargestellten Keyfactors beeinflussen das Planen wie das Dokumentieren. Es wird den Zyklen / Prozessen angepasst. Was bedeutet, dass nur dokumentiert wird was auch benötigt und in kurzen Schritten geplant wird. Das Projekt wird somit sehr flexibel. Requirement-Engineering ist dadurch auch während der Entwicklung von Software möglich.

Legen wir zum Schluss den Fokus auf mögliche Randbedingungen, die nicht unerheblich für die Firma sein können. Wenn die Strukturen in einem Unternehmen auf Agilität umgestellt werden, hat das auch einen Einfluss auf das Zusammenspiel zwischen Unternehmen, Kunden und Mitarbeiter.
Die Kultur, das Aufgabenfeld und die Arbeitsmethoden können für einzelne Mitarbeiter ändern. Mit Schulungen, Gesprächen und aufzeigen von Chancen sollte dem Rechnung getragen werden.


Bis zum nächsten Bericht, gute Zeit und wenig Stress,
 Marcello

Keine Kommentare:

Kommentar veröffentlichen