- En 1982, l’équipe logicielle de Lisa chez Apple a instauré une politique de suivi du nombre de lignes de code hebdomadaires de chaque développeur pour préparer la sortie du logiciel
- Bill Atkinson estimait que le nombre de lignes de code était un mauvais indicateur de la productivité logicielle
- En réécrivant entièrement le moteur de calcul de régions de Quickdraw, il a supprimé environ 2 000 lignes de code tout en améliorant les performances d’un facteur 6
- Atkinson a inscrit -2000 sur le formulaire de gestion servant à déclarer le nombre de lignes de code
- Finalement, les responsables ont cessé de demander à Bill de remettre ce formulaire
L’équipe logicielle de Lisa en 1982 et la politique de suivi des lignes de code
- Au début de 1982, l’équipe logicielle de Lisa s’est mobilisée avec pour objectif de livrer le logiciel dans les six mois suivants
- Certains responsables pensaient que suivre le nombre de lignes de code écrites chaque semaine par chaque ingénieur aiderait à faire avancer le projet
- Pour cela, ils ont mis en place un formulaire hebdomadaire que les ingénieurs devaient remplir chaque vendredi en indiquant le nombre de lignes de code écrites
Le point de vue de Bill Atkinson sur les critères de productivité
- Bill Atkinson, qui a conçu Quickdraw et l’interface utilisateur, considérait que le nombre de lignes de code ne pouvait pas servir de critère de productivité logicielle
- Il soulignait que l’objectif était de rendre les programmes aussi petits et rapides que possible
- Il voyait dans la mesure du nombre de lignes de code le risque d’encourager un code brouillon et inefficace
Refactorisation et optimisation du moteur de régions de Quickdraw
- Atkinson avait récemment entièrement réécrit le moteur de calcul de régions de Quickdraw avec un algorithme plus simple et plus générique
- Le résultat de l’optimisation a permis d’accélérer les opérations sur les régions jusqu’à 6 fois
- Au cours du processus, l’équivalent de 2 000 lignes de code a aussi été naturellement supprimé
La déclaration de -2000 lignes de code et la réaction des responsables
- En remplissant le premier formulaire de gestion de la semaine, Atkinson a inscrit -2000 dans la case du nombre de lignes de code
- On ne sait pas clairement comment les responsables ont réagi à ce chiffre
- Quelques semaines plus tard, on a demandé à Bill de ne plus soumettre le formulaire, ce qu’il a accueilli avec plaisir
1 commentaires
Commentaires sur Hacker News
Le meilleur commit dont je me souvienne reste celui où j’ai supprimé environ 60�00 lignes de code et remplacé tout un « serveur » qui stockait tout l’état en mémoire par une logique légère d’environ 5�00 lignes
falseen cas de non-correspondance ettruesi tout correspond. Même si ce n’est pas un arbre, si le point de départ est clairement fixé, on peut en déduire que cette méthode s’applique à n’importe quel sous-grapheÀ l’université, j’ai travaillé pour une entreprise dont la politique managériale affirmait que des débutants pouvaient écrire du bon code ; au final, ils ont fourni un contre-exemple qu’ils n’ont jamais réussi à démontrer faux
Sur un sujet connexe, quelqu’un a rassemblé des fils Hacker News populaires autour du « code à -2000 lignes », comme dans ce lien
Le projet d’interface web dont je m’occupe comptait 250�00 lignes de code, sans le backend
addEventListener. Je plaisantais en disant : « Si on donne un livre JavaScript à un moine et qu’on l’enferme seul pendant 10 ans, voilà le genre de code qu’on obtient »switch/case/if/elseimbriqués, des opérateurs ternaires sur 10 niveaux, des requêtes SQL mélangées à du JS/HTML/HTML injecté avec du JS, et aucun test automatisé, dans une architecture frontend de l’époque PHP/DojoDans une BD Dilbert, il y a une scène sur les structures de récompense illimitées : le chef de Dilbert promet une récompense financière pour chaque bug corrigé, et Wally lance : « Aujourd’hui, je vais moi aussi coder un minivan ! »
Partage d’un cas réel de suppression de 64�00 lignes dans le dépôt
dotnet/runtimeChaque fois que je vois des statistiques affirmant à quel point les LLM augmentent la productivité des développeurs, cette vieille histoire me revient en tête
Je n’ai pas de formation en informatique théorique, et je travaille surtout avec des connaissances acquises sur le terrain
À l’approche de l’évaluation annuelle, j’ai regardé mes statistiques dans le monorepo interne et découvert qu’en net de code, j’étais devenu quelqu’un qui était en négatif
Il y a longtemps, sur un gros projet, j’ai été sidéré par un KPI catastrophique : les chefs de projet tenaient à la main, hors ligne, le nombre de bugs par développeur (bugs corrigés, bugs causés) et l’affichaient au mur