Desarrollo ágil de software

2,939 views

Published on

Principios de las metodologías ágiles, conclusiones.

Published in: Technology
  • Be the first to comment

Desarrollo ágil de software

  1. 1. Charla para http://themelee.org/Me pedían que hablase de mi experiencia personal, y he intentado resumir mi caminopor el agilismo, mis razones y mis conclusiones actuales. 1
  2. 2. El nombre es una etiqueta, realmente lo que me define es…Actualmente desempeño mi labor profesional en Biko, donde llevamos tres añosimplantando metodologías ágiles, y soy co-fundador de la “nueva” agile-spain, que haconseguido aglutinar un importante movimiento alrededor de la misma: conferencias,coding dojo, etc.Escribo el blog http://najaraba.blogspot.com , donde hablo especialmente demetodologías ágiles. 2
  3. 3. - ¿sois capaces de adivinar el futuro? 3
  4. 4. -¿y con un diagrama de gantt?No solo no adivinamos el futuro, si no que somos malos imaginándolo, pues tendemos aaplicar lo que ya conocemos. ¿Cuántas veces somos capaces de preveer algo que nostire por la borda un proyecto? Nassim Taleb destaca en su libro “El cisne negro” que lasevaluaciones de riesgo se basan en lo que ha ocurrido en el pasado, y que por tanto losproblemas inesperados y de gran impacto no son incluidos. 4
  5. 5. - ¿sois capaces de leer la mente? 5
  6. 6. -¿y sí de plasmarlo en un documento de requisitos?Seguimos pensando en cerrar los alcances como mejor se pueda, cuando es mejorasumir simplemente que ni se puede, ni es el enfoque más correcto. Por muy detalladoque esté un alcance:a) Siempre faltan cosasb) Nunca representa la realidad, pues esta evolucionac) Hay errores de comunicación e interpretación a través de la documentación 6
  7. 7. Pero eso era lo que creía al principio, con mi plan y mi documentación, podía llevar a ungrupo de desarrolladores al éxito por mi nivel como jefe de proyectos.Sin embargo, no funcionaban las cosas como esperaba.Tres cuestiones han tocado algún resorte en mi cabeza, que me plantean las cuestionesbásicas del desarrollo de software. 7
  8. 8. La primera, y la que más me ha hecho pensar es esta igualdad. Equipo = Producto1) El producto resultante es tan bueno como el equipo que lo ha hecho2) En realidad, mi producto como “jefe de proyecto” es el equipo. Debo crear equipos capaces de hacer productos.http://www.amazon.com/Software-Your-Head-Protocols-Maintaining/dp/0201604566 8
  9. 9. Segunda, que el desarrollo de software es un juego cooperativo de comunicación, finito.Las partes implicadas quieren ganar algo desarrollando software. Debemos conseguirque nuestras acciones estén encaminadas a ganar el juego, que significa, entregar valorcreado para el cliente. (siendo muy relativo la definición de ganar el juego)Además es cooperativo, por que no se juega unos “contra” otros, si no que se busca elresultado final.http://alistair.cockburn.us/Software+development+as+a+cooperative+game 9
  10. 10. Tercera, el desarrollo de software es un Sistema complejo, y el mejor Enfoque es el deadaptación – acciónLas mismas causas no provocan siempre los mismos resultados. Hace que no esténclaras las reglas del juego, y que debamos adaptarnos, y entender las cosas examinandoel pasado.http://www.amazon.com/Management-3-0-Developers-Developing-Addison-Wesley/dp/0321712471 10
  11. 11. Así que con esas ideas, el manifiesto ágil encaja como un guante.http://agilemanifesto.org/ 11
  12. 12. No perdamos el foco, entregar valor al cliente, de eso va este juego, y hay que ganarlo,no solo jugarloPlanteate si cada acción que haces ayuda al objetivo finalNo quedarse contemplando el paisaje, si no andando el camino hacia el objetivo final. 12
  13. 13. (Ejemplo tomado de Henrik Kniberg) 13
  14. 14. Assumptions: The customer discovers what he wants The developers discover how to build it Things change along the way 14
  15. 15. Así que ahora destaco lo que más valoro de las metodologías ágiles. Lo primero:Colaboración, palabra clave: Visión compartidaSincronización mental  ¿sin telepatía?  técnicas!! Debemos trabajarlasCuando un desarrollador debe tomar cientos de decisiones al día que afectandirectamente al valor entregado al cliente, lo mejor es que tenga en mente la idea máscercana y parecida a la realidad del mismo. 15
  16. 16. ¡¡Fuerzate a comunicarte!! 16
  17. 17. Mejora continua. Inspección y adaptación.Para un poco y piensa. 17
  18. 18. Personas, autoorganización, poder a los equiposPermitir explotar el potencial de cada persona, no solo hasta dónde llegue el del jefe deproyecto. 18
  19. 19. La calidad no es opcional, acostumbrarse a la nueva velocidad, y no dejarse presionar. 19
  20. 20. Las prácticas acercan a principios, pero no los llevan implícitosPERO SON MUY IMPORTANTES, tampoco se pueden hacer cambios sin prácticas que lossoporten 20
  21. 21. La implantación sugiero hacerla abriendo dos caminos en paralelo: Gestión y técnico¡Delegar! 21
  22. 22. 22
  23. 23. Objetivos, qué es el agilismo• Entrega de Valor al cliente• Pasarlo bien, disfrutar del trabajo 23
  24. 24. 24
  25. 25. 25

×