- En 1982, el equipo de software de Lisa de Apple introdujo una política para rastrear la cantidad de líneas de código semanales de cada desarrollador con el fin de lanzar el software
- Bill Atkinson opinaba que la cantidad de líneas de código era una métrica equivocada de la productividad de software
- Reescribió por completo el motor de cálculo de regiones de Quickdraw, reduciendo alrededor de 2,000 líneas de código y mejorando el rendimiento 6 veces
- Atkinson escribió -2000 en el formulario de gestión donde se reportaba la cantidad de código
- Finalmente, los gerentes dejaron de pedirle a Bill que entregara el formulario
El equipo de software de Lisa en 1982 y la política de seguimiento de líneas de código
- A inicios de 1982, el equipo de software de Lisa comenzó a enfocarse intensamente en lanzar el software dentro de los siguientes 6 meses
- Algunos gerentes consideraron que rastrear la cantidad de líneas de código que cada ingeniero escribía cada semana ayudaría al avance
- Para ello, introdujeron un formulario en el que cada viernes los ingenieros debían registrar y entregar la cantidad de líneas de código escritas
La postura de Bill Atkinson sobre los criterios de productividad
- Bill Atkinson, quien diseñó Quickdraw y la interfaz de usuario, pensaba que la cantidad de líneas de código no podía ser un criterio de productividad de software
- Enfatizaba que el objetivo era hacer los programas lo más pequeños y rápidos posible
- Reconocía el problema de que medir las líneas de código podía, por el contrario, fomentar código desordenado e ineficiente
Refactorización y optimización del motor de regiones de Quickdraw
- Atkinson había reescrito recientemente por completo el motor de cálculo de regiones de Quickdraw con un algoritmo más simple y general
- Como resultado de la optimización, mejoró la velocidad de las operaciones de regiones hasta 6 veces
- En el proceso, también se redujeron de forma natural 2,000 líneas de código
El reporte de -2000 líneas de código y la reacción de los gerentes
- Mientras llenaba el formulario de gestión de la primera semana, Atkinson escribió -2000 en la casilla de cantidad de líneas de código
- No está claro cómo reaccionaron los gerentes ante esa cifra
- Unas semanas después, le dijeron a Bill que ya no entregara más el formulario, y él lo recibió con gusto
1 comentarios
Comentarios en Hacker News
El mejor commit que recuerdo fue una vez que borré unas 60 mil líneas de código y reemplacé por completo un “servidor” que guardaba todo el estado en memoria por una lógica ligera de unas 5 mil líneas
En la universidad trabajé para una empresa cuya política gerencial decía que los recién contratados podían escribir buen código, y al final fueron un caso de fracaso no demostrado
Sobre este tema relacionado, alguien recopiló populares hilos de Hacker News sobre “-2000 líneas de código” en este enlace
El proyecto de web UI del que me encargué tenía 250 mil líneas de código, sin contar el backend
addEventListener. Yo bromeaba diciendo que este código es lo que sale si le das a un monje un libro de JavaScript y 10 años de aislamientoswitch/case/if/else/ternary, SQL mezclado con JS/HTML/HTML con JS incrustado, y cero pruebas automatizadas: así era ese frontend de la era PHP/DojoEn una tira de Dilbert hay una escena sobre una estructura de recompensas sin límite: el jefe de Dilbert promete una recompensa monetaria por arreglar un bug, y Wally dice: “¡Hoy yo también voy a programar una minivan!”
Se comparte un caso real de haber borrado 64 mil líneas en el repositorio
dotnet/runtimeCada vez que veo estadísticas sobre cuánto han aumentado la productividad de los desarrolladores los LLM, me acuerdo de esta historia clásica
Yo no estudié CS y trabajo con conocimientos que aprendí en la práctica
hashmap, y apliqué una estructura de dos etapas: distinguir los nodos con el mismo esqueleto por su hash, compararlos y fusionarlos, y solo después convertirlos al tipo finalAntes de la evaluación anual de fin de año vi mis estadísticas en el monorepo de la empresa y descubrí que, en términos netos, me había convertido en una persona con líneas de código negativas
Hace mucho me impactó un caso lamentable de KPI en un gran proyecto, donde los líderes técnicos llevaban a mano y publicaban en la pared la cantidad de bugs por desarrollador, tanto bugs corregidos como bugs causados