Agile at Work

1.061 visualizaciones

Publicado el

Publicado en: Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.061
En SlideShare
0
De insertados
0
Número de insertados
29
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

Agile at Work

  1. 1. #AgileAtWork Agile at Work Por Alberto Gómez Toribio
  2. 2. #AgileAtWork Alberto Gomez ToribioAgile Software Developer en Social Life Sony Enternainment
  3. 3. #AgileAtWork Agile at Work
  4. 4. #AgileAtWork Agile atLa crisis del Software Work En 1968 surge la Ingeniería del software Un modelo industrial para la creación de Software Se intenta estimar el tiempo y los costes El modelo más popular es el modelo en cascada
  5. 5. #AgileAtWork Agile at Work1970: Modelo en Cascada (Royce)
  6. 6. #AgileAtWork Agile at WorkEscasa participación de los usuariosRequisitos y especificaciones incompletasCambios frecuentes en la especificaciónFalta de recursosExpectativas no realistas ¿Por qué noObjetivos poco claros funciona?Milestones irreales
  7. 7. #AgileAtWorkAgile at Work¿Soluciones de gestión? Certificados de calidad del desarrollo Software CMMi, ITIL, Spice... Normativas de desarrollo Metrica, PRINCE...
  8. 8. #AgileAtWork Agile at¿Y a nivel técnico? Work RUP: Orientación a Objetos Fue diseñado como un sistema de desarrollo, diseño y documentación Es la metodología más empleada en el desarrollo de aplicaciones a terceros Algunas evoluciones basan su éxito en el uso de herramientas (CASE)
  9. 9. #AgileAtWork Agile at WorkTenemos otro problema... De las funcionalidades desarrolladas... 7% se usan siempre 13% se usan a menudo 16% “a veces” 19% pocas veces 45% NUNCA Fuente: Standish Group
  10. 10. #AgileAtWork Agile at WorkY entonces llegan unos señores...
  11. 11. #AgileAtWork Agile at WorkEl manifiesto Agil “ Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y ayudando a que otros lo hagan. Con este trabajo hemos llegado a valorar...” A los individuos y su iteracción por encima de los procesos y las herramientas. El software que funciona por encima de la documentación exhaustiva. La colaboración con el cliente por encima de la negociación contractual. La respuesta a un cambio por encima del seguimiento de un plan. No quiere decir que no valoremos los puntos señalados... quiere decir que los valoramos en menor medida.
  12. 12. #AgileAtWork Agile at Work¿Soluciones de gestion?Asumimos que la creación de Software es un procesode manufactura y no industrial. Scrum (Takeuchi y Nonaka, Año 1986) Lean (Poppendieck, Año 2000) KanBan (Sistema empleado en Toyota en los 50s) DevOps
  13. 13. #AgileAtWork Agile at Work¿Y a nivel técnico? Integración y deploy continuo Las ramas no nos dejan ver el bosque Practicas extreme programming TDD, BDD Code reviews Pair programming
  14. 14. #AgileAtWork Agile atUn vistazo a Lean Work Ampliar el aprendizaje Se profundiza más con iteracciones cortas. Decidir lo más tarde posible Cuanto más tarde, más contexto del problema conocemos Reaccionar tan rápido como sea posible La descomposición en tareas pequeñas nos ayuda a identificar antes los problemas Potenciar el equipo Busca profesionales y deja que hagan su trabajo Véase todo el conjunto “Piensa en grande, actúa en pequeño”
  15. 15. #AgileAtWork Agile at WorkNos centramos en Scrum
  16. 16. #AgileAtWork Agile at Work
  17. 17. #AgileAtWork Agile atRoles Work
  18. 18. #AgileAtWorkAgile at Work¿Qué nos aporta Scrum? Divide la organización en equipos definidos pequeños interdisciplinados y autoorganizados. Divide el trabajo: Priorización y estimación. Divide el tiempo en Iteraciones. Optimiza el plan de entregas. Pila de producto priorizada. Optimiza y ajusta el proceso tras cada ciclo con retrospectivas. Adaptación al cambio entre iteraciones. Resistencia al cambio durante la iteracción.
  19. 19. #AgileAtWorkAgile at Work¿Qué ha aportado a mi equipo? Hemos adaptado Scrum a nuestro entorno, combiándolo con Kanban y ajustándolo tras cada retrospectiva. Nos ha permitido trabajar en múltiples productos. Nos ha aportado transparencia. Los equipos son auto organizados y el optimismo y la confianza ha mejorado (Nombres de teams pequeños, etc.). Hemos reducido el “Work In Progress” y ahora conocemos nuestro Lead Time en bug fixing (Utilizamos Kanban para esto).
  20. 20. #AgileAtWork Agile at¿Y Kanban? Work Es un sistema para visualizar y controlar el flujo de trabajo con tarjetas en un tablero. Sirve para limitar el WIP Nos ayuda a medir el Lead Time Conociendo el Lead Time hacemos los procesos pequeños y predecibles. Optimización continua No hay roles ni equipos definidos, los equipos son autogestionados. Se puede trabajar de forma regular o bajo demanda
  21. 21. #AgileAtWork Agile at Work KanbanSimilitudes entre Scrum y Ambos son herramientas de proceso Ambos incorporan principios de la filosofía Lean: Optimización continua, respuesta al cambio... Ambos son empiricos, se espera que los adaptes a tu entorno y las retrospectivas son la herramienta para ello. Ambos son empiricos, se espera que los adaptes a tu entorno y las retrospectivas son la herramienta para ello. Ambos permiten trabajar en multiples productos (pila de producto). En ambos se trabaja con equipos auto organizados
  22. 22. #AgileAtWork Agile at Work KanbanDiferencias entre Scrum y Scrum es más prescriptivo que Kanban Scrum define roles y equipos definidos. Kanban no. Scrum prescribe iteraciones, Kanban puede ser regular o bajo demanda.
  23. 23. #AgileAtWork Agile at Work KanbanDiferencias entre Scrum y Scrum nos permite predecir la estimación y la velocidad, Kanban el Lead Time Scrum define una pila de producto priorizada y agrupa tareas en sprints con sus propios products backlogs y sus propias priorizaciones. En Kanban hay una única pila de producto.
  24. 24. #AgileAtWork Agile at WorkAmbos comparten cosas, pero... Ambos limitan el WIP, pero... - Kanban lo hace por estado en el flujo de trabajo. - Scrum limita el WIP por Sprint. Ambos utilizan un tablón para representar el estado, pero... - En Scrum el tablón se limpia tras cada Sprint. - En Kanban el tablón representa la naturaleza del flujo.
  25. 25. #AgileAtWork Agile at WorkEntonces, ¿Scrum o Kanban? ¿Es un proyecto Grande? ¿Es posible esperar dos o mas semanas para tener lo que estoy desarrollando en producción? ¿Se necesita un calendario o plan de entrega? ¿Es común tener tareas no esperadas y de alta prioridad? ¿Tenemos un Product Owner que ejerza como tal? ¿Hay que dar soporte a los clientes?
  26. 26. #AgileAtWork Agile at WorkEntonces, ¿Scrum o Kanban? Scrum Pila de trabajo priorizada, pila por sprint, proyectos grandes con entregas incrementales, equipo multidisciplinar... Kanban Tareas no esperadas, flujo constante de trabajo, se puede tener equipos especializados o multidisciplinares...
  27. 27. #AgileAtWork Agile at WorkScrumBan
  28. 28. #AgileAtWork Agile at WorkDev, dev, dev... ¿Y Operaciones? Ellos no trabajan con sprints Podrian usar Kanban, pero ¿Quien sabe cuanto cuesta configurar un servidor en produccion? Dev busca cambios, poner cosas en producción, mientras que Ops busca estabilidad. Hay poca coordinación entre Dev y Ops, solo les damos una caja oscura y ellos la instalan en producción.
  29. 29. #AgileAtWork Agile at WorkDev vs Ops Dev no es consciente de sus impactos en produccion, trabajan en base a test unitarios, etc. El negocio requiere introducir cambios, pero los cambios son la causa de la inestabilidad. Ops intenta minimizar riesgos retrasando el deployment a producción, y finalmente se acumulan cambios y problemas.
  30. 30. #AgileAtWork Agile at WorkLos fundamentos de DevOps Implicar a Ops en el desarrollo. Tratar la configuración como código. Reutilizar metodos y herramientas: Code Review... Abstraer la administración de la infraestructura. Crear sistemas de provisionamiento de infraestructura automatizado. Compartir KPIs con Operaciones.
  31. 31. #AgileAtWork Agile at WorkCiclo DevOps
  32. 32. #AgileAtWork Agile at WorkChef: configuración como código Sistema de provisionamiento de infraestructura. Permite crear nuevos nodos de forma automática Terminología: Cookbooks y Recipes Basado en Ruby
  33. 33. #AgileAtWork Agile at WorkChef
  34. 34. #AgileAtWork Agile at WorkChef
  35. 35. #AgileAtWork Agile at Work
  36. 36. #AgileAtWork Agile atConclusiones Work Conocer el contexto en el que nos encontramos. Conocer las fortalezas y defectos de las herramientas a usar. Decidir qué herramienta es mejor cuando. Inspeccionar y adaptar la metodologia a nuestro entorno Combinar el uso de distintas metodologias/herramientas Aprender de esto: Retrospectivas, mejora continua. La metodología no es el objetivo en sí.
  37. 37. #AgileAtWork Agile at Work ¿Preguntas?

×