- 1982 führte das Lisa-Softwareteam von Apple eine Richtlinie ein, nach der zur Veröffentlichung der Software die wöchentliche Anzahl der Codezeilen jedes Entwicklers erfasst wurde
- Bill Atkinson vertrat die Ansicht, dass die Anzahl der Codezeilen ein falscher Maßstab für Softwareproduktivität sei
- Er schrieb die Region-Berechnungs-Engine von Quickdraw vollständig neu, reduzierte dabei den Code um etwa 2.000 Zeilen und steigerte die Leistung um das Sechsfache
- Atkinson trug in das Verwaltungsformular zur Meldung der Codezeilen -2000 ein
- Schließlich verlangten die Manager von Bill nicht mehr, das Formular einzureichen
Das Lisa-Softwareteam von 1982 und die Richtlinie zur Erfassung von Codezeilen
- Anfang 1982 begann das Lisa-Softwareteam, sich mit dem Ziel auf die Veröffentlichung der Software innerhalb der nächsten sechs Monate zu konzentrieren
- Einige Manager kamen zu dem Schluss, dass es den Fortschritt fördern würde, die Anzahl der Codezeilen zu verfolgen, die jeder Ingenieur pro Woche schrieb
- Dafür wurde ein Formular eingeführt, in das die Ingenieure jeden Freitag die Zahl der von ihnen geschriebenen Codezeilen eintrugen und einreichten
Bill Atkinsons Sicht auf Produktivitätsmaßstäbe
- Bill Atkinson, der Quickdraw und die Benutzeroberfläche entwarf, war der Meinung, dass die Anzahl der Codezeilen kein Maßstab für Softwareproduktivität sein könne
- Er betonte, dass das Ziel darin bestehe, Programme so klein und schnell wie möglich zu machen
- Ihm war bewusst, dass die Messung nach Codezeilen im Gegenteil unsaubere und ineffiziente Software begünstigen könnte
Refactoring und Optimierung der Quickdraw-Region-Engine
- Atkinson hatte vor Kurzem die Region-Berechnungs-Engine von Quickdraw mit einem einfacheren und allgemeineren Algorithmus vollständig neu geschrieben
- Das Ergebnis der Optimierung war eine bis zu sechsfache Beschleunigung der Region-Operationen
- Dabei verringerte sich ganz natürlich auch der Code um 2.000 Zeilen
Der Bericht über -2000 Codezeilen und die Reaktion des Managements
- Als Atkinson in der ersten Woche das Verwaltungsformular ausfüllte, schrieb er in das Feld für die Anzahl der Codezeilen -2000
- Wie die Manager auf diese Zahl reagierten, ist nicht genau bekannt
- Einige Wochen später wurde Bill gebeten, das Formular nicht mehr einzureichen, was er mit Freude aufnahm
1 Kommentare
Hacker-News-Kommentare
Der beste Commit, an den ich mich erinnere, war die Löschung von etwa 60.000 Zeilen Code und der Ersatz eines kompletten „Servers“, der seinen gesamten Zustand im Speicher hielt, durch rund 5.000 Zeilen leichte Logik
false, bei vollständiger Übereinstimmungtrueerhält. Daraus lässt sich schließen, dass dieser Ansatz auch auf beliebige Subgraphen anwendbar ist, solange der Startpunkt eindeutig festgelegt istWährend des Studiums arbeitete ich für ein Unternehmen mit der Management-Politik, dass schon Studienanfänger guten Code schreiben könnten; am Ende waren sie ein nicht bewiesenes Gegenbeispiel
Zu dem Thema hat jemand beliebte Hacker-News-Threads über „-2000 Zeilen Code“ gesammelt, zum Beispiel in diesem Link
Mein Web-UI-Projekt hatte 250.000 Zeilen Code, ohne Backend
addEventListenerzu. Ich machte den Witz, das sei der Code, der herauskomme, wenn man einem Mönch ein JavaScript-Buch und zehn Jahre Einzelhaft gibtswitch/case/if/else/Ternary-Operatoren, vermischte SQL-Statements und JS/HTML/HTML mit eingebettetem JS, keinerlei automatisierte Tests — so sah dieses Frontend aus der PHP-/Dojo-Ära ausEs gibt einen Dilbert-Comic mit einer Struktur unbegrenzter Belohnung: Dilberts Chef verspricht eine Geldprämie für jeden behobenen Bug, worauf Wally sagt: „Heute werde ich wohl mindestens einen Minivan voll codieren!“
Es wird ein reales Beispiel aus dem
dotnet/runtime-Repository geteilt, bei dem 64.000 Zeilen gelöscht wurdenImmer wenn ich Statistiken darüber sehe, wie stark LLMs die Produktivität von Entwicklern gesteigert haben sollen, denke ich an diese klassische Geschichte
Ich habe keinen CS-Abschluss und arbeite mit Wissen, das ich mir in der Praxis angeeignet habe
Vor der Jahresendbeurteilung sah ich in unseren internen Statistiken zum monolithischen Repository, dass ich netto zu den Leuten mit negativem Codebeitrag gehörte
Vor langer Zeit war ich schockiert über einen erbärmlichen KPI-Fall in einem großen Projekt, in dem PLs die Bugzahlen pro Entwickler — behobene und verursachte Bugs — offline von Hand erfassten und an die Wand hängten