> “¿Cuánto crees que tomará hacer eso?”
- Esta pregunta, que los desarrolladores de software temen y detestan, me hizo reflexionar gracias a mi lavadora
- La dificultad de estimar el esfuerzo de software (Software Effort Estimation), explicada por una lavadora
- Al mudarme a una casa nueva, instalar la lavadora tomó mucho más tiempo de lo esperado
- Normalmente era un trabajo que se terminaba en 10 minutos, pero esta vez tomó 4 horas
- Surgieron obstáculos (blockers) que no había previsto, y eso retrasó la instalación
- Me di cuenta de que este proceso se parece mucho a lo que hace difícil estimar el esfuerzo en el desarrollo de software
- Obstáculos y soluciones
- Obstáculo 1: No había un agujero para pasar la conexión eléctrica, así que no podía conectar la lavadora a la corriente
- Solución 1: Compré una sierra copa de 60 mm en una ferretería e hice el agujero
- Obstáculo 2: No podía usar la sierra copa con un taladro de consumo
- Solución 2: Conseguí prestado un taladro más potente y lo usé
- Obstáculo 3: Las mangueras de desagüe y de entrada de agua eran más cortas de lo esperado en la casa nueva
- Solución 3: Intenté comprar una manguera de extensión nueva, pero descubrí que la manguera existente no se podía extender, así que tuve que volver a comprar una manguera nueva
- Obstáculo 4: No se podía quitar una tapa metálica firmemente ajustada en la llave de agua
- Solución 4: Compré una llave más grande y quité la tapa
- Obstáculo 5: El spigot del desagüe estaba bloqueado por una pared de PVC
- Solución 5: Perforé la pared de PVC con un taladro y conecté la manguera de desagüe
- Después de 5 visitas a la ferretería y 4 horas de trabajo, por fin pude instalar la lavadora correctamente
- Obstáculo 1: No había un agujero para pasar la conexión eléctrica, así que no podía conectar la lavadora a la corriente
- Por qué es difícil estimar el esfuerzo en el desarrollo de software
- Incluso en tareas conocidas, si el entorno cambia, es muy probable que aparezcan variables inesperadas
- La razón por la que las estimaciones basadas en experiencias pasadas suelen fallar es por los “desconocidos desconocidos” (Unknown Unknowns)
- Algunos ejemplos:
- La librería que pensabas usar ya no recibe mantenimiento y tienes que corregirla tú mismo
- Se actualiza la herramienta de desarrollo y la forma anterior de trabajar ya no aplica
- Cambia la versión del OS y una dependencia existente deja de funcionar correctamente
- Se agrega un componente nuevo a la infraestructura y se comporta de forma distinta a la esperada
- Conclusión
- La experiencia en una casa nueva muestra lo difícil que puede ser estimar el esfuerzo en el desarrollo de software
- Antes de empezar a desarrollar, hay que investigar los requisitos lo más a fondo posible, pero es inevitable que aparezcan blockers inesperados
- Aunque un proyecto de software parezca una tarea familiar, en un entorno nuevo pueden surgir desafíos completamente distintos
- Es necesario ajustar con flexibilidad los plazos y los recursos teniendo en cuenta estas variables
1 comentarios
Opiniones de Hacker News
La estimación de software es como un chiste. Porque no hay castigo por subestimar
Excelente artículo, pero falta una diferencia clave con la experiencia en software
Los proyectos DIY siempre son así
Aprendí cómo mantenerse recto durante 25 minutos después de perforar y lo asombrosos que son los audífonos con cancelación de ruido
La historia está bien. Pero mi experiencia es casi exactamente la contraria
Me recuerda la frase: "la realidad tiene detalles sorprendentes"
Cuando el autor perfora un agujero para el cable de alimentación, ajusta cuidadosamente una pieza plástica
A la mayoría de mis colegas les sorprende cuando digo que la investigación y el inventario antes de empezar un proyecto consumen mucho tiempo
Un punto interesante a considerar la próxima vez que te sorprenda el precio de un técnico
¿Qué hacer cuando no sabes qué preguntas debes hacer antes de iniciar un proyecto de software?