Goodhart’s law

„Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes.“

Was Charles Goodhart für den Markt als Gesetzmäßigkeit feststellte, gilt auch für beliebige Organisationen und damit auch für Software Entwicklungsabteilungen. Eine andere Formulierung des Gesetzes lautet „Wenn ein Maß zum Ziel wird, ist es kein gutes Maß mehr“.

Versucht beispielsweise eine Firma negative Abweichungen bei den Implementierungsaufwänden durch Belohnungen zu minimieren, dann führt dies nur zu scheinbaren Erfolgen. Bestrafung führt übrigens auch nicht zum Erfolg und sie ist beim aktuellen Fachkräftemangel nicht sehr zu empfehlen. Die Software Entwickler beginnen ihre Schätzungen nach oben zu korrigieren, die einen etwas weniger, die anderen etwas mehr. Entwickler die mehr Zeit zur Verfügung haben, schaffen natürlich häufiger ihre Schätzungen einzuhalten und die negativen Abweichungen werden tatsächlich reduziert.

Eigentlich ist es doch ganz genau das, was die Firma beabsichtigt hat und der Erfolg gibt ihr scheinbar auch recht.  Die Entwickler verbessern aber nicht die Qualität ihrer Schätzungen sondern reduzieren die Zahl der umsetzbaren Features, weil mehr Zeit für die Features eingeplant werden muss. Optimisten könnten jetzt natürlich auf die positiven Abweichungen bei den Aufwänden hinweisen, die bei höheren Schätzungen auch auftreten.

Jeder weiß, dass man eigentlich immer länger braucht und nur sehr selten früher fertig wird. Diese absonderliche Asymmetrie hat aber nichts mit dem Entstehungsprozess von Software zu tun, sondern mit einer Besonderheit der Arbeit. Diese formulierte Cyril Northcote Parkinson als “Work expands so as to fill the time available for its completion.” Dieses Parkinsonsche Gesetz zum Bürokratiewachstum erklärt warum Software Projekte entweder gerade so im Plan bleiben oder immer wieder länger brauchen. Die Entwickler nutzen automatisch die vorgegebene Zeit, denn man kann immer etwas tun, um das Ergebnis noch besser oder komplizierter zu machen.

Wer also immer länger auf gute Software warten möchte, der belohnt seine Entwickler für kleine Fehler bei der Aufwandsschätzung.