Estimaciones en desarrollo de software: un juego en el que todos perdemos

Romén Rodríguez-Gil
Romén Rodríguez-GilSoftware Engineer & Digital Entrepreneur
Estimaciones en desarrollo de
software
...Un juego en el que todos perdemos
Romén Rodríguez Gil
@romenrg - blog.romenrg.com
Sobre mi
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
Sobre mis experiencias: startups, software, productos digitales...
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
Sobre mi mayor aprendizaje: Vocabulary Notebook
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
Estimaciones en desarrollo de
software
...Un juego en el que todos perdemos
Romén Rodríguez Gil
@romenrg - blog.romenrg.com
Contenido
1. Las estimaciones en desarrollo de software fallan dramáticamente
1.1. Estudios sobre desviaciones (en tiempo y costes) en software
1.2. Asumamos que nunca sabemos cuánto vamos a tardar desarrollando
1.3. Las graves consecuencias de las estimaciones de tiempo
2. ¿Por qué creemos necesitar las estimaciones de tiempo?
2.1. La percepción de los managers / clientes frente a la de los desarrolladores
2.2. El rol de los contratos tóxicos
2.3. La falacia de comparar proyectos
3. Alternativas con las que todos ganamos
3.1. Team velocity + Backlog para el cálculo empírico y dinámico de fechas
3.2. Contratos no-tóxicos: agile contracts
3.3. Resultados y satisfacción de los clientes
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1. Las estimaciones en desarrollo fallan dramáticamente
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1. Las estimaciones fallan dramáticamente
● Desde los años 90 muchos plasman una desagradable realidad
○ Harvard Business Review:
■ Why Your IT Project May Be Riskier Than You Think (resumen InfoQ)
● Proyectos IT: sobrecoste de 400% y obtener sólo 25% de beneficios
esperados
○ Chaos Reports (Standish Group)
■ Informe de 2015 (resumen InfoQ)
● > 10 000 proyectos analizados
● El 71% de los proyectos software son definidos como fracasos
○ Tiempos, costes y resultados no son los esperados
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1.1 Estudios sobre desviaciones (en tiempo y costes) en software
1. Las estimaciones fallan dramáticamente
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1.1 Estudios sobre desviaciones (en tiempo y costes) en software
...Siguiendo con el Chaos Report 2015
¿Estamos mejorando?
1. Las estimaciones fallan dramáticamente
● Coding, Fast and Slow: Developers and the Psychology of Overconfidence
○ Primera experiencia de Dan Milstein
■ [...] The account manager explained, in rough form, what the client was looking for, we
talked it out, and I said, “That should be about 3 weeks of work.”
“Sounds good,” he said. And so I got to coding.
How long do you imagine this project took? Four weeks? Maybe five?
Um, actually: three months. [...]
○ Tras años intentando no volver a estar tan equivocado, Dan llega a la conclusión de que
siempre está tan equivocado… y se da cuenta de que, por lo general, todos lo estamos
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1.2 Asumamos que nunca sabemos cuánto vamos a tardar desarrollando
1. Las estimaciones fallan dramáticamente
● Crear software es complejo, abstracto y cambiante
○ Escribir software requiere entender algo a un nivel tan preciso que nos permita decir a un
ordenador cómo hacerlo.
■ Ese detalle no lo tenemos al hacer una análisis inicial, ni de lejos.
■ Para analizar con ese nivel de detalle tan preciso
● acabaríamos desarrollando gran parte del software para “analizarlo”
● sería tremendamente costoso e inflexible
● y desde luego no tendría la utilidad que se pretende de “análisis” ni “estimación”
● llegado a este punto sería más lógico desarrollar el software directamente...
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1.2 Asumamos que nunca sabemos cuánto vamos a tardar desarrollando
1. Las estimaciones fallan dramáticamente
● Crear software es complejo, abstracto y cambiante
○ Cuando analizamos requerimientos por primera vez
■ Siempre hay partes que no comprendemos del todo
■ Hay partes que el propio cliente no comprende del todo
■ No podemos conocer las tecnologías al 100%
■ Cada problema requiere tecnologías, librerías o desarrollos propios diferentes
● Y esto lo vamos describiendo durante el desarrollo
■ Los equipos cambian, cada persona tiene habilidades y conocimientos diferentes,
avanza a ritmo diferente y trabaja en equipo de forma diferente
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1.2 Asumamos que nunca sabemos cuánto vamos a tardar desarrollando
1. Las estimaciones fallan dramáticamente
● Lo más grave: desarrolladores que se creen sus estimaciones
○ Cualquier desarrollador que haya trabajado al menos unos meses, ha vivido el caos de las
estimaciones. Sin embargo, la mayoría siguen creyéndose capaces de estimar y buenos
estimadores
○ ¿Por qué se siguen creyendo los desarrolladores sus estimaciones?
■ Al terminar no cuantifican el tiempo real que les ha costado
■ No comparan el tiempo real con el “estimado” inicialmente
■ Trabajan en varias cosas a la vez, con lo que se desconoce la dedicación a cada una
■ Si es evidente la desviación se echan balones fuera (problemas externos, etc…)
■ Se quieren cumplir los deseos de managers / clientes
■ Se cede a la presión de grupo por parecer rápido (o no parecer lento)
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1.2 Asumamos que nunca sabemos cuánto vamos a tardar desarrollando
1. Las estimaciones fallan dramáticamente
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
Jose, me dijiste que
tendríamos lista la nueva
versión en un mes… Quedan
4 días, ¿ya estará casi, no?
Ehhh… bueno…
espero poder tenerlo,
como sea...
1.3 Las graves consecuencias de las estimaciones de tiempo
1. Las estimaciones fallan dramáticamente
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
¡#~@%#! ¡Que no llego! Nada, dejo de hacer
tests, yo creo que lo que queda es fácil… Sólo
falla en casos raros… lo subo así mismo y si
hace falta ya lo corregiré… Esto es complejo
de entender… pero bueno, los diagramas ya
los haré en otro momento… Uhm, ¿qué
nombre le poco a esta variable? Bah, “var
pepe” está bien, no perdamos tiempo...
1.3 Las graves consecuencias de las estimaciones de tiempo
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
… cuatro días más tarde ....
1.3 Las graves consecuencias de las estimaciones de tiempo
1. Las estimaciones fallan dramáticamente
1. Las estimaciones fallan dramáticamente
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
Jose, está todo
listo, ¿no?
Ehhh… bueno… sí… He estado
echando horas para poder tenerlo...
Sólo faltan algunas cosas
menores… Podemos subirlo así...
1.3 Las graves consecuencias de las estimaciones de tiempo
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
… un mes más tarde ....
1.3 Las graves consecuencias de las estimaciones de tiempo
1. Las estimaciones fallan dramáticamente
1. Las estimaciones fallan dramáticamente
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
¡Jose! ¡¿Pero qué demonios
has hecho?! Hay usuarios
que no pueden acceder y
otros a los que se les han
corrompido sus datos...
Ehhh… bueno… había
algunos casos raros…
Pero ya es mala suerte...
...Enseguida lo arreglo...
1.3 Las graves consecuencias de las estimaciones de tiempo
1. Las estimaciones fallan dramáticamente
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1.3 Las graves consecuencias de las estimaciones de tiempo
Pufff… ¡Este código no lo entiendo ni yo
mismo!… A saber en qué casos falla esto… No
hay ningún test…
¿Qué demonios era la variable “pepe”?
¿Cómo era el flujo de ejecución de este código?
Ojalá tuviera algún diagrama o descripción...
1. Las estimaciones fallan dramáticamente
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
1.3 Las graves consecuencias de las estimaciones de tiempo
¡A ver qué le digo a los clientes!... ¡Este tío
es un inútil! Si me hubiera dicho que que era
un plazo imposible hubiéramos esperado,
pero con esta cagada ya hemos perdido
más de 3 000 usuarios, lo que tiene un
impacto económico mayor de 10 000 €...
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
...todos perdemos….
1.3 Las graves consecuencias de las estimaciones de tiempo
1. Las estimaciones fallan dramáticamente
2. ¿Por qué creemos necesitar las estimaciones de tiempo?
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
2. ¿Por qué “necesitamos” estimaciones de tiempo?
2.1 Percepciones de Managers / clientes vs desarrolladores
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
Yo creo que tardo un par de
semanas… Digamos un mes,
por si acaso....
Ok, 160 horas de desarrollo, al
precio de facturación de la empresa
de 30€ / hora… serían 4800 €…
Bueno, pongamos 5000 € por si
acaso… Bueno, con ese precio
podemos ganar unos 1000 €
(restando gastos…)
Para facturar al
cliente calcularemos
X horas por Y€ / hora
Jose, ¿cuánto tardarías en hacer X?
2. ¿Por qué “necesitamos” estimaciones de tiempo?
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
… un mes más tarde....
2.1 Percepciones de Managers / clientes vs desarrolladores
2. ¿Por qué “necesitamos” estimaciones de tiempo?
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
¡Cómo que no está
terminado! ¡Dijiste que
estaría para final de mes!
Se ha complicado... Estuve varios días con
un bug inesperado de una librería, varios
días más analizando una API externa que
no estaba documentada como debería... Y
además hemos tenido problemas con
dependencias transitivas… Necesito al
menos dos o tres semanas más...
2.1 Percepciones de Managers / clientes vs desarrolladores
2. ¿Por qué “necesitamos” estimaciones de tiempo?
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
¡Tenías que haberlo
analizado antes de darme la
estimación! ¡Ahora vamos a
perder dinero!
… Pero es que hasta que no me he puesto
a desarrollar no han ido surgiendo los
problemas… Son demasiadas variables
a tener en cuenta como para preverlas...
2.1 Percepciones de Managers / clientes vs desarrolladores
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
...todos perdemos….
2.1 Percepciones de Managers / clientes vs desarrolladores
2. ¿Por qué “necesitamos” estimaciones de tiempo?
2. ¿Por qué “necesitamos” estimaciones de tiempo?
- Pretenden fijarlo todo
- Precio
- Tiempo
- Alcance
- Pero no sabemos qué va a ocurrir
- Hay mucha incertidumbre
- Cosas que no comprendemos
- Cosas que el cliente aún desconoce
- Complicaciones imprevistas
- Tecnologías variables y desconocidas
- Equipo variable y no “copiable
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
2.2 El rol de los contratos tóxicos
2. ¿Por qué “necesitamos” estimaciones de tiempo?
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
Agente, ¿cuánto tiempo tardarán en
encontrar al ladrón? Si al último lo
cogieron en 2 días, para este deberían
bastarles 36 horas, que ya tienen
experiencia...
Edison, eso que dice de crear algo
que nos ilumine por la noche sin
fuego ¿cuánto tardará en inventarlo?
Tampoco debe ser tan complicado
partiendo de una vela...
Doctor, ¿cuánto queda para
recuperarme de la fractura de peroné?
Para el esguince de tobillo fue sólo
una semana y con la fractura llevo ya
1 mes… ¡Su productividad ha bajado!
2.3 La falacia de comparar proyectos: no hay dos casos iguales
3. Alternativas con las que todos ganamos
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
3. Alternativas con las que todos ganamos
● Estimación indirecta
○ Team Velocity en puntos de esfuerzo
■ Práctica introducida por XP (eXtreme Programming)
■ Funcionalidades descritas como Historias de Usuario, estimadas en Puntos de Esfuerzo
■ La clave: desacoplar “tamaño”/“peso” de una funcionalidad del tiempo de desarrollo
● El margen de error es más natural, no hablamos de tiempo sino tamaño relativo
○ Product Backlog
■ Práctica introducida por Scrum
■ Tenemos una lista priorizada de las funcionalidades (historias de usuario) a desarrollar
○ Sprint
■ Periodo de desarrollo de X funcionalidades
■ Usualmente 15 días o 1 mes
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
3.1 Team velocity + Backlog para el cálculo empírico y dinámico de fechas
3. Alternativas con las que todos ganamos
● Estimación indirecta
○ Inicialmente estimamos todo el Backlog en Puntos de Esfuerzo
■ Tomando como referencia las Historias de Usuario más pequeñas o mayores
■ Mantenemos estas estimaciones consistentes
○ Sprints
■ Al planificar un sprint
● El equipo añade el número de Historias que cree ser capaz de terminar
■ Al finalizar un sprint
● Veremos cuántos puntos de esfuerzo hemos podido realizar
● En los primeros es normal que varíen los puntos de esfuerzo que realizamos
● Tras varios sprints convergerá en una cifra similar cada sprint: Team Velocity
○ Conocienciendo nuestra Team Velocity, el total de puntos de nuestro backlog y la
duración de cada sprint, podremos estimar la fecha de lanzamiento
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
3.1 Team velocity + Backlog para el cálculo empírico y dinámico de fechas
● No Deadlines For You! Software Dev Without Estimates, Specs or Other Lies
○ Conclusión del artículo de Dan Milstein
■ Tras aprender que no es posible estimar en software
■ Lo importante es ayudar al cliente
● Aprender qué quiere realmente
● Ayudarle a recabar datos sobre el mercado
● Ayudarle a recabar datos sobre la efectividad de las funcionalidades
● Desarrollar funcionalidades pequeñas
○ Priorizadas por el valor que aportan al negocio
○ Al final Dan está hablando de enfoques ágiles
■ Ir a la raíz del problema, aprender constantemente, desarrollo iterativo-incremental,
facturar por dedicación (2 semanas de dedicación a X...)
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
3. Alternativas con las que todos ganamos
3.2 Contratos no-tóxicos: agile contracts
3. Alternativas con las que todos ganamos
● ¿Existen contratos / enfoques alternativos? “Agile contracts”
○ “Esconder Agile”
■ Emplear métodos ágiles internamente y prever desviaciones dinámicamente
○ No cure, no pay
■ Sólo se cobra si se soluciona el problema
● Riesgo del proveedor para asumir inversión y controlar alcance
○ Time & Materials
■ Ej: Se cobra por hora trabajada + “suplidos”
○ Rolling contracts
■ Precio fijado por sprint
■ Producto iterativo-incremental como resultado de cada sprint
■ Renovación automática tras cada sprint
■ Money for nothing, change for free (variación propuesta por Jeff Sutherland)
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
3.2 Contratos no-tóxicos: agile contracts
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
● Enfoques ágiles mejoran la
satisfacción
○ Proyectos pequeños
■ Fracasos: -60%
○ Proyectos medianos
■ Éxitos: +400%
○ Proyectos grandes
■ Éxitos: +600%
3. Alternativas con las que todos ganamos
3.3 Resultados y satisfacción de los clientes
Estimaciones en desarrollo de
software
...Un juego en el que todos perdemos
Romén Rodríguez Gil
@romenrg - blog.romenrg.com
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
Why Asking Developers for Time Estimates in Software Projects Is a
Terrible Idea and How to Bypass It With Scrum
Leer más:
http://blog.romenrg.com/blog/2015/09/28/why-asking-developers-for-time-estimates-
in-software-projects-is-a-terrible-idea-and-how-to-bypass-it-with-scrum/
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
...todos perdemos
Centrándonos en las estimaciones de tiempo en desarrollo de software...
Recuerda:
Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
...todos podemos ganar
Con alternativas ágiles (empíricas y dinámicas)
Recuerda:
Estimaciones en desarrollo de
software
...Un juego en el que todos perdemos
Romén Rodríguez Gil
@romenrg - blog.romenrg.com
1 of 41

Recommended

Estimaciones en desarrollo de software, versión 2017 by
Estimaciones en desarrollo de software, versión 2017Estimaciones en desarrollo de software, versión 2017
Estimaciones en desarrollo de software, versión 2017Romén Rodríguez-Gil
214 views44 slides
Iniciación ágil de proyectos de software by
Iniciación ágil de proyectos de softwareIniciación ágil de proyectos de software
Iniciación ágil de proyectos de softwareIsrael Antezana Rojas
1.4K views31 slides
Introducción a la Programación Extrema (XP) by
Introducción a la Programación Extrema (XP)Introducción a la Programación Extrema (XP)
Introducción a la Programación Extrema (XP)Israel Antezana Rojas
1.5K views33 slides
HLH Introduction Email by
HLH Introduction EmailHLH Introduction Email
HLH Introduction EmailDaisy Zhou
174 views17 slides
Company Presentation by
Company PresentationCompany Presentation
Company PresentationRene_Weiss
826 views28 slides
Publimetro especial-dia-feliz-psicologo-venegas by
Publimetro especial-dia-feliz-psicologo-venegasPublimetro especial-dia-feliz-psicologo-venegas
Publimetro especial-dia-feliz-psicologo-venegasPSICOLOGOS PERU
481 views1 slide

More Related Content

Viewers also liked

el poblamiento de arcones by
el poblamiento de arconesel poblamiento de arcones
el poblamiento de arconesnoeliapradena
637 views10 slides
HT Textos diversos by
HT Textos diversosHT Textos diversos
HT Textos diversosJoão Carmo Vendramim
460 views113 slides
Estudio sector-animación-digital-y-videojuegos-bogotá by
Estudio sector-animación-digital-y-videojuegos-bogotáEstudio sector-animación-digital-y-videojuegos-bogotá
Estudio sector-animación-digital-y-videojuegos-bogotáHugo Hernan Angarita Espinosa
1K views136 slides
¿Qué son los ataques DDOS? by
¿Qué son los ataques DDOS?¿Qué son los ataques DDOS?
¿Qué son los ataques DDOS?Enrique Rico Molina
411 views6 slides
Ponte en acción, vamos a reciclar!!!!!! by
Ponte en acción, vamos a reciclar!!!!!!Ponte en acción, vamos a reciclar!!!!!!
Ponte en acción, vamos a reciclar!!!!!!Magui Roarceo
559 views18 slides
Art app ch7 by
Art app ch7Art app ch7
Art app ch7brannanART1101
3.3K views59 slides

Viewers also liked(20)

el poblamiento de arcones by noeliapradena
el poblamiento de arconesel poblamiento de arcones
el poblamiento de arcones
noeliapradena637 views
Ponte en acción, vamos a reciclar!!!!!! by Magui Roarceo
Ponte en acción, vamos a reciclar!!!!!!Ponte en acción, vamos a reciclar!!!!!!
Ponte en acción, vamos a reciclar!!!!!!
Magui Roarceo559 views
Arquitectura y Visión de Extreme Networks en el Data Center by Extreme Networks
Arquitectura y Visión de Extreme Networks en el Data CenterArquitectura y Visión de Extreme Networks en el Data Center
Arquitectura y Visión de Extreme Networks en el Data Center
Extreme Networks2.4K views
Ejercicio de logos by narcesy
Ejercicio de logosEjercicio de logos
Ejercicio de logos
narcesy316 views
Película Rain man by eird2011
Película Rain manPelícula Rain man
Película Rain man
eird20116.5K views
Cuidado e instalación de cartuchos de tinta by Juventud Musical
Cuidado e instalación de cartuchos de tintaCuidado e instalación de cartuchos de tinta
Cuidado e instalación de cartuchos de tinta
Juventud Musical1.7K views
integrar tic: docente virtual by Belén Nadal
integrar tic: docente virtualintegrar tic: docente virtual
integrar tic: docente virtual
Belén Nadal268 views

Similar to Estimaciones en desarrollo de software: un juego en el que todos perdemos

Pensamiento agil, un estilo de vida! by
Pensamiento agil, un estilo de vida!Pensamiento agil, un estilo de vida!
Pensamiento agil, un estilo de vida!Development Factory Group
2.2K views33 slides
¿Qué define a un buen desarrollador de Software? by
¿Qué define a un buen desarrollador de Software?¿Qué define a un buen desarrollador de Software?
¿Qué define a un buen desarrollador de Software?Romén Rodríguez-Gil
128 views29 slides
Cómo empezar en el desarrollo de videojuegos by
Cómo empezar en el desarrollo de videojuegosCómo empezar en el desarrollo de videojuegos
Cómo empezar en el desarrollo de videojuegosRoberto Albornoz
388 views11 slides
GWJ2019 Capital - Patrones de fracaso by
GWJ2019 Capital - Patrones de fracasoGWJ2019 Capital - Patrones de fracaso
GWJ2019 Capital - Patrones de fracasoGuillermo Averbuj
312 views46 slides
Planificación y gestión de proyectos de desarrollo de videojuegos by
Planificación y gestión de proyectos de desarrollo de videojuegosPlanificación y gestión de proyectos de desarrollo de videojuegos
Planificación y gestión de proyectos de desarrollo de videojuegosElío Ferrán
3.8K views31 slides
Desarrollo de Software por www.jasoftsolutions.com by
Desarrollo de Software por www.jasoftsolutions.comDesarrollo de Software por www.jasoftsolutions.com
Desarrollo de Software por www.jasoftsolutions.comJosé Luis Lee Rázuri
395 views25 slides

Similar to Estimaciones en desarrollo de software: un juego en el que todos perdemos(20)

Cómo empezar en el desarrollo de videojuegos by Roberto Albornoz
Cómo empezar en el desarrollo de videojuegosCómo empezar en el desarrollo de videojuegos
Cómo empezar en el desarrollo de videojuegos
Roberto Albornoz388 views
Planificación y gestión de proyectos de desarrollo de videojuegos by Elío Ferrán
Planificación y gestión de proyectos de desarrollo de videojuegosPlanificación y gestión de proyectos de desarrollo de videojuegos
Planificación y gestión de proyectos de desarrollo de videojuegos
Elío Ferrán3.8K views
Experiencias desarrollando mi primer videojuego - Techne18 by Vanessa Galcera
Experiencias desarrollando mi primer videojuego - Techne18Experiencias desarrollando mi primer videojuego - Techne18
Experiencias desarrollando mi primer videojuego - Techne18
Vanessa Galcera152 views
Micro Focus - Presentación TestingAndToolsDay 2016 v0.1 by Micro Focus
Micro Focus - Presentación TestingAndToolsDay 2016 v0.1Micro Focus - Presentación TestingAndToolsDay 2016 v0.1
Micro Focus - Presentación TestingAndToolsDay 2016 v0.1
Micro Focus81 views
Diapositivas Robotica! by Plan24
Diapositivas Robotica!Diapositivas Robotica!
Diapositivas Robotica!
Plan243.8K views
Pasos para crear un videojuego power ponit by tatiana meneses
Pasos para crear un videojuego power ponitPasos para crear un videojuego power ponit
Pasos para crear un videojuego power ponit
tatiana meneses88 views
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l... by Gustavo Arjones
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Gustavo Arjones419 views
Juegos de Producción y Estadística para la Promoción de las Metodologías Ágiles by Luiz C. Parzianello
Juegos de Producción y Estadística para laPromoción de las Metodologías ÁgilesJuegos de Producción y Estadística para laPromoción de las Metodologías Ágiles
Juegos de Producción y Estadística para la Promoción de las Metodologías Ágiles

More from Romén Rodríguez-Gil

Building a Cloud Native Platform to Provide Lab Instances at CloudBees Univer... by
Building a Cloud Native Platform to Provide Lab Instances at CloudBees Univer...Building a Cloud Native Platform to Provide Lab Instances at CloudBees Univer...
Building a Cloud Native Platform to Provide Lab Instances at CloudBees Univer...Romén Rodríguez-Gil
138 views29 slides
Agile software development - Beyond Projects - ULL by
Agile software development - Beyond Projects - ULLAgile software development - Beyond Projects - ULL
Agile software development - Beyond Projects - ULLRomén Rodríguez-Gil
262 views29 slides
"Everything as code" - CloudBees University by
"Everything as code" - CloudBees University"Everything as code" - CloudBees University
"Everything as code" - CloudBees UniversityRomén Rodríguez-Gil
95 views32 slides
Dwjw2019 Lisbon - Training-as-code- applying CI & CD to training development by
Dwjw2019 Lisbon - Training-as-code- applying CI & CD to training developmentDwjw2019 Lisbon - Training-as-code- applying CI & CD to training development
Dwjw2019 Lisbon - Training-as-code- applying CI & CD to training developmentRomén Rodríguez-Gil
164 views33 slides
Analítica web y métricas para Startups, Julio 2018 by
Analítica web y métricas para Startups, Julio 2018Analítica web y métricas para Startups, Julio 2018
Analítica web y métricas para Startups, Julio 2018Romén Rodríguez-Gil
213 views60 slides
Introducción a Lean Startup by
Introducción a Lean StartupIntroducción a Lean Startup
Introducción a Lean StartupRomén Rodríguez-Gil
116 views26 slides

More from Romén Rodríguez-Gil(20)

Building a Cloud Native Platform to Provide Lab Instances at CloudBees Univer... by Romén Rodríguez-Gil
Building a Cloud Native Platform to Provide Lab Instances at CloudBees Univer...Building a Cloud Native Platform to Provide Lab Instances at CloudBees Univer...
Building a Cloud Native Platform to Provide Lab Instances at CloudBees Univer...
Dwjw2019 Lisbon - Training-as-code- applying CI & CD to training development by Romén Rodríguez-Gil
Dwjw2019 Lisbon - Training-as-code- applying CI & CD to training developmentDwjw2019 Lisbon - Training-as-code- applying CI & CD to training development
Dwjw2019 Lisbon - Training-as-code- applying CI & CD to training development
Redes Sociales: Conceptos, estrategia y uso de las principales plataformas by Romén Rodríguez-Gil
Redes Sociales: Conceptos, estrategia y uso de las principales plataformasRedes Sociales: Conceptos, estrategia y uso de las principales plataformas
Redes Sociales: Conceptos, estrategia y uso de las principales plataformas
Analítica web y métricas para startups (versión 2017) by Romén Rodríguez-Gil
Analítica web y métricas para startups (versión 2017)Analítica web y métricas para startups (versión 2017)
Analítica web y métricas para startups (versión 2017)
Analítica web y métricas para startups (versión 2016) by Romén Rodríguez-Gil
Analítica web y métricas para startups (versión 2016)Analítica web y métricas para startups (versión 2016)
Analítica web y métricas para startups (versión 2016)
New Economy & Startups: 3 New Realities and 2 Key Insights by Romén Rodríguez-Gil
New Economy & Startups: 3 New Realities and 2 Key InsightsNew Economy & Startups: 3 New Realities and 2 Key Insights
New Economy & Startups: 3 New Realities and 2 Key Insights
Curso LaunchTF: Customer Discovery. Taller de entrevistas con clientes by Romén Rodríguez-Gil
Curso LaunchTF: Customer Discovery. Taller de entrevistas con clientesCurso LaunchTF: Customer Discovery. Taller de entrevistas con clientes
Curso LaunchTF: Customer Discovery. Taller de entrevistas con clientes
Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Testing auto... by Romén Rodríguez-Gil
Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Testing auto...Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Testing auto...
Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Testing auto...
Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Claves sobre... by Romén Rodríguez-Gil
Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Claves sobre...Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Claves sobre...
Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Claves sobre...
Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Experimentos... by Romén Rodríguez-Gil
Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Experimentos...Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Experimentos...
Curso UX Tenerife (No maltrates a tus usuarios) FG ULL - Día 5 - Experimentos...

Recently uploaded

Criptomonedas LIBRO.pdf by
Criptomonedas LIBRO.pdfCriptomonedas LIBRO.pdf
Criptomonedas LIBRO.pdffinanzashotelestibis
9 views38 slides
Los recursos preventivos en la construcción: una reforma necesaria by
Los recursos preventivos en la construcción: una reforma necesariaLos recursos preventivos en la construcción: una reforma necesaria
Los recursos preventivos en la construcción: una reforma necesariaPrevencionar
296 views20 slides
Catalogo Diciembre TWC by
Catalogo Diciembre TWCCatalogo Diciembre TWC
Catalogo Diciembre TWCDesiPrieu
88 views25 slides
diagrama de flujo.pptx by
diagrama de flujo.pptxdiagrama de flujo.pptx
diagrama de flujo.pptxLeonardoSotillo
9 views1 slide
IDENTIDAD DEL NEGOCIO.pptx by
IDENTIDAD DEL NEGOCIO.pptxIDENTIDAD DEL NEGOCIO.pptx
IDENTIDAD DEL NEGOCIO.pptxGiovanna Beatriz Gederlini Ramírez
7 views43 slides
Metodología y contenido para implantar un plan de prevención y gestión de aus... by
Metodología y contenido para implantar un plan de prevención y gestión de aus...Metodología y contenido para implantar un plan de prevención y gestión de aus...
Metodología y contenido para implantar un plan de prevención y gestión de aus...Prevencionar
198 views1 slide

Recently uploaded(18)

Los recursos preventivos en la construcción: una reforma necesaria by Prevencionar
Los recursos preventivos en la construcción: una reforma necesariaLos recursos preventivos en la construcción: una reforma necesaria
Los recursos preventivos en la construcción: una reforma necesaria
Prevencionar296 views
Catalogo Diciembre TWC by DesiPrieu
Catalogo Diciembre TWCCatalogo Diciembre TWC
Catalogo Diciembre TWC
DesiPrieu88 views
Metodología y contenido para implantar un plan de prevención y gestión de aus... by Prevencionar
Metodología y contenido para implantar un plan de prevención y gestión de aus...Metodología y contenido para implantar un plan de prevención y gestión de aus...
Metodología y contenido para implantar un plan de prevención y gestión de aus...
Prevencionar198 views
Cierre Balance y Operación Renta 2024 -Obuma ERP.pptx by OBUMA erp
Cierre Balance y Operación Renta 2024 -Obuma ERP.pptxCierre Balance y Operación Renta 2024 -Obuma ERP.pptx
Cierre Balance y Operación Renta 2024 -Obuma ERP.pptx
OBUMA erp7 views
Revista La Verdad - Edición Noviembre 2023 by larevista
Revista La Verdad - Edición Noviembre 2023Revista La Verdad - Edición Noviembre 2023
Revista La Verdad - Edición Noviembre 2023
larevista15 views
Evaluación de la variación de la onda de la mucosa según el tono de fonación ... by Prevencionar
Evaluación de la variación de la onda de la mucosa según el tono de fonación ...Evaluación de la variación de la onda de la mucosa según el tono de fonación ...
Evaluación de la variación de la onda de la mucosa según el tono de fonación ...
Prevencionar108 views
Obligaciones en Prevención de Riesgos Laborales ¿existen límites? by Prevencionar
Obligaciones en Prevención de Riesgos Laborales ¿existen límites?Obligaciones en Prevención de Riesgos Laborales ¿existen límites?
Obligaciones en Prevención de Riesgos Laborales ¿existen límites?
Prevencionar209 views
RESUMEN CURSO TECNOLOGIAS PARA LA ENSEÑANZA VIRTUAL-2023.pptx by enrique590020
RESUMEN CURSO TECNOLOGIAS PARA LA ENSEÑANZA VIRTUAL-2023.pptxRESUMEN CURSO TECNOLOGIAS PARA LA ENSEÑANZA VIRTUAL-2023.pptx
RESUMEN CURSO TECNOLOGIAS PARA LA ENSEÑANZA VIRTUAL-2023.pptx
enrique5900206 views
Diferencias de género en los niveles de ansiedad tras la organización e imple... by Prevencionar
Diferencias de género en los niveles de ansiedad tras la organización e imple...Diferencias de género en los niveles de ansiedad tras la organización e imple...
Diferencias de género en los niveles de ansiedad tras la organización e imple...
Prevencionar77 views

Estimaciones en desarrollo de software: un juego en el que todos perdemos

  • 1. Estimaciones en desarrollo de software ...Un juego en el que todos perdemos Romén Rodríguez Gil @romenrg - blog.romenrg.com
  • 2. Sobre mi Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
  • 3. Sobre mis experiencias: startups, software, productos digitales... Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
  • 4. Sobre mi mayor aprendizaje: Vocabulary Notebook Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
  • 5. Estimaciones en desarrollo de software ...Un juego en el que todos perdemos Romén Rodríguez Gil @romenrg - blog.romenrg.com
  • 6. Contenido 1. Las estimaciones en desarrollo de software fallan dramáticamente 1.1. Estudios sobre desviaciones (en tiempo y costes) en software 1.2. Asumamos que nunca sabemos cuánto vamos a tardar desarrollando 1.3. Las graves consecuencias de las estimaciones de tiempo 2. ¿Por qué creemos necesitar las estimaciones de tiempo? 2.1. La percepción de los managers / clientes frente a la de los desarrolladores 2.2. El rol de los contratos tóxicos 2.3. La falacia de comparar proyectos 3. Alternativas con las que todos ganamos 3.1. Team velocity + Backlog para el cálculo empírico y dinámico de fechas 3.2. Contratos no-tóxicos: agile contracts 3.3. Resultados y satisfacción de los clientes Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
  • 7. 1. Las estimaciones en desarrollo fallan dramáticamente Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
  • 8. 1. Las estimaciones fallan dramáticamente ● Desde los años 90 muchos plasman una desagradable realidad ○ Harvard Business Review: ■ Why Your IT Project May Be Riskier Than You Think (resumen InfoQ) ● Proyectos IT: sobrecoste de 400% y obtener sólo 25% de beneficios esperados ○ Chaos Reports (Standish Group) ■ Informe de 2015 (resumen InfoQ) ● > 10 000 proyectos analizados ● El 71% de los proyectos software son definidos como fracasos ○ Tiempos, costes y resultados no son los esperados Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 1.1 Estudios sobre desviaciones (en tiempo y costes) en software
  • 9. 1. Las estimaciones fallan dramáticamente Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 1.1 Estudios sobre desviaciones (en tiempo y costes) en software ...Siguiendo con el Chaos Report 2015 ¿Estamos mejorando?
  • 10. 1. Las estimaciones fallan dramáticamente ● Coding, Fast and Slow: Developers and the Psychology of Overconfidence ○ Primera experiencia de Dan Milstein ■ [...] The account manager explained, in rough form, what the client was looking for, we talked it out, and I said, “That should be about 3 weeks of work.” “Sounds good,” he said. And so I got to coding. How long do you imagine this project took? Four weeks? Maybe five? Um, actually: three months. [...] ○ Tras años intentando no volver a estar tan equivocado, Dan llega a la conclusión de que siempre está tan equivocado… y se da cuenta de que, por lo general, todos lo estamos Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 1.2 Asumamos que nunca sabemos cuánto vamos a tardar desarrollando
  • 11. 1. Las estimaciones fallan dramáticamente ● Crear software es complejo, abstracto y cambiante ○ Escribir software requiere entender algo a un nivel tan preciso que nos permita decir a un ordenador cómo hacerlo. ■ Ese detalle no lo tenemos al hacer una análisis inicial, ni de lejos. ■ Para analizar con ese nivel de detalle tan preciso ● acabaríamos desarrollando gran parte del software para “analizarlo” ● sería tremendamente costoso e inflexible ● y desde luego no tendría la utilidad que se pretende de “análisis” ni “estimación” ● llegado a este punto sería más lógico desarrollar el software directamente... Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 1.2 Asumamos que nunca sabemos cuánto vamos a tardar desarrollando
  • 12. 1. Las estimaciones fallan dramáticamente ● Crear software es complejo, abstracto y cambiante ○ Cuando analizamos requerimientos por primera vez ■ Siempre hay partes que no comprendemos del todo ■ Hay partes que el propio cliente no comprende del todo ■ No podemos conocer las tecnologías al 100% ■ Cada problema requiere tecnologías, librerías o desarrollos propios diferentes ● Y esto lo vamos describiendo durante el desarrollo ■ Los equipos cambian, cada persona tiene habilidades y conocimientos diferentes, avanza a ritmo diferente y trabaja en equipo de forma diferente Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 1.2 Asumamos que nunca sabemos cuánto vamos a tardar desarrollando
  • 13. 1. Las estimaciones fallan dramáticamente ● Lo más grave: desarrolladores que se creen sus estimaciones ○ Cualquier desarrollador que haya trabajado al menos unos meses, ha vivido el caos de las estimaciones. Sin embargo, la mayoría siguen creyéndose capaces de estimar y buenos estimadores ○ ¿Por qué se siguen creyendo los desarrolladores sus estimaciones? ■ Al terminar no cuantifican el tiempo real que les ha costado ■ No comparan el tiempo real con el “estimado” inicialmente ■ Trabajan en varias cosas a la vez, con lo que se desconoce la dedicación a cada una ■ Si es evidente la desviación se echan balones fuera (problemas externos, etc…) ■ Se quieren cumplir los deseos de managers / clientes ■ Se cede a la presión de grupo por parecer rápido (o no parecer lento) Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 1.2 Asumamos que nunca sabemos cuánto vamos a tardar desarrollando
  • 14. 1. Las estimaciones fallan dramáticamente Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) Jose, me dijiste que tendríamos lista la nueva versión en un mes… Quedan 4 días, ¿ya estará casi, no? Ehhh… bueno… espero poder tenerlo, como sea... 1.3 Las graves consecuencias de las estimaciones de tiempo
  • 15. 1. Las estimaciones fallan dramáticamente Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) ¡#~@%#! ¡Que no llego! Nada, dejo de hacer tests, yo creo que lo que queda es fácil… Sólo falla en casos raros… lo subo así mismo y si hace falta ya lo corregiré… Esto es complejo de entender… pero bueno, los diagramas ya los haré en otro momento… Uhm, ¿qué nombre le poco a esta variable? Bah, “var pepe” está bien, no perdamos tiempo... 1.3 Las graves consecuencias de las estimaciones de tiempo
  • 16. Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) … cuatro días más tarde .... 1.3 Las graves consecuencias de las estimaciones de tiempo 1. Las estimaciones fallan dramáticamente
  • 17. 1. Las estimaciones fallan dramáticamente Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) Jose, está todo listo, ¿no? Ehhh… bueno… sí… He estado echando horas para poder tenerlo... Sólo faltan algunas cosas menores… Podemos subirlo así... 1.3 Las graves consecuencias de las estimaciones de tiempo
  • 18. Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) … un mes más tarde .... 1.3 Las graves consecuencias de las estimaciones de tiempo 1. Las estimaciones fallan dramáticamente
  • 19. 1. Las estimaciones fallan dramáticamente Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) ¡Jose! ¡¿Pero qué demonios has hecho?! Hay usuarios que no pueden acceder y otros a los que se les han corrompido sus datos... Ehhh… bueno… había algunos casos raros… Pero ya es mala suerte... ...Enseguida lo arreglo... 1.3 Las graves consecuencias de las estimaciones de tiempo
  • 20. 1. Las estimaciones fallan dramáticamente Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 1.3 Las graves consecuencias de las estimaciones de tiempo Pufff… ¡Este código no lo entiendo ni yo mismo!… A saber en qué casos falla esto… No hay ningún test… ¿Qué demonios era la variable “pepe”? ¿Cómo era el flujo de ejecución de este código? Ojalá tuviera algún diagrama o descripción...
  • 21. 1. Las estimaciones fallan dramáticamente Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 1.3 Las graves consecuencias de las estimaciones de tiempo ¡A ver qué le digo a los clientes!... ¡Este tío es un inútil! Si me hubiera dicho que que era un plazo imposible hubiéramos esperado, pero con esta cagada ya hemos perdido más de 3 000 usuarios, lo que tiene un impacto económico mayor de 10 000 €...
  • 22. Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) ...todos perdemos…. 1.3 Las graves consecuencias de las estimaciones de tiempo 1. Las estimaciones fallan dramáticamente
  • 23. 2. ¿Por qué creemos necesitar las estimaciones de tiempo? Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
  • 24. 2. ¿Por qué “necesitamos” estimaciones de tiempo? 2.1 Percepciones de Managers / clientes vs desarrolladores Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) Yo creo que tardo un par de semanas… Digamos un mes, por si acaso.... Ok, 160 horas de desarrollo, al precio de facturación de la empresa de 30€ / hora… serían 4800 €… Bueno, pongamos 5000 € por si acaso… Bueno, con ese precio podemos ganar unos 1000 € (restando gastos…) Para facturar al cliente calcularemos X horas por Y€ / hora Jose, ¿cuánto tardarías en hacer X?
  • 25. 2. ¿Por qué “necesitamos” estimaciones de tiempo? Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) … un mes más tarde.... 2.1 Percepciones de Managers / clientes vs desarrolladores
  • 26. 2. ¿Por qué “necesitamos” estimaciones de tiempo? Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) ¡Cómo que no está terminado! ¡Dijiste que estaría para final de mes! Se ha complicado... Estuve varios días con un bug inesperado de una librería, varios días más analizando una API externa que no estaba documentada como debería... Y además hemos tenido problemas con dependencias transitivas… Necesito al menos dos o tres semanas más... 2.1 Percepciones de Managers / clientes vs desarrolladores
  • 27. 2. ¿Por qué “necesitamos” estimaciones de tiempo? Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) ¡Tenías que haberlo analizado antes de darme la estimación! ¡Ahora vamos a perder dinero! … Pero es que hasta que no me he puesto a desarrollar no han ido surgiendo los problemas… Son demasiadas variables a tener en cuenta como para preverlas... 2.1 Percepciones de Managers / clientes vs desarrolladores
  • 28. Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) ...todos perdemos…. 2.1 Percepciones de Managers / clientes vs desarrolladores 2. ¿Por qué “necesitamos” estimaciones de tiempo?
  • 29. 2. ¿Por qué “necesitamos” estimaciones de tiempo? - Pretenden fijarlo todo - Precio - Tiempo - Alcance - Pero no sabemos qué va a ocurrir - Hay mucha incertidumbre - Cosas que no comprendemos - Cosas que el cliente aún desconoce - Complicaciones imprevistas - Tecnologías variables y desconocidas - Equipo variable y no “copiable Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 2.2 El rol de los contratos tóxicos
  • 30. 2. ¿Por qué “necesitamos” estimaciones de tiempo? Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) Agente, ¿cuánto tiempo tardarán en encontrar al ladrón? Si al último lo cogieron en 2 días, para este deberían bastarles 36 horas, que ya tienen experiencia... Edison, eso que dice de crear algo que nos ilumine por la noche sin fuego ¿cuánto tardará en inventarlo? Tampoco debe ser tan complicado partiendo de una vela... Doctor, ¿cuánto queda para recuperarme de la fractura de peroné? Para el esguince de tobillo fue sólo una semana y con la fractura llevo ya 1 mes… ¡Su productividad ha bajado! 2.3 La falacia de comparar proyectos: no hay dos casos iguales
  • 31. 3. Alternativas con las que todos ganamos Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg)
  • 32. 3. Alternativas con las que todos ganamos ● Estimación indirecta ○ Team Velocity en puntos de esfuerzo ■ Práctica introducida por XP (eXtreme Programming) ■ Funcionalidades descritas como Historias de Usuario, estimadas en Puntos de Esfuerzo ■ La clave: desacoplar “tamaño”/“peso” de una funcionalidad del tiempo de desarrollo ● El margen de error es más natural, no hablamos de tiempo sino tamaño relativo ○ Product Backlog ■ Práctica introducida por Scrum ■ Tenemos una lista priorizada de las funcionalidades (historias de usuario) a desarrollar ○ Sprint ■ Periodo de desarrollo de X funcionalidades ■ Usualmente 15 días o 1 mes Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 3.1 Team velocity + Backlog para el cálculo empírico y dinámico de fechas
  • 33. 3. Alternativas con las que todos ganamos ● Estimación indirecta ○ Inicialmente estimamos todo el Backlog en Puntos de Esfuerzo ■ Tomando como referencia las Historias de Usuario más pequeñas o mayores ■ Mantenemos estas estimaciones consistentes ○ Sprints ■ Al planificar un sprint ● El equipo añade el número de Historias que cree ser capaz de terminar ■ Al finalizar un sprint ● Veremos cuántos puntos de esfuerzo hemos podido realizar ● En los primeros es normal que varíen los puntos de esfuerzo que realizamos ● Tras varios sprints convergerá en una cifra similar cada sprint: Team Velocity ○ Conocienciendo nuestra Team Velocity, el total de puntos de nuestro backlog y la duración de cada sprint, podremos estimar la fecha de lanzamiento Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 3.1 Team velocity + Backlog para el cálculo empírico y dinámico de fechas
  • 34. ● No Deadlines For You! Software Dev Without Estimates, Specs or Other Lies ○ Conclusión del artículo de Dan Milstein ■ Tras aprender que no es posible estimar en software ■ Lo importante es ayudar al cliente ● Aprender qué quiere realmente ● Ayudarle a recabar datos sobre el mercado ● Ayudarle a recabar datos sobre la efectividad de las funcionalidades ● Desarrollar funcionalidades pequeñas ○ Priorizadas por el valor que aportan al negocio ○ Al final Dan está hablando de enfoques ágiles ■ Ir a la raíz del problema, aprender constantemente, desarrollo iterativo-incremental, facturar por dedicación (2 semanas de dedicación a X...) Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 3. Alternativas con las que todos ganamos 3.2 Contratos no-tóxicos: agile contracts
  • 35. 3. Alternativas con las que todos ganamos ● ¿Existen contratos / enfoques alternativos? “Agile contracts” ○ “Esconder Agile” ■ Emplear métodos ágiles internamente y prever desviaciones dinámicamente ○ No cure, no pay ■ Sólo se cobra si se soluciona el problema ● Riesgo del proveedor para asumir inversión y controlar alcance ○ Time & Materials ■ Ej: Se cobra por hora trabajada + “suplidos” ○ Rolling contracts ■ Precio fijado por sprint ■ Producto iterativo-incremental como resultado de cada sprint ■ Renovación automática tras cada sprint ■ Money for nothing, change for free (variación propuesta por Jeff Sutherland) Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) 3.2 Contratos no-tóxicos: agile contracts
  • 36. Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) ● Enfoques ágiles mejoran la satisfacción ○ Proyectos pequeños ■ Fracasos: -60% ○ Proyectos medianos ■ Éxitos: +400% ○ Proyectos grandes ■ Éxitos: +600% 3. Alternativas con las que todos ganamos 3.3 Resultados y satisfacción de los clientes
  • 37. Estimaciones en desarrollo de software ...Un juego en el que todos perdemos Romén Rodríguez Gil @romenrg - blog.romenrg.com
  • 38. Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) Why Asking Developers for Time Estimates in Software Projects Is a Terrible Idea and How to Bypass It With Scrum Leer más: http://blog.romenrg.com/blog/2015/09/28/why-asking-developers-for-time-estimates- in-software-projects-is-a-terrible-idea-and-how-to-bypass-it-with-scrum/
  • 39. Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) ...todos perdemos Centrándonos en las estimaciones de tiempo en desarrollo de software... Recuerda:
  • 40. Estimaciones en desarrollo de Software: un juego en el que todos perdemos. Romén Rodríguez Gil (@romenrg) ...todos podemos ganar Con alternativas ágiles (empíricas y dinámicas) Recuerda:
  • 41. Estimaciones en desarrollo de software ...Un juego en el que todos perdemos Romén Rodríguez Gil @romenrg - blog.romenrg.com