El primer 90 por ciento del código representa el primer 90 por ciento del tiempo de desarrollo. El 10 por ciento restante del código representa el otro 90 por ciento del tiempo de desarrollo.
- Tom Cargill, Bell Labs
¿Qué significa eso exactamente en la práctica? ¿Que los programadores realizan una cantidad considerable de trabajo y que están dando el 180% de sí mismos o?
programming-practices
theory
Josip Ivic
fuente
fuente
Respuestas:
Imagínelo así: cuando comienza a trabajar en software, puede escribir grandes cantidades de código en un tiempo relativamente corto. Este nuevo código puede agregar una gran cantidad de nuevas funcionalidades. El problema es que, a menudo, esa funcionalidad está lejos de estar "hecha", puede haber errores, pequeños cambios (pequeños en las pequeñas empresas), etc. Por lo tanto, el software puede parecer que está casi listo (90% listo), porque admite la mayoría de los casos de uso. Pero el software aún necesita trabajo. El objetivo de esta regla es que, a pesar de que el software se siente como si estuviera casi terminado, la cantidad de trabajo para llevar ese software al estado de funcionamiento correcto es tan grande como llegar a ese estado "casi terminado". Esto se debe a que la corrección de errores suele llevar mucho tiempo pero no produce mucho código.
El problema es que la mayoría de los desarrolladores estiman llevar el software al estado "casi listo", porque eso es relativamente simple en comparación con la estimación del esfuerzo total que tomará el software.
fuente
Es una referencia a un escenario común, que lamentablemente todavía ocurre hoy:
"90%" es una cifra arbitraria, pero aclara bien: las estimaciones son suposiciones y probablemente serán erróneas (a menudo muy erróneas) y la naturaleza humana garantiza que casi siempre se subestime, por lo que las cosas se desbordan.
fuente
other 90%
He escuchado una versión diferente de esto (también llamada "regla 90-90") que dice así:
Ambas versiones se refieren a la dificultad de estimar correctamente el esfuerzo para desarrollar productos de software y las dificultades comunes en las que las personas tienden a caer:
fuente
Esta regla complementa la regla 80-20. Ahora, hay muchas interpretaciones diferentes de la regla 80-20, pero las dos que más me gustan son:
En la práctica, esto significa lo siguiente: el desarrollo comenzará y continuará hasta cierto punto cuando se noten los primeros retrasos. Los retrasos pueden ser de diversa naturaleza:
La conclusión es que es mucho más fácil acercarse a la meta que alcanzarla.
fuente
La explicación de Wikipedia me parece bastante esclarecedora:
fuente
No, los programadores siempre hacen la misma cantidad de trabajo por unidad de tiempo. La cita trata de subestimar el costo y los excesos. El 180% es la cantidad de tiempo y dinero que el proyecto termina costando.
Más o menos significa "Te llevará el doble de tiempo de lo que crees" y "Pensarás que te está yendo bien hasta que ya sea demasiado tarde (la fecha límite está cerca)".
fuente
Lo que esto significa en la práctica es que las personas se mienten a sí mismas.
Si un programador dice "hemos terminado el 90%", significa que se ha gastado el 90% del esfuerzo para crear las características.
Si un gerente de proyecto dice "hemos terminado en un 90%, solo necesito que alguien lo termine", significa que tienen un 90% del presupuesto (y probablemente un 50% terminado). Este es un cliente sin dinero, altas expectativas y una mala actitud.
La diferencia es que se necesita más esfuerzo que las funciones de codificación para finalizar un proyecto: qa, corrección de errores, ediciones de copia, implementación.
Esas cosas deben gestionarse en el proyecto y son responsabilidad del gerente del proyecto. Esto a menudo sorprende a los nuevos PM que llegan al "90% de características completas" solo para darse cuenta de que están a mitad de camino del "proyecto terminado".
fuente