Projektmanagement Softwareentwicklung

Softwareentwicklung für Projektleiter, Manager und Entwickler

IT-Projektmanagement RSS
  • Agile = modern = gut?

    Jörg Hinrichs

    Agile Softwareentwicklung: Was ist das und kann ich das in meinem Projekt verwenden?

    Agile Softwareentwicklung ist heutzutage in aller Munde. Fast muss es einem etwas peinlich sein, noch nicht agil zu entwickeln. Oder (Gott bewahre) gar nicht so genau zu wissen was sich eigentlich dahinter verbirgt. Was also bedeutet agile Softwareentwicklung wirklich? Und ist sie auch für mein IT-Projekt geeignet?

    Zunächst mal muss man festhalten, dass es “die agile Softwareentwicklung” an sich gar nicht gibt. Vielmehr existieren eine Reihe von neuen Stilrichtungen und sie setzen neue Techniken in unterschiedlichem Maße und in verschiedenen Kombinationen ein. Die bekanntesten sind:

    • Scrum
    • Extreme Programming (XP)
    • Test-Driven Development (TDD)

    Die von diesen Entwicklungsprozessen eingesetzten Techniken sind auf jeden Fall sehr innovativ, ihr Nutzen wird jedoch teilweise sehr unterschiedlich bewertet. Darunter finden sich beispielsweise:

    • User-Stories als Anforderungen
    • Pair-Programming
    • Test-First Entwicklung
    • Ständiges Refactoring als fester Bestandteil der Entwicklung
    • Release early – Release often
    • Collective Code-Ownership
    • Iterationen mit zeitlich fixiertem Umfang

    Um es gleich vorweg zu nehmen: Ich glaube, dass alle diese Techniken bei der Durchführung von Softwareprojekten eine große Hilfe sein können. Allerdings müssen Sie sich über eines im Klaren sein:

    Agile Softwareentwicklung ist nicht die Verwendung neuer Techniken – Agile Softwareentwicklung ist zuerst und vor allem ein Paradigmenwechsel!

    Agil zu sein macht nur dann Sinn, wenn Sie auch neue Denkmuster etablieren – und zwar auf allen Ebenen bis hin zum Kunden, nicht nur in der Codierung. Das ist ein Prozess, der nicht von heute auf morgen stattfinden wird.

    Worin besteht also der Paradigmenwechsel? Der vielleicht wichtigste Punkt dabei ist die “Umverteilung” der Verantwortung weg von einzelnen Personen hin zum Team. Aufgaben, die vorher klar einzelnen Personen zugeordnet waren, werden jetzt von allen Teammitgliedern erledigt. Die Aufwandsschätzung z.B. wird gemeinsam durchgeführt. Es gibt keinen Chefentwickler mehr, der für das Design zuständig ist: Jeder designt das Feature, welches er gerade entwickelt und jeder kann ein vorhandenes Design ändern, wenn er es für richtig hält. Es gibt auch keine Zuordnung von Entwicklern zu bestimmten Codeteilen. Stattdessen kennt jeder Entwickler (mehr oder weniger) den gesamten Code und manipuliert diesen auch bei Bedarf.

    Das erfordert ein neues Bewusstsein der beteiligten Entwickler und eine Übernahme dieser neuen Verantwortung. So etwas muss über einen längeren Zeitraum geübt und auch immer wieder problematisiert werden, bis es irgendwann “von alleine” funktioniert. Rechnen Sie also damit, dass es eine Weile dauert und das während dieser Zeit die Produktivität nicht größer ist als vorher (sie kann sogar leicht sinken).

    Viele Teams glauben, dass sie agil entwickeln, haben aber tatsächlich lediglich einige agile Techniken übernommen, ohne die dazugehörige Philosophie zu adaptieren. Das kann sogar kontraproduktiv werden und dem Projekt am Ende mehr schaden als nützen.

    Fazit:
    Agile Softwareentwicklung ist auf jeden Fall eine spannende Sache mit viel Potential. Wie so oft bei IT-Projekten muss man aber eine Menge richtig machen, um dieses Potential auch auszuschöpfen. Und man braucht die richtigen Mitarbeiter dafür, Menschen, die keine Angst vor Verantwortung haben und offen für neue Techniken sind.

    6 Comments

6 Responses to “Agile = modern = gut?”

  1. geiler Artikel…wo ist der Facebook button? :-)

  2. JoergHinrichs said on

    Berechtigte Frage, bitte sehr :)

  3. Ich sehe den Schwerpunkt der Problematik eher in der Fachabteilung, als in der Entwicklung. Die iterativen Zyklen des V-Modells oder des Wasserfallmodells sind tief in den Köpfen der Belegschaft eingebrannt. So wird der Wille/Versuch “agile” zu Entwickeln nach außen kommuniziert, aber intern verfährt man genauso wie vor 10 Jahren! Die bekannten Muster, Funktions-, Integrations- und Systemtest, werden lediglich umbenannt oder 1 zu 1 umgesetzt. Aber schöner Einstieg in das Thema!

  4. I don’t agree in all parts of your argumentation, but overall it is a real good article with lots of meaningful thoughts. Best Regards, Frank

  5. I conceive you have remarked some very interesting details , appreciate it for the post. ginecologie

  6. Das große Problem mit Agiler Software-Entwicklung ist, dass die meisten Entwickler sie nicht über ihren Zweck definiert sehen, sondern über das sog. Agile Manifesto.

    Siehe dazu:

    http://greiterweb.de/spw/Best_practice_Agile.htm
    http://greiterweb.de/spw/dox/Agile_muss_abstrakt_definiert_sein.pdf
    http://ggreiter.wordpress.com/category/software-engineering/agile-methodik/
    http://ggreiter.wordpress.com/category/agile-software-development/

Leave a Reply