25 puntos por GN⁺ 2025-02-19 | 1 comentarios | Compartir por WhatsApp

> “¿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
  • 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

 
GN⁺ 2025-02-19
Opiniones de Hacker News
  • La estimación de software es como un chiste. Porque no hay castigo por subestimar

    • Puede compararse con la estimación en la producción cinematográfica. Hay empresas que venden garantías de finalización para películas
    • La garantía de finalización cuesta alrededor del 2% del costo de producción. Normalmente se usa en películas independientes con presupuestos de entre 3 y 70 millones de dólares
    • La empresa de garantía asume parte de los sobrecostos, pero si estos son demasiado grandes, despide al director y toma control de la producción. Así es como logra un efecto real
    • Las empresas de garantía de finalización estiman con base en datos históricos. Tienen los costos reales de muchas películas
    • Registran en detalle el costo de cada escena. Por ejemplo, para una persecución de autos, consultan en su base de datos el costo de 100 persecuciones de autos anteriores
    • También tienen información sobre directores, productores y actores, y comparan cuánto cuesta filmar una escena con ellos frente a sus pares
    • Esto no es ciencia espacial, es suscripción de seguros
  • Excelente artículo, pero falta una diferencia clave con la experiencia en software

    • Puede que el cliente no sepa realmente lo que quiere. No importa cuánto preguntes por adelantado, no puedes obtener esa información
    • Hay que negarse por completo a cobrar por horas y cobrar por proyecto
  • Los proyectos DIY siempre son así

    • Se habla mucho de las pertenencias, pero las herramientas y las piezas ocupan muchísimo espacio
    • El autor ya tenía muchas herramientas, pero aun así le faltaban varias
    • Con el tiempo se reduce la necesidad de ir a la ferretería, pero el taller termina lleno de cosas
  • 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

    • Los audífonos con cancelación de ruido no son protectores auditivos. Los protectores auditivos crean una barrera física entre la fuente del ruido y el oído
    • Los audífonos con cancelación de ruido escuchan el sonido ambiente y generan una onda opuesta. Como no es perfecto, no protege suficientemente los oídos
  • La historia está bien. Pero mi experiencia es casi exactamente la contraria

    • El 90% no es trabajo fácil, el 90% es andar a tientas
    • Muchas veces varias empresas rehacen una y otra vez el trabajo sobre el mismo producto
  • Me recuerda la frase: "la realidad tiene detalles sorprendentes"

    • Las cosas que uno no sabe permanecen así hasta que te acercas a algo nuevo
  • Cuando el autor perfora un agujero para el cable de alimentación, ajusta cuidadosamente una pieza plástica

    • Los constructores cortan a la mala un agujero para la manguera de agua y se van a fumar un cigarro
    • Esto coincide con experiencias pasadas
  • 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

    • La mayoría de mis colegas terminan los proyectos rápido, y luego se les va mucho tiempo en el seguimiento posterior
    • Yo invierto mucho tiempo al inicio del proyecto para no necesitar seguimiento posterior
  • Un punto interesante a considerar la próxima vez que te sorprenda el precio de un técnico

    • La razón por la que un plomero cobra 300 dólares por conectar una lavadora en unos minutos es que sabe cómo perforar el agujero del desagüe
  • ¿Qué hacer cuando no sabes qué preguntas debes hacer antes de iniciar un proyecto de software?

    • No me opongo a ver el trabajo de exploración como un ejercicio de levantamiento de requisitos
    • Si haces una sola visita a la ferretería con una gran lista de compras y un conjunto de preguntas abiertas, puedes trabajar de forma más efectiva y simple