Die Frage, wie lange etwas dauert, ist wohl die am häufigsten gestellte Frage im Softwareprojekt. Wie lange braucht die Programmiererin, um eine Funktion zu implementieren oder einen Fehler zu beheben? Wie lange braucht der Fachexperte, um die Antwort auf eine fachliche Frage zu geben? Wie lange braucht das Management für eine Entscheidung? Wie lange braucht die Testabteilung, um die Abnahmetests abzuschließen?
Wie viel Zeit etwas braucht im Projekt, das ist eine wichtige Frage, denn Projekte müssen geplant werden, nicht nur hinsichtlich des Datums, zu dem die Lösung einsatzbereit sein wird, sondern auch hinsichtlich des Einsatzes personeller Ressourcen. Wann muss diese Expertin für Interviews zur Verfügung stehen und in welchem Umfang,wann wird jener Spezialist mit seinem Wissen und seinen Fähigkeiten gebraucht und wie lange? Das muss rechtzeitig geplant werden, damit die Menschen dann auch da sind, wenn sie gebraucht werden. Und dazu muss man wissen, wie viel Zeit all die Dinge noch benötigen, die zuvor erledigt werden müssen.
Auch wenn also die Frage, wie lange etwas dauert, vielleicht die wichtigste Frage im Projekt ist, so ist die Antwort darauf häufig entweder ein ehrliches “ich weiß es nicht” oder es stellt sich im Nachhinein heraus, dass sie falsch war. Woran liegt das?
Oft meint man, das es so schwer wäre, in Softwareprojekten Zeitschätzungen abzugeben, weil fast jede Aufgabe einzigartig ist, und jedes Problem sich so, wie es auftaucht, zu ersten Mal gelöst werden muss. Daran ist natürlich viel wahres, und umso individueller eine Lösung ist, desto ungewisser ist, welche Herausforderungen sich auf dem Weg zu ihr zeigen.
Aber aus Erfahrung müssten die Beteiligten eigentlich auch dafür ein Gefühl entwickeln können und das Unvorhersehbare mit einrechnen, sodass sie mit ihren Zeitschätzungen wenigstens “im Mittel” richtig liegen.Warum klappt das nicht?
Das Problem ist, dass wir uns nie merken, wie lange wir wirklich für eine Sache gebraucht haben. Das kann man ausprobieren, wenn man sich einmal für eine ganz alltägliche Sache fragt, wie viel Zeit man dafür benötigt. Wie lange brauche ich etwa für einen Wochenendeinkauf, wie viel Zeit vergeht von dem Moment, wo ich den Einkaufswagen von der Kette vor dem Supermarkt löse bis zu dem Zeitpunkt, an dem ich ihn zurückstelle? Es passiert nicht überraschendes,alle Artikel liegen am richtigen Ort, die Schlange an der Kasse ist nicht länger als sonst. Aber wenn ich die Zeit stoppe, dann staune ich, wie weit meine Schätzung von der tatsächlich benötigten Zeit abweicht.
So ist es auch im Softwareprojekt. Ich weiß oft schlicht nicht, wie lange ich brauche, um eine Funktion zu schreiben. Ich weiß – ehrlich gesagt -im Moment nicht genau, wann ich begonnen habe, an diesem Text zu schreiben, und so kann ich auch nicht sagen, wie viel Zeit er mich gekostet hat.
Erfahrung bauen wir aber nur auf, wenn wir uns beobachten und uns merken, wie lange uns eine Aufgabe in Anspruch nimmt. Wenn ich weiß, wie lange ich beim letzten Mal gebraucht habe,dann kann ich auch beurteilen, wie es beim nächsten Mal sein wird. Prognose fängt beim Selbstversuch an.