Estimación de software: insights de décadas de aciertos y errores

Darío Macchi comparte su método real para estimar software: por qué adivinar a ciegas no funciona, cómo medir la incertidumbre y qué hacer cuando falta información para decidir.

Equipo de desarrollo realizando la estimación de software un proyecto
12 mar 202513 min de lectura
Actualizado el 2 sept 2026

Mucho se dice sobre la estimación en el desarrollo de software; hay un montón de artículos y blogs que dan consejos sobre cómo hacerlo mejor. A pesar de qué es un poco contradictorio el hecho de que este artículo hable de eso, por qué no damos un poco vuelta las cosas y lo vemos desde otro ángulo. No quiero escribir otro post aburrido sobre estimación, en cambio, quiero sumergirme en algunas ideas poco convencionales y compartir mis propias experiencias con vos.

Reconociendo la incertidumbre

Hacer estimaciones de proyectos es difícil, y lo primero que hay que recordar es que no hay dos proyectos iguales. Cada proyecto tiene sus propios desafíos y cosas que pueden complicar el proceso de estimación. Entonces, es importante mantener una mente abierta y no asumir cosas basadas en experiencias pasadas. En cambio, necesitas analizar cuidadosamente todos los detalles y factores del proyecto actual para llegar a una estimación más precisa.


Otra cosa a tener en cuenta es que siempre va a haber incertidumbre. No importa cuánto planifiquemos o analicemos. Las cosas pueden cambiar, pueden surgir riesgos o pueden ocurrir problemas durante la implementación. Por lo tanto, es inteligente tener en cuenta esta incertidumbre agregando tiempo o recursos adicionales en caso de que las cosas no salgan como se planeó.


La comunicación también es súper importante. Todos los involucrados en el proyecto necesitan hablar abierta y claramente durante todo el proceso de estimación. Esto significa discutir expectativas, asegurarse de que todos entiendan qué se debe hacer, abordar cualquier preocupación o duda, y mantenerse actualizados sobre el progreso. Una buena comunicación ayuda a evitar malentendidos, detectar problemas temprano y ajustar las estimaciones si surge nueva información.


Además, ver hacer un análisis de proyectos en retrospectiva puede ayudar a hacer estimaciones más precisas. Al revisar lo que sucedió antes y aprender de los errores, podemos tomar mejores decisiones al estimar tareas para nuevos proyectos. También es útil pensar en cómo funcionan nuestros cerebros al hacer estimaciones: podríamos tener sesgos que nos hacen demasiado optimistas o confiados. Comprender estos sesgos puede ayudarnos a ser más realistas al estimar.

Estimar proyectos no es fácil, pero mantener una mente abierta, aceptar la incertidumbre, comunicarse bien y aprender del pasado ayuda a llegar a estimaciones que realmente preparen al equipo para lo que viene.


Formas incorrectas de hacer estimaciones

Bueno, hablemos de estimaciones, amigo. Sabés, hay algunas formas bastante incorrectas de hacerlo. Como, imaginá simplemente adivinar a ciegas el tiempo y el esfuerzo que llevará completar una tarea. Eso es como tirar dardos en la oscuridad y esperar el mejor resultado. Créeme, no terminará bien.


Y luego está toda esa idea de "talla única" que algunas personas tienen. Piensan que pueden aplicar la misma técnica de estimación a cada proyecto bajo el sol. Pero, ¡ey, noticia de último momento! (o no tan último porque ya lo dijimos antes)... cada proyecto es diferente, con sus desafíos y requisitos únicos. Ignorar esos factores externos es una receta para el desastre.


Ahora, aquí hay otro gran error: tener una mentalidad fija. Ves, las estimaciones requieren flexibilidad y adaptabilidad. Si estás atrapado en tus formas y te niegas a considerar perspectivas alternativas o nueva información, estás preparándote para el fracaso, amigo. Abrazar la colaboración y los puntos de vista diversos es clave para hacer estimaciones precisas que tengan la posibilidad de ser realistas.


Así que recordá, cuando se trata de estimaciones, adivinar a ciegas y pensar en "talla única" simplemente no va a funcionar. ¡Y ni siquiera empieces a hablar de ignorar factores externos o tener una mentalidad fija! En cambio, abracemos prácticas colaborativas y aprovechemos la inteligencia colectiva de todos los interesados involucrados. Puede que tome algunas discusiones abiertas y sesiones de lluvia de ideas, pero créeme, llevará a mejores resultados en el final.


Formas correctas de hacer estimaciones

Acá te dejo un secreto que los dioses de la ingeniería de software han estado guardando bajo llave: ¡no hay una única forma "correcta" de hacer estimaciones!
Pero, antes de que abandones este artículo, solo escuchame. Sé que viniste buscando la manera correcta de hacer estimaciones y dije que no existe, pero lo que sí puedo compartirte es lo que me funcionó a mí.


Supongamos que alguien me pidiera calcular el tiempo que me llevaría comer un elefante mediano. ¿Cómo lo haría?


Primero: cortar el elefante

El primer paso para mí siempre es desglosar el trabajo en pequeñas tareas.
Desglosar las cosas lo más posible ayuda a lograr una estimación más precisa, pero siendo realistas, no siempre es práctico. Entonces, mi sugerencia es descomponerlo hasta que estés lo suficientemente seguro como para apostar tu salario mensual en tu estimación para esa parte del trabajo.


(Igual, no pierdas el tiempo preguntándome sobre la mejor forma de estimar tareas... simplemente usa el método con el que te sientas cómodo, siempre y cuando no se convierta en el foco principal de tu proyecto).


Segundo: gráfico de incertidumbre

Las personas que me conocen saben que soy un gran fanático del gráfico de incertidumbre. ¿Por qué? Bueno, es algo que todos podemos entender y simpatizar con el pobre tipo que tiene las estimaciones en la mano.


Ahora ya tenés cada parte del elefante cortada y estimaste (una analogía un poco salvaje) cuánto tiempo te va a llevar comerte cada una. Pero, ¿qué tan seguro estás en cada estimación?


¿Por qué no poner cada "rebanada" en el cono de incertidumbre según cuánto dudas de esa estimación? Luego mostrá el gráfico a todos, para que entiendan tus preocupaciones e incertidumbres. Esto va a ayudar a asegurar que todos los involucrados en el proyecto asuman la responsabilidad de esas estimaciones.


Tercero: suma todas las rebanadas

Entonces, ¿el tiempo para comer el elefante es la suma del tiempo para comer todas las rebanadas, verdad? No exactamente.


Si hacés eso, no estarías utilizando la posición de la rebanada en el cono de incertidumbre, ignorando ese aspecto importante. Para incluir esta información, podés multiplicar tu estimación por un factor que se relacione con qué tan incierta es la situación. Eso te da una representación más completa, porque tiene en cuenta el rango de posibilidades dentro del cono de incertidumbre en lugar de un único número.


Pero, ¿qué pasa si no tengo suficiente (conocimiento, experiencia, información) para estimar una tarea? ¿Cómo puedo reducir la incertidumbre?

  • ¡Llama al pro!: Este es el método más rápido y sencillo, especialmente si hay un experto disponible. Es suficiente confiar en la opinión del experto para estimar los detalles cuantitativos del proyecto, como los plazos y los recursos potenciales. También es la técnica más comúnmente utilizada.
  • Investigación: Al mirar proyectos anteriores o apoyarte en las mejores prácticas de la industria, podés obtener información valiosa que ayuda a estimar mejor y a detectar riesgos antes de que se conviertan en un problema.
  • Spikes: Cuando estás tratando de encontrar una solución a un problema, a veces tienes que meterte de lleno y empezar a escribir algo de código. Es como un pequeño experimento para ver si tu idea funciona. Y bueno, a veces ese código termina siendo útil para tu proyecto, pero la mayoría de las veces es algo que tirás una vez que has demostrado tu punto. Asegurate de establecer una fecha límite para el spike, o si no podrías terminar dedicándole una eternidad.


Hacelo como lo hacen en la industria farmacéutica: Ellos reservan dinero para sus proyectos de investigación, los llevan a cabo, y luego deciden si dar más dinero en función de los resultados. Podés hacer algo similar empezando una tarea con un presupuesto establecido. Cuando se agote el dinero, evaluá cómo han ido las cosas y decidí si conseguir más fondos para seguir adelante o detener la tarea.


¿Por qué son tan importantes las estimaciones?

¿Por qué la gente discute tanto sobre esto y nadie tiene una forma definitiva de estimar proyectos de software? ¿Es tan difícil o importante hacerlo?
Apliquemos lo que aprendimos anteriormente y comamos este elefante de a poco.


Primero, las estimaciones no son importantes... ¡Son cruciales en el desarrollo de software! El desarrollo de software es un negocio, y a menos que estés en algún equipo de producto muy relajado o nadando en plata (o algunos otros casos especiales), el dinero va a estar en tu mente.


La mayoría de los artículos sobre este tema solo hablan de dinero, y al final, todo se reduce a eso. Pero quiero resaltar otros aspectos de la estimación para realmente comprender su importancia.

  • Planificación y asignación de recursos: Ayudan a planificar y asignar recursos: si sabés el tiempo y el esfuerzo que requiere cada tarea, podés tomar mejores decisiones sobre personal, plazos y la gestión general del proyecto.
  • Establecer expectativas realistas: Permiten poner expectativas realistas para clientes y para el equipo. Si tenés claro el plazo estimado, podés comunicarlo sin ambigüedad y evitar malentendidos más adelante.
  • Priorización de tareas: Sirven para priorizar tareas según su complejidad o el esfuerzo que requieren, para decidir qué funcionalidades conviene desarrollar primero.
  • Identificación de riesgos potenciales: Ayudan a identificar riesgos, porque resaltan qué áreas del proyecto van a necesitar más atención o recursos, y eso te permite anticiparte antes de que el problema aparezca.
  • Mejora en la toma de decisiones: Mejoran la toma de decisiones a lo largo de todo el proyecto: te sirven para comparar enfoques alternativos, priorizar entre funcionalidades y chequear que las decisiones sigan alineadas con el objetivo general.


IA al rescate

Ok, lo entendí... ¿pero es tan difícil? ¿Por qué nadie puede encontrar la manera perfecta de estimar proyectos de desarrollo de software? ¡En serio, estamos viviendo en la era de la IA! ¿No puedo simplemente pedirle a Chat GPT que me dé una estimación?


Simplemente no. Estimar proyectos de desarrollo de software con precisión es realmente una tarea desafiante. Si bien la IA, como Chat GPT, puede ayudar en varias áreas, estimar los plazos y esfuerzos del proyecto todavía requiere experiencia humana e involucramiento. Aquí hay algunas razones por las que es difícil encontrar estimaciones perfectas:

  • Complejidad: Los proyectos de software pueden ser altamente complejos, involucrando numerosas variables, dependencias y riesgos potenciales. Predecir todos estos factores con precisión es una tarea compleja.
  • Incertidumbre: A menudo hay incertidumbres en los requisitos, cambios en el alcance y dependencias externas que pueden afectar los plazos del proyecto. Es difícil prever y tener en cuenta todas estas incertidumbres.
  • Factores humanos: Estimar el desarrollo de software implica habilidades y esfuerzos humanos que son influenciados por las capacidades y la experiencia individuales. Diferentes desarrolladores pueden tener velocidades, enfoques o desafíos imprevistos diferentes.
  • Tecnologías emergentes: La naturaleza siempre cambiante de la tecnología hace que sea difícil estimar proyectos utilizando herramientas o frameworks recientes que todavía no tienen datos históricos para una estimación precisa.
  • Comunicación y colaboración: Una estimación precisa requiere comunicación y colaboración efectivas entre las partes interesadas involucradas en el proyecto. Malentendidos o información incompleta pueden llevar a estimaciones inexactas.

Si bien la IA puede respaldar los procesos de estimación al analizar datos históricos o proporcionar ideas basadas en patrones, no puede reemplazar la necesidad de juicio humano y comprensión del contexto específico del proyecto.

Es mejor combinar las capacidades de la IA con el conocimiento experto para mejorar la precisión de la estimación en lugar de depender únicamente de la automatización para estimar proyectos de desarrollo de software.


Conclusión

Como vimos, estimar es un aspecto clave del desarrollo de software que va mucho más allá de la plata: ayuda a planificar, poner expectativas realistas, priorizar tareas y tomar mejores decisiones a lo largo del proyecto.


La IA puede sumar en algunas partes del proceso, pero no reemplaza la experiencia ni el juicio humano. Estimar bien sigue dependiendo de reconocer la incertidumbre, evitar los enfoques automáticos y apostar a la colaboración del equipo.


La mejor manera de mejorar es simple: aprender de proyectos pasados, pedir la opinión de quien sabe cuando haga falta, investigar para reducir la incertidumbre, y usar herramientas como los spikes o el presupuesto acotado para planificar mejor.

ESCRITO POR

Desarrollador de software con gafas de sol y sosteniendo un patito de goma de juguete.
Darío MacchiDeveloper Advocate @Howdy
COMPARTIR