El movimiento NoEstimates surge cuando Woody Zuill y Neil Killick cuestionan si tiene sentido la Estimación en la Ingeniería de Software cuando todavía no sabemos o entendemos la solución, o los requisitos todavía no son precisos.

Conociendo que la precisión de la estimación mejora a medida que el proyecto avanza, aunque según el cono de incertidumbre la precisión nunca es exacta, conviene demorar la estimación lo más posible.

Ahora en la Agilidad, ¿Para qué estimar si los requisitos pueden cambiar siempre? Si la estimación nunca es exacta, conviene no hacerla para no desperdiciar ese tiempo.

NoEstimates propone que solo se necesita una visión clara de los objetivos de alto nivel, y un propósito compartido.

¿Para qué buscar una estimación precisa y condicionar todo el proyecto a ella? NoEstimates propone que las estimaciones no siempre son necesarias.

¿Para qué buscar un compromiso en tiempo-costo sin conocer el alcance? En lugar de hacer estimaciones, el cliente podría dar un presupuesto a gastar. Esto requiere confianza, la cual es difícil de construir. La ventaja de esta forma de cobrar, es que los requisitos pueden cambiar cuando el cliente quiera.

Para aprovechar esa confianza, las empresas están contratando equipos de desarrollo ágiles bajo demanda y cobrando las horas ocupadas. Esto no funciona sin la confianza del cliente, aunque si la empresa de desarrollo te quiere engañar, también lo puede hacer de otras maneras.

La manera de controlar el avance del proyecto es el working software. Las medidas de lead time y cycle time de Kanban permiten que el cliente pueda tener una idea de cuánto falta para terminar el proyecto.

NoEstimates propone usar contratos “pago por horas” (o un punto intermedio) en lugar de contratos “llave en mano”. Los autores de Scrum proponen agregar dos cláusulas a estos contratos:

  1. “Dinero por nada”.
  2. “Cambios gratis”.

Otra práctica propone lograr que todas las Historias de Usuario tengan el mismo (o similar) tamaño, de manera que todas sean intercambiables.

También es útil comenzar los proyectos con poca inversión inicial, siempre entregando SW funcionando para lograr que el cliente confie en nosotros.

Se busca convertir las relaciones contractuales a partnerships.

También podemos pasarnos a los modelos de comercialización cloud, donde cobramos el uso del software o de las funcionalidades. Te vendemos lo que vos consumas del producto, no te vendemos el producto en sí.

NoEstimates consiste en buscar formas viables de no estimar. Esto requiere mucha confianza entre el equipo y el cliente, por lo que suele ser ideal para desarrollos internos.

Vasco Duarte propone 10 nuevos principios para el desarrollo de software que pueden ayudar a predecir sin estimar:

  1. Trust the process, or change the process.
  2. Shorten the feedback cycle.
  3. Believe the data, not the estimates.
  4. Use alternatives to estimate-driven decision making.
  5. Test for value first, then test for functionality.
  6. Estimation is waste, reduce its impact on your business.
  7. Measure progress only with validated running software.
  8. The system where you work has predictable output. Learn to understand it.
  9. Hope is a bad management strategy.
  10. The transformation starts with you.

Hacer proyectos de software nos pone en una situación donde o se gana todo o se pierde todo, de manera que son una gran apuesta… ¿#NoProjects?