05.02.2011

Scrum - Komplexität der Softwareentwicklung

Im Rahmen einer jeden Entwicklung wird eine Menge an Anweisungen erzeugt, welche es ermöglichen eine Mensch-Maschine oder Maschine-Maschine Kommunikation zu etablieren.
Der Anforderungsgrad einer entwickelten Software kann von simpel bis unvorstellbar komplex reichen und somit kann auch der Grad der erforderlichen Genauigkeit schwanken. Mit dem Zusammenspiel von komplexen Anforderungen mit hoher Genauigkeit kann der Grad der Komplexität schnell unermesslich groß werden.

Einflussgrößen bzgl der Komplexität

Ken Schwaber führt als Einflussgrößen die Menschen, die gewählte Technologie und die Anforderungen an. Ich persönliche sehe aber auch noch die Zeit als kritische Einflussgröße. Zwar nicht unmittelbar, wenn man die reine Komplexität einer Anforderung misst, aber doch unmittelbar, da die Zeit immer Einfluss auf die Menschen und die gewählte Technologie hat.

Anforderungen sind in der Praxis meist nicht trivial. In den meisten Fällen bleiben die Anforderungen auch nicht konstant, sondern werden im Rahmen der Entwicklung modifiziert oder auch komplett überarbeitet. Die gestellten Anforderungen kommen in der Regel vom Kunden. Die Kunden sind aber nicht ausschließlich die Personen, die ein Interesse an dem Ergebnis des Projektes haben. Somit wird der Begriff Stakeholder eingeführt. Dieser Begriff kennzeichnet wortwörtlich die Interessengruppe, die das Projekt unter Beobachtung hat. Dabei handelt es sich um Investoren, Anwender oder auch einfach nur durch das Projekt betroffene Teilnehmer, wie technische Administratoren. Damit wird es umso schwieriger die Interessen aller Beteiligten unter einen Hut zu bringen.

In der Regel kommen in Softwareprojekten keine einfachen Technologien zum Einsatz. Ken Schwaber hat eine schöne Definition, was Software-Entwicklungsprojekte angeht.
Er bezeichnet diese als "Anwendung moderner, häufig unzuverlässiger Technologien zur Umsetzung geschäftlicher Aufgabenstellungen und Erzielung von Vorteilen gegenüber dem Wettbewerb". Ich finde, dass dies ganz gut passt.

Betrachtet man nun die Abhängigkeit der Technologien und Anforderungen von einander, wird schnell klar, dass diese den Komplexitätsgrad des Projektes maßgeblich beeinflussen. Je weiter die Anforderungen von der Vereinbarung abschweifen, desto komplexer wird das Projekt. Je weniger Gewissheit über die Technologie herrscht, desto komplexer wird das Projekt.


Gewissheit bzgl. der Technologie

Abweichung von den Anforderungen

Komplexität des Projektes











Neben der Dimension der Technologie und der Dimension der Anforderung kommt noch der Faktor der Menschen hinzu. Alle Teilnehmer eines Entwicklungsteams sind in ihren Skills verschiedenen und haben in der Regeln unterschiedliche Standpunkte, Meinungen und Ansichten, die auch noch von persönlichen Emotionen beeinflusst werden. Wird diese Dimension berücksichtigt, so steigt der gesamte Grad der Komplexität um ein Vielfaches.

Scrum versucht diese Komplexität mit den Methoden aus der empirischen Prozessteuerung zu relativieren.

Keine Kommentare:

Kommentar veröffentlichen