Die ersten 90 Prozent des Codes machen die ersten 90 Prozent der Entwicklungszeit aus. Die restlichen 10 Prozent des Codes machen die restlichen 90 Prozent der Entwicklungszeit aus.
- Tom Cargill, Bell Labs
Was bedeutet das konkret in der Praxis? Dass Programmierer viel arbeiten und 180% aus sich heraus geben, oder?
programming-practices
theory
Josip Ivic
quelle
quelle
Antworten:
Stellen Sie sich das so vor: Wenn Sie mit der Arbeit an Software beginnen, können Sie in relativ kurzer Zeit große Mengen an Code schreiben. Dieser neue Code kann eine Menge neuer Funktionen hinzufügen. Das Problem ist, dass die Funktionalität oft nicht "erledigt" ist, dass es Bugs, kleine Änderungen (kleine Unternehmen) und so weiter geben kann. Die Software scheint also fast fertig zu sein (zu 90%), da sie die meisten Anwendungsfälle unterstützt. Die Software braucht aber noch Arbeit. Der Sinn dieser Regel ist, dass trotz des Gefühls, dass die Software fast fertig ist, der Arbeitsaufwand, um diese Software in den ordnungsgemäßen Betriebszustand zu versetzen, so groß ist, wie der, fast fertig zu werden. Das liegt daran, dass die Fehlerbehebung oft zeitaufwändig ist, aber nicht viel Code produziert.
Das Problem ist, dass die meisten Entwickler davon ausgehen, dass die Software "fast fertig" ist, da dies relativ einfach ist, verglichen mit der tatsächlichen Schätzung des Gesamtaufwands, den die Software in Anspruch nehmen wird.
quelle
Es ist ein Hinweis auf ein weit verbreitetes Szenario, das leider noch heute auftritt:
"90%" ist eine willkürliche Zahl, aber es macht den Punkt gut: Schätzungen sind Vermutungen und werden wahrscheinlich falsch (oft sehr falsch) sein, und die menschliche Natur stellt sicher, dass wir fast immer unter der Schätzung liegen, so dass die Dinge überlaufen.
quelle
other 90%
Ich habe eine andere Version davon gehört (auch "90-90-Regel" genannt), die so aussieht:
Beide Versionen beziehen sich auf die Schwierigkeit, den Aufwand für die Entwicklung von Softwareprodukten richtig einzuschätzen, und auf die häufigen Fallstricke, in die Menschen fallen:
quelle
Diese Regel ergänzt die 80-20-Regel. Nun gibt es viele verschiedene Interpretationen der 80-20-Regel, aber die beiden, die mir am besten gefallen, sind:
In der Praxis bedeutet dies Folgendes: Die Entwicklung beginnt und schreitet bis zu einem bestimmten Zeitpunkt fort, an dem die ersten Verzögerungen bemerkt werden. Die Verzögerungen können unterschiedlicher Natur sein:
Fazit ist, dass es viel einfacher ist, sich dem Ziel zu nähern, als es tatsächlich zu erreichen.
quelle
Ich finde die Wikipedia- Erklärung ziemlich aufschlussreich:
quelle
Nein, Programmierer erledigen immer die gleiche Menge an Arbeit pro Zeiteinheit. Das Zitat handelt von einer Unterschätzung von Kosten und Überschreitungen. Die 180% sind der Zeit- und Geldaufwand, den das Projekt am Ende kostet.
Es bedeutet ungefähr "Es wird doppelt so lange dauern, wie Sie denken" und "Sie werden denken, dass es Ihnen gut geht, bis es bereits zu spät ist (die Frist ist nahe)".
quelle
In der Praxis bedeutet dies, dass die Menschen sich selbst belügen.
Wenn ein Programmierer sagt, "wir sind zu 90% fertig", bedeutet dies, dass 90% des Aufwands für die Erstellung der Funktionen aufgewendet wurden.
Wenn ein Projektmanager sagt, "wir sind zu 90% fertig, ich brauche nur jemanden, der das erledigt", bedeutet dies, dass er zu 90% über das Budget verfügt (und wahrscheinlich zu 50% fertig ist). Dies ist ein Kunde ohne Geld, mit hohen Erwartungen und einer schlechten Einstellung.
Der Unterschied besteht darin, dass das Fertigstellen eines Projekts mehr Aufwand erfordert als das Codieren von Funktionen: qa, Fehlerkorrekturen, Kopierbearbeitungen, Bereitstellung.
Diese Dinge müssen im Projekt verwaltet werden und liegen in der Verantwortung des Projektmanagers. Dies überrascht häufig neue PMs, die auf "90% Feature Complete" auslaufen, nur um zu erkennen, dass sie nur auf halbem Weg zu "Projekt erledigt" sind.
quelle