¿Por qué los proyectos de software alcanzan un 80-90% de integridad realmente rápido y luego se ralentizan?

Este es un ejemplo de lo que se llama el “principio de Pareto”, también conocido como “la regla 80-20”. La formulación básica del principio es “el 80% de las causas provienen del 20% de los efectos”, que en este caso se traduce en “el 80% de su esfuerzo va al 20% de su código base”. Esto se ha observado en una variedad de contextos, no solo en la programación: por ejemplo, el 80% de sus ventas provienen del 20% de sus clientes, el 80% de las ventas las realiza el 20% de la fuerza de ventas, el 80% de las ganancias proviene del 20% de los productos, el 80% de los ingresos mundiales se destina al 20% de su población.

En mi experiencia, hay una variedad de razones por las cuales esto sucede.

  • La mayor parte de una base de código dada es material directo que reutiliza, si no es código de otros proyectos, entonces ciertamente conceptos de otros proyectos. En otras palabras, es posible que deba escribir código nuevo, pero es similar a otras cosas que ya ha escrito.
  • El progreso avanza muy rápido en un proyecto totalmente nuevo porque no tiene que lidiar con ninguna decisión de diseño que ya haya tomado. En el momento en que alcanza el último 20% de su código, está constantemente interactuando con lo que ya ha escrito, y probablemente encuentre que le falta.
  • Los usuarios hacen un gran trabajo al especificar la naturaleza general de lo que quieren, pero con frecuencia tienen problemas para articular detalles. Con frecuencia, esto conduce a una falta de comunicación en las etapas posteriores del desarrollo del proyecto y, posteriormente, los desarrolladores entregan algo que el usuario realmente no desea.
  • El proyecto a menudo está en vivo cuando se ha escrito el 80% del código, lo que significa que romper accidentalmente una característica tiene un efecto real y notable que causa, de manera bastante comprensible, que los usuarios se irriten. Las primeras etapas de un proyecto generalmente tienen una sensación de “todo vale”, pero cuando los proyectos se ponen en marcha, la cultura del desarrollo a menudo se vuelve más conservadora.
  • El último 20% suele ser un ajuste fino. A menudo hay menos entusiasmo por eso que por el 80%, principalmente porque las características principales se activaron en el 80% y el último 20% solo cambia el texto / datos que aparecen en esas características. Cosas importantes, pero la puesta en marcha simplemente no tiene esa emoción.