Das Überschätzen von Software Projekten

Das Überschätzen von Software Projekten

Wenn es Schwierigkeiten gibt, den Umfang eines Softwareprojekts zu beurteilen, sollte man nicht zu einer Überschätzung neigen.

„Eine gute Schätzung ist eine Schätzung, die einen hinreichend klaren Überblick über die Realität des Projekts bietet. Es ermöglicht der Projektleitung, passende Entscheidungen darüber zu treffen, wie das Projekt gesteuert werden soll, um seine Ziele zu erreichen.“

Die vorangehenden Einschätzungen sind ein schwieriger Teil jedes Softwareentwicklungsprojekts. Oft wird davon ausgegangen, dass das Schreiben neuer Software dem Bau eines Autos ähnelt, bei dem man über ein Team an erfahrenen Technikern, eine Projekt-Roadmap und eine Liste von definierten Anforderungen verfügt, die innerhalb eines bestimmten Zeitraums erfüllt werden müssen.

Warum ist es dann so wichtig, eine möglichst genaue Schätzung abzugeben? Während die Automechaniker mit bekannten Materialien, etablierten Techniken und Prozessen arbeiten, bei denen alles bis ins kleinste Detail geplant ist, bauen Softwareentwickler viele Dinge von Grund auf neu und müssen entscheiden, wie alles zusammengesetzt werden soll und auch noch nach Kundenwunsch funktioniert.

Es ist klarerweise schwieriger vorauszusagen, wann alles fertig sein wird, wenn die kommenden Herausforderungen nicht bekannt sind, denen man unterwegs begegnet. Dies bedeutet aber nicht, dass es ganz unmöglich ist, eine gute Schätzung zur Projektdauer vorzunehmen, und es ist sicherlich keine Entschuldigung für eine völlige Überschätzung des Projekts. Wir behaupten nicht, dass wir Experten für sekundengenaue Schätzungen sind, aber wir kennen uns auf jeden Fall ein wenig aus und möchten einige unserer praktischen Erfahrungen teilen.

Warum schätzen?

Unternehmen brauchen Gewissheit darüber, was und wann sie es bekommen. Leider gibt es für die meisten Unternehmen nur sehr selten Gewissheit über das Design und die Entwicklung von Software. Wie viel kostet die Software? Kunden können und sollten nicht versuchen, diese Zahl selbst zu bestimmen, oft werden also Experten herangezogen.

Warum ist Überschätzung eine schlechte Idee?

Trotz aller gängigen Argumente, dass eine Überschätzung sowohl für Kunden als auch für Auftragnehmer weniger gefährlich ist als eine Unterschätzung, sollen trotzdem zu große Zeitenschätzungen vermieden werden, mögen sie auch noch so „zutreffend“ sein. Der Grund ist einfach. Wenn du die Projektdauer zu weit überschätzt, aber alles innerhalb der Hälfte dieser Zeit erledigt wird, heißt das nicht unbedingt etwas Gutes. Diese - scheinbar vernünftige - Vorsichtsmaßnahme der Überschätzung kann dir das Vertrauen eines Kunden kosten.

Angenommen, du musst einer Website eine komplexe Suchfunktion hinzufügen, und du schätzt die Fertigstellung auf etwa 40 Stunden Arbeitszeit brauchen wird. Dann lieferst du die fertige Arbeit in 20 Stunden. Was sagt das über dich aus? Heißt es, dass du schnell arbeitest? Nicht unbedingt. Es besteht genau so gut auch die Möglichkeit, dass der Kunde davon ausgeht, dass du inkompetent und nicht wirklich vertrauenswürdig bist.

Normalerweise haben Kunden schon eine ungefähre Vorstellung davon, wie viel Zeit Entwickler benötigen, um ihre Arbeit zu erledigen, basierend auf früheren Erfahrungen. Sie können deine Schätzung auch mit denen anderer Auftragnehmer vergleichen. Deshalb versucht man eher, die Kundenerwartungen nicht durch Überschätzung zu ruinieren. Nach unserer Erfahrung ist es besser, den Kunden darüber zu informieren, dass die ursprüngliche Zeiteinschätzung überschritten wird, als wie im Vorhinein schon eine ewig lange Schätzung abzugeben. Vertrauen und offene Kommunikation ist immer von Vorteil.

Ein weiteres Argument gegen Überschätzungen sind auch die Parkinsonschen Gesetze, welche besagen:

„Arbeit dehnt sich genau in jenem Maße aus, wie Zeit für ihre Erledigung zur Verfügung ist.“

Wenn du dem Team einen Monat Zeit gibst, um ein Projekt zu liefern, welches aber bereits in 19 Tagen abgeschlossen sein könnte, nutzt das Team die zusätzliche Zeit für redundante Überarbeitungen, Wiederholungen und Verbesserungen. Solche unnötigen Leerlaufzeiten möchte man vermeiden, Zeit ist eine wertvolle Ressource und es gibt immer neue Aufgaben, die sich besser lohnen als Projekte mit künstlich aufgeblasenen Deadlines.