10:1-Regel beim Programmieren 22.08.2018, 09:37 Uhr

Warum Entwickler den Zeitaufwand zu gering einschätzen

Autor und Entwickler Yevgeniy Brikman fragte sich, warum Autoren ihre Texte stets zu spät abgeben und warum Entwickler die Zeit, die Sie zum Schreiben eines Programmes brauchen nicht einschätzen können und entdeckte dabei die 10:1-Regel.
Auf die Idee seiner Analyse kam Yevgeniy Brikman, weil er seine beiden Bücher mit Hilfe von GitHub geschrieben hat und dieser Service ihm gute Analyse-Tools zur Verfügung stellt. So fand er mit Hilfe des Git-Tools cloc ganz leicht heraus, dass sein erstes Buch, das 602 Seiten hat, aus 26571 Zeilen Text besteht, an denen er zehn Monate lang gearbeitet hat. Die Analyse mit dem Tool git-quick-stats zeigte, dass er mehr als 163.000 Einfügungen und über 131.000 Löschungen vorgenommen hat. Er resümiert, dass er mehr als 294.000 Zeilen schreiben musste, um auf ein Ergebnis von 26571 Zeilen zu kommen – grob gerechnet zehn Mal mehr als im Endergebnis zu sehen sind.
Nachdem die Analyse der Daten für sein zweites Buch ein ähnliches Ergebnis brachte, fragte er sich, ob das Schreiben von Code auch dieser 10:1-Regel unterliegt und untersuchte dafür einige Open-Source-Programme. Bei dem zum Zeitpunkt der Analyse noch keine fünf Monate alten Repository terraform-aws-couchbase kam er auf ein Verhältnis von 5:1 – bei noch unfertigem Ergebnis. Schon nach weniger als fünf Monaten waren 37.000 Zeilen bearbeitet worden, wovon rund 7.500 Zeilen übrig blieben.
Bei der Open Source Library Terratest von 2016 ermittelte er ein Verhältnis von 8:1 und bei Terraform (2014), das die Version 1.0 noch nicht erreicht hatte, ein Verhältnis von 9:1 und bei Express.js (2010) ein Verhältnis von 14:1. Bei jQuery (2006) kam er auf 15:1 und bei MySQL (1995) auf 16:1.
Seine Schlussfolgerungen aus den Analysen lauten: Beim Schreiben eines Buches sind 10 Mal so viele Zeilen zu verfassen, als am Ende im Buch abgedruckt werden. Bei nicht-trivialen Programmen sind bis zur guten und stabilen Version ebenfalls etwa 10 Mal so viele Codezeilen zu bearbeiten wie es in das Endergebnis schaffen. Schon bei der Planung empfiehlt er deshalb die 10:1-Regel im Hinterkopf zu haben: Schätzt man das zu entwickelnde Programm auf 10.000 Zeilen, dann wird man rund 100.000 Zeilen bearbeiten müssen.


Das könnte Sie auch interessieren