SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
#Agilismo (my way)
1. Métodos y Herramientas
Javier García Sogo
@jgsogo
 Motivación
 Agilismo
 Herramientas
 eXtreme Programming
 … a debatir
Contenido
#Motivación
Motivación
Motivación
Motivación
Imagen: http://blog.puntiel.com/
¿Somos baratos?
¿Somos rápidos?
¿Somos buenos?
Motivación
Imagen: http://blog.puntiel.com/
El cliente obtiene lo que
paga (tiempo y calidad).
El desarrollador cobra lo
que hace.
El gestor sabe cuánto
puede hacer su equipo.
Motivación - Objetivos
Desarrollo en equipo profesionalizado.
El equipo sabe cuánto se tarda en hacer las cosas.
El equipo sabe cuánto cuesta hacer las cosas.
La empresa gestiona sus recursos: mejores sueldos,
mejores productos y/o proyectos de innovación.
#Agilismo
Agilismo
Metodología Herramientas
Extreme Programming
Manifiesto ágil: refactoring,
tests, CI,…
Scrum
Roles, time-boxing, backlog,
sprints,…
Lean Development JIT, Pull System, Kanban,…
Agilismo - DISCLAIMER
Yo no sé.
Me suenan las cosas,
he ido a charlas,
he experimentado (poco).
Scrum Master es una profesión.
Quier-o/emos aprender y expermientar.
Si alguien sabe,
que lo diga;
o la empresa contrata a alguien que sepa,
¡welcome!
Agilismo – My way
Iterativo: cada X días se repite el proceso.
Incremental: si no aporta valor, no lo hago.
Entrega continua: NO significa “siempre”, significa cada iteración.
Historias de usuario: tareas/issues definen qué se hace, con qué
finalidad y cómo se va a evaluar la funcionalidad. También cuánto
esfuerzo implica y cuánto supone esa funcionalidad.
Peer review: nada entra en producción que no haya sido
validado por otro (pull request) y funcione (¡tests!).
Agilismo - @jmbeas
Agilismo – Backlog
El backlog contiene todas las
funcionalidades de la aplicación
ORDENADAS según prioridad del cliente.
En cada sprint se selecciona un conjunto
de items que son los que se van a
ejecutar y mostrar al final del sprint.
Un item candidato tiene que estar
perfectamente definido en funcionalidad
(puntos función) y por el equipo (story
points). ¡No puede haber dudas!
Imagen: http://www.informit.com/
Agilismo – Issues
Específica (¡no hay dudas!)
Medible en funcionalidad y tiempo.
Criterios de aceptación (¡nada subjetivo!)
Realizable (durante el sprint)
Hª de usuario –vs– Job stories
Agilismo – Scrumban
Imagen: https://www.crisp.se/gratis-material-och-guider/kanban
Sprint n Sprint (n-1)
Diagrama Kanban: lo ideal es un póster con post-its…
Sprint n-(k+1)Sprint n+k
#Herramientas
Herramientas – Pull Request
Cada issue (feature) se desarrolla en paralelo por una
persona durante un sprint.
Al terminarla hace un pull request (PR), petición para
incorporarla a la rama de desarrollo (dev).
Todo PR es validado mínimo por otra persona (peer
review) antes de incorporarse a la rama de desarrollo.
Imagen: https://mockupstogo.mybalsamiq.com/mockups/4191.png
Selected  Doing
Doing  Done
Done  Deploy
Herramientas – DVCS
Imagen: http://nvie.com/
+Info: http://nvie.com/posts/a-successful-git-branching-model/
Herramientas – DVCS
Control de VERSIONES: changelog, alfa, beta, release,…
Imagen: https://mockupstogo.mybalsamiq.com/mockups/4191.png
Imagen: http://nvie.com/
Ramas principales (origin):
 master: production-ready
 develop: integration branch
Pull requests
Compilaciones automáticas
Versiones
Herramientas – DVCS
Imagen: http://nvie.com/
Ramas de características (feature-):
 No existen en origin
 Son temporales (o se terminan o se
descartan)
Herramientas – DVCS
Imagen: http://nvie.com/
Ramas de lanzamiento
(release-):
 NO añaden nuevas features.
 Incorporan bug-fixes
Herramientas – DVCS
Imagen: http://nvie.com/
Ramas de revisiones (hotfix):
 SOLO bugs críticos.
 Incorporan bug-fixes
Herramientas – DVCS
#eXtreme Programming
Clean code
Complejidad ciclomática
Código duplicado
Tests: Unitarios, TDD, BDD
Analizadores estáticos de código
#Debatir
A debatir
Compromiso. Requiere esfuerzo e implicación.
¿Hasta dónde queremos llegar?
Necesitamos un proyecto para aplicar todo esto.
TDD: a qué nivel llevamos los tests.
Scrumban? Tamaño de iteración
Roles
A debatir - Tecnologías
DVCS: Git, Mercurial, Bazaar,…
Tests: Google Test, Boost Unit Test Framework,…
CI: Jenkins, Bamboo, …
Sistema de gestión de código: Github.com,…
Gestión de issues: Redmine, Trac, Github.com/Issues,…
Agilismo - Métodos y herramientas

Más contenido relacionado

Similar a Agilismo - Métodos y herramientas

SCRUM Desarrollo ágil
SCRUM Desarrollo ágilSCRUM Desarrollo ágil
SCRUM Desarrollo ágil
ricardoroldan
 
Como lograr mejora con agile dev
Como lograr mejora con agile devComo lograr mejora con agile dev
Como lograr mejora con agile dev
Luis Mulato
 
Ser Ágil en España: Un caso real con equipos de trabajo en remoto
Ser Ágil en España: Un caso real con equipos de  trabajo en remotoSer Ágil en España: Un caso real con equipos de  trabajo en remoto
Ser Ágil en España: Un caso real con equipos de trabajo en remoto
Enrique Amodeo
 

Similar a Agilismo - Métodos y herramientas (20)

Gestión ágil de proyectos TIC
Gestión ágil de proyectos TICGestión ágil de proyectos TIC
Gestión ágil de proyectos TIC
 
Workshop Framework SCRUM
Workshop Framework SCRUMWorkshop Framework SCRUM
Workshop Framework SCRUM
 
Gestión basada en Metodologías Ágiles
Gestión basada en Metodologías ÁgilesGestión basada en Metodologías Ágiles
Gestión basada en Metodologías Ágiles
 
Seminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque ISeminario de metodologías ágiles, bloque I
Seminario de metodologías ágiles, bloque I
 
Principios Ágiles, Lean y Scrum
Principios Ágiles, Lean y ScrumPrincipios Ágiles, Lean y Scrum
Principios Ágiles, Lean y Scrum
 
SCRUM Desarrollo ágil
SCRUM Desarrollo ágilSCRUM Desarrollo ágil
SCRUM Desarrollo ágil
 
Como lograr mejora con agile dev
Como lograr mejora con agile devComo lograr mejora con agile dev
Como lograr mejora con agile dev
 
La priorización de historias de usuario (versión ampliada)
La priorización de historias de usuario (versión ampliada)La priorización de historias de usuario (versión ampliada)
La priorización de historias de usuario (versión ampliada)
 
The Dark Side of Scrum (SGBA2012)
The Dark Side of Scrum (SGBA2012)The Dark Side of Scrum (SGBA2012)
The Dark Side of Scrum (SGBA2012)
 
Introducción a SCRUM
Introducción a SCRUMIntroducción a SCRUM
Introducción a SCRUM
 
Fundamentos en Scrum
Fundamentos en ScrumFundamentos en Scrum
Fundamentos en Scrum
 
La priorización de historias de usuario (versión reducida)
La priorización de historias de usuario (versión reducida)La priorización de historias de usuario (versión reducida)
La priorización de historias de usuario (versión reducida)
 
Scrum
ScrumScrum
Scrum
 
Scrum à la Pablo (Español)
Scrum à la Pablo (Español)Scrum à la Pablo (Español)
Scrum à la Pablo (Español)
 
UX Prototyping para alinear esfuerzos de desarrollo
UX Prototyping para alinear esfuerzos de desarrolloUX Prototyping para alinear esfuerzos de desarrollo
UX Prototyping para alinear esfuerzos de desarrollo
 
Es scrumprimer20
Es scrumprimer20Es scrumprimer20
Es scrumprimer20
 
Las SinCuenta Sombras de Scrum
Las SinCuenta Sombras de ScrumLas SinCuenta Sombras de Scrum
Las SinCuenta Sombras de Scrum
 
Ser ágil en España, un caso real con equipos de trabajo en remoto
Ser ágil en España, un caso real con equipos de trabajo en remotoSer ágil en España, un caso real con equipos de trabajo en remoto
Ser ágil en España, un caso real con equipos de trabajo en remoto
 
Ser Ágil en España: Un caso real con equipos de trabajo en remoto
Ser Ágil en España: Un caso real con equipos de  trabajo en remotoSer Ágil en España: Un caso real con equipos de  trabajo en remoto
Ser Ágil en España: Un caso real con equipos de trabajo en remoto
 
Scrum
ScrumScrum
Scrum
 

Agilismo - Métodos y herramientas

  • 1. #Agilismo (my way) 1. Métodos y Herramientas Javier García Sogo @jgsogo
  • 2.  Motivación  Agilismo  Herramientas  eXtreme Programming  … a debatir Contenido
  • 7. Motivación Imagen: http://blog.puntiel.com/ El cliente obtiene lo que paga (tiempo y calidad). El desarrollador cobra lo que hace. El gestor sabe cuánto puede hacer su equipo.
  • 8. Motivación - Objetivos Desarrollo en equipo profesionalizado. El equipo sabe cuánto se tarda en hacer las cosas. El equipo sabe cuánto cuesta hacer las cosas. La empresa gestiona sus recursos: mejores sueldos, mejores productos y/o proyectos de innovación.
  • 10. Agilismo Metodología Herramientas Extreme Programming Manifiesto ágil: refactoring, tests, CI,… Scrum Roles, time-boxing, backlog, sprints,… Lean Development JIT, Pull System, Kanban,…
  • 11. Agilismo - DISCLAIMER Yo no sé. Me suenan las cosas, he ido a charlas, he experimentado (poco). Scrum Master es una profesión. Quier-o/emos aprender y expermientar. Si alguien sabe, que lo diga; o la empresa contrata a alguien que sepa, ¡welcome!
  • 12. Agilismo – My way Iterativo: cada X días se repite el proceso. Incremental: si no aporta valor, no lo hago. Entrega continua: NO significa “siempre”, significa cada iteración. Historias de usuario: tareas/issues definen qué se hace, con qué finalidad y cómo se va a evaluar la funcionalidad. También cuánto esfuerzo implica y cuánto supone esa funcionalidad. Peer review: nada entra en producción que no haya sido validado por otro (pull request) y funcione (¡tests!).
  • 14. Agilismo – Backlog El backlog contiene todas las funcionalidades de la aplicación ORDENADAS según prioridad del cliente. En cada sprint se selecciona un conjunto de items que son los que se van a ejecutar y mostrar al final del sprint. Un item candidato tiene que estar perfectamente definido en funcionalidad (puntos función) y por el equipo (story points). ¡No puede haber dudas! Imagen: http://www.informit.com/
  • 15. Agilismo – Issues Específica (¡no hay dudas!) Medible en funcionalidad y tiempo. Criterios de aceptación (¡nada subjetivo!) Realizable (durante el sprint) Hª de usuario –vs– Job stories
  • 16. Agilismo – Scrumban Imagen: https://www.crisp.se/gratis-material-och-guider/kanban Sprint n Sprint (n-1) Diagrama Kanban: lo ideal es un póster con post-its… Sprint n-(k+1)Sprint n+k
  • 18. Herramientas – Pull Request Cada issue (feature) se desarrolla en paralelo por una persona durante un sprint. Al terminarla hace un pull request (PR), petición para incorporarla a la rama de desarrollo (dev). Todo PR es validado mínimo por otra persona (peer review) antes de incorporarse a la rama de desarrollo. Imagen: https://mockupstogo.mybalsamiq.com/mockups/4191.png Selected  Doing Doing  Done Done  Deploy
  • 19. Herramientas – DVCS Imagen: http://nvie.com/ +Info: http://nvie.com/posts/a-successful-git-branching-model/
  • 20. Herramientas – DVCS Control de VERSIONES: changelog, alfa, beta, release,… Imagen: https://mockupstogo.mybalsamiq.com/mockups/4191.png
  • 21. Imagen: http://nvie.com/ Ramas principales (origin):  master: production-ready  develop: integration branch Pull requests Compilaciones automáticas Versiones Herramientas – DVCS
  • 22. Imagen: http://nvie.com/ Ramas de características (feature-):  No existen en origin  Son temporales (o se terminan o se descartan) Herramientas – DVCS
  • 23. Imagen: http://nvie.com/ Ramas de lanzamiento (release-):  NO añaden nuevas features.  Incorporan bug-fixes Herramientas – DVCS
  • 24. Imagen: http://nvie.com/ Ramas de revisiones (hotfix):  SOLO bugs críticos.  Incorporan bug-fixes Herramientas – DVCS
  • 26. Clean code Complejidad ciclomática Código duplicado Tests: Unitarios, TDD, BDD Analizadores estáticos de código
  • 28. A debatir Compromiso. Requiere esfuerzo e implicación. ¿Hasta dónde queremos llegar? Necesitamos un proyecto para aplicar todo esto. TDD: a qué nivel llevamos los tests. Scrumban? Tamaño de iteración Roles
  • 29. A debatir - Tecnologías DVCS: Git, Mercurial, Bazaar,… Tests: Google Test, Boost Unit Test Framework,… CI: Jenkins, Bamboo, … Sistema de gestión de código: Github.com,… Gestión de issues: Redmine, Trac, Github.com/Issues,…