Aufwände in Software-Projekten verlässlich und schnell schätzen
Aufwände in Software-Projekten verlässlich und schnell schätzen
Software-Projekte sind berüchtigt dafür, dass sie immer wieder den gesetzten Zeitrahmen sprengen. Die Ursache liegt oft in einer falschen Einschätzung des Aufwands zu Projektbeginn. Jeder, der schon einmal eine Aufwandsabschätzung für ein Softwareprojekt erstellt hat, kennt die Schwierigkeiten: Fragt man verschiedene Entwickler, wie lange es dauern wird, einen bestimmten Teil der Software zu entwickeln, so sagt der eine: "Das wird ziemlich schnell gehen" und der andere: "Das wird viel komplizierter als es im Augenblick aussieht." Die Angaben können sich durchaus um den Faktor zwei unterscheiden.
Fragt andererseits ein Entwickler nach Details zu den Anforderungen, wird er regelmäßig vertröstet: "Das können wir im Augenblick noch nicht sagen. Wir wollen im Moment nur möglichst bald und möglichst genau wissen, wie lange die Entwicklung dauern wird, denn davon hängt unser Gewinn oder Verlust ab".
Dieser Artikel beschreibt ein Verfahren, das unter solchen Umständen trotzdem in kürzester Zeit verlässliche Aussagen liefert. Es hat sich in der Praxis bewährt und kann sofort eingesetzt werden.
Ausgangssituation
Wie lange dauert eine Reise durch China ?
Eine Aufwandsabschätzung muss in vielen Fällen schon zu einem Zeitpunkt erstellt werden, zu dem noch nicht einmal feststeht, was die zu entwickelnde Software alles leisten soll. Der Aufwand hängt allerdings ganz wesentlich von diesen Anforderungen ab. Sind sie nicht bekannt, gleicht die Frage nach dem Aufwand der Frage, wie lange eine Reise durch China dauert. Auch diese (viel einfachere) Frage lässt sich nicht genau beantworten, solange nicht klar ist, welche Orte besucht werden sollen und was man dort alles unternehmen möchte.
Dieser Vergleich zeigt, dass der Aufwand (die Reisedauer) neben den Anforderungen (dem Besuchsprogramm) noch von einer Reihe weiterer Faktoren abhängt, beispielsweise von einigen Entscheidung bezüglich des "WIE". Wie wird die Reise angetreten? Mit dem Flugzeug, der Bahn, dem Auto, mit dem Fahrrad oder gar zu Fuß? Auch Detailfragen wie "Autotyp" oder "Flugpreise" sind wichtig. In Software-Projekten werden diese grundsätzlichen Fragen in der so genannten Architektur beantwortet, die Detailfragen im Design.
In der Architektur legt der Entwickler unter anderem fest, mit welcher Programmiersprache und mit welchen Tools gearbeitet und in welcher Umgebung die Software geschrieben wird. Im Design wird beispielsweise das Objektmodell, die Bedienoberfläche (oder das User-Interface) und das Datenbankmodell erstellt.
So erklärt sich, dass ein Entwickler die Frage nach dem Aufwand oft mit dem Hinweis kontert, zunächst müsse die Architektur, das Design oder Ähnliches erstellt werden. Der Auftraggeber dagegen hält dieses Argument eher für eine Ausrede oder manchmal sogar für ein Zeichen von Inkompetenz.
Beide Positionen sind bis zu einem bestimmten Punkt richtig. Wie diese beiden gegensätzlichen Positionen miteinander versöhnt werden können, soll im folgenden erläutert werden.
Welche Informationen werden theoretisch benötigt?
Im ersten Schritt muss die Tatsache akzeptiert werden, dass der Aufwand tatsächlich von allen folgenden Punkten abhängt, die - soll der Aufwand exakt bestimmt werden - alle im Detail geklärt sein müssen:
- Was soll gemacht werden? (Anforderungen)
- Wie soll es gemacht werden? (Architektur, Design)
- Wer wird es machen? (Anzahl, Erfahrung, Wissen und Fähigkeiten der Mitarbeiter)
- Unter welchen Rahmenbedingungen soll es gemacht werden? (Tools, Unternehmen etc.)
- Wann und wie viel wird gearbeitet? (Verfügbarkeit der Mitarbeiter, Urlaub, Feiertage, Arbeitszeiten etc.)
Auf die ersten beiden Punkte wurde bereits weiter oben eingegangen.
Maria Thiel
27.09.2009
Renee Steiner
05.09.2014