En esta sesión del Queretaro Software Development Meetup se presentan 3 metodologías ágiles: scrum, agile y extreme programming y entendemos las diferencias de cada una y que tipo de proyectos se acomodan mejor para usar estas.
2. La finalidad del Meetup es
tener un lugar donde compartir
experiencias (técnicas o no),
ideas y tendencias en la
industria de IT
Querétaro Software
Development Meetup
3. Teléfonos como
en Cine
Participen Regla del ⅔ en Dudas
Términos en Inglés
presentes y en Itálicas
Presentaciones estarán
en SlideShare
Guía de Acuerdo Común
Un recordatorio para asegurarnos de llevarnos bien, vamos aclarando unas cosas
Faltas de ortografía y
pochismos presentes
Networking al
Finalizar
No hacer presentaciones
para vender tu producto
4. Una presentación en el 2010 cambió mi actitud y mis
experiencias cada que participo en una presentación
o conferencia, así como las expectativas que tengo de
éstas.
La triste historia de una presentación
Una presentación de GMaps
Expectativas Reales
Cuales son sus expectativas del Meetup?
5. Agenda
Codea con Empatía: UX para developers
Agile: Scrum, Kanban o XP?
Presentado por Osvaldo Mercado Coss
Presentado por Eugenia Sosa
6. Marzo, 2018
Agile: Scrum, Kanban o XP?
Presentado por Osvaldo Mercado Coss
Querétaro Software
Development Meetup
7. 7
Osvaldo Mercado Coss
Backend Developer por error
● De Guadalajara, México
● Senior Backend Developer en PSL Group
● Estudios en Multimedia, de alguna manera termine codeando en el
backend
○ Stack: LA|EMP, PHP + Framework, NodeJS
○ DevOps: AWS + Vagrant + Chef
○ DBs: MySQL/MariaDB, Amazon Aurora, CouchDB, Couchbase,
MongoDB y desgraciadamente SQL Server
○ Interesado en Software Escalable, DevOps & Perros
○ Trabajado con Kanban, Scrum, ScrumBan, Waterfall e Híbridos
Un poco sobre mi:
Hola!
@omercadocoss
omercadocoss@gmail.com
https://mx.linkedin.com/in/osvaldomercado
8. Agenda
Empezamos por lo básico:
qué es una metodología agile?
¿Porqué estos 3 si existe {insertatufav}?
Introducción, diferencias y bemoles
Lecciones de batalla
Conclusión
10. Desarrollo de software agile es un
término para englobar una serie de
métodos y prácticas basadas en los
valores y principios listados en el
Agile Manifesto
Agile 101 - Scrum Alliance
11. ● Individuos e interacciones sobre procesos
y herramientas
● Software funcionando sobre
documentación extensiva
● Colaboración con el cliente sobre
negociación contractual
● Respuesta ante el cambio sobre seguir un
plan
Las Bases del Agile Manifesto
12. Desarrollo de software agile es un
término para englobar una serie de
métodos y prácticas basadas en los
valores y principios listados en el
Agile Manifesto
Agile 101 - Scrum Alliance
13. La metodología de desarrollo de
software en ingeniería de software
es un marco de trabajo usado para
estructurar, planificar y controlar el
proceso de desarrollo en sistemas de
información.
Wikipediazo de Metodología de Desarrollo de Software
14. La metodología de desarrollo de software en ingeniería de
software es un marco de trabajo usado para estructurar,
planificar y controlar el proceso de desarrollo en sistemas de
información.
Métodos y prácticas basadas en
el Agile Manifesto para
estructurar, planificar y
controlar un proceso de
desarrollo
~=
Definición por Osvaldo Mercado
17. 17
Las Bases de Scrum
Que podemos concluir que Scrum ofrece como framework
Diseñado para
mejorar la
colaboración
dentro de equipos
y darles
empowerment [2]
Más framework,
que metodología
Usado para
desarrollo de
productos
complejos [1]
Fácil de aprender,
difícil de dominar
Busca equipos cross-
functional, que
puedan llevar una
idea a lo funcional
Maneja roles
definidos dentro del
framework: scrum
master, product
owner y development
team
Timeboxed y
pequeñas iteraciones
Basado en el término
de rugby, scrum es
cuando se reanuda la
jugada y los jugadores
se agrupan para
empujar.
El trabajo se visualiza
en un scrum board
18. 18
Las Bases de Scrum
Existen diferentes tipos de bases de datos NoSQL
19. 19
Las Bases de Scrum
Existen diferentes tipos de bases de datos NoSQL
21. 21
Las Bases de Kanban
Que podemos concluir que Scrum ofrece como framework
Diseñado para
acomodar cantidad
de trabajo (WIP) a
la capacidad del
equipo
Se basa en
conceptos de
visualización,
transparencia y
tiempo real
Trata de reducir el
waste del
multitasking
Re-prioritización
continua de tareas
Busca equipos cross-
functional, que
puedan llevar una
idea a lo funcional
No maneja roles
definidos
Proceso continuo
En Japonés, kanban se
significa "señal visual"
El trabajo se visualiza
en un kanban board
25. 25
Las Bases de Extreme Programming
Que podemos concluir que XP ofrece como metodología
Creado
principalmente
para un equipo de
desarrollo de
software
Se basa en
comunicación,
simplicidad,
feedback, and
coraje (+respeto) [1]
Busca dar la
solución más
sencilla con la
mayor calidad
posible
Basado en TDD,
ADD y cambios
constantes en
requerimientos
Busca reducir el
costo de features y
hacer releases lo
más pronto posible
No maneja roles
definidos, pero
busca unificación
del equipo de
desarrolloProceso continuo
Es de las
metodologías agile
más detalladas en
su proceso
29. 29
Cual Elegir? Sólo un ejemplo de elección
Totalmente basado en experiencia personal
Proyecto de RP
● Cambios no
planeados
constantemente
● Cambio de prioridad
constante
● Alta calidad
requerida
● Equipo de desarrollo
mid-level
● Clientes usualmente
disponibles
Proyecto de Finanzas
● Cambios no
planeados
regularmente
● Cambio de prioridad
bajo
● Alta calidad
requerida
● Equipo de desarrollo
senior
● Integración con 3rd
parties
● Clientes a veces no
disponibles
Proyecto de R&D
● Cambios no
planeados
constantemente
● Cambio de prioridad
alto
● Calidad requerida
indecisa
● Equipo de desarrollo
senior
● Clientes a veces no
disponibles
30. 30
Y si no lo puedes implementar en tu Organización?
Es difícil admitirlo, pero no siempre lograrás apoyo en tu lugar de trabajo
Trata de entender las razones de fondo
específicas: puede ser un malentendido, el no
entender el proceso o simplemente no existe
confianza. Las metodologías agile requieren de
una madurez profesional de todas las partes para
ser ejecutada correctamente.
32. 32
Lecciones de Batalla
No empieces sin buy-in del management
No empieces un proyecto agile
sin buy-in de Management /
Business (y claro esta; devs)
34. 34
Lecciones de Batalla
bye buzzwords!
Aléjate de los buzzwords,
entiende las metodologías, los
procesos que proponen y
entiende el valor de cada una
35. 35
Lecciones de Batalla
Sé rígido, después flexible
Sé rígido en tus primeros
pasos, pero flexible después
36. 36
Lecciones de Batalla
Los proyectos requieren diferentes necesidades
Trata cada proyecto como si
tuviera necesidades
diferentes
38. 38
Lecciones de Batalla
Los proyectos requieren diferentes necesidades
Olvida el dogma,
los resultados y tu equipo de
trabajo indicaran cuál es la
metodología/framework a
usar
39. Gracias!
Bienvenidas las preguntas, comentarios, quejas y sugerencias
omercadocoss@gmail.com
@omercadocoss
https://mx.linkedin.com/in/osvaldomercado
Querétaro Software
Development Meetup
40. Lecturas Recomendadas
Recomendaciones personales acerca del tema
What is Scrum?
https://www.scrum.org/resources/what-is-scrum
Agile in a Nutshell: Extreme Programming
http://www.agilenutshell.com/xp
Kanban Board
http://simpaticodesignstudio.com/kanban-board/
Agility in Software Development and Project Value: An
Empirical Investigation
https://www.igi-global.com/gateway/article/194999
Kanban
https://www.atlassian.com/agile/kanban
Introducción a Scrum
https://www.mountaingoatsoftware.com/presentations/an-introduction-to-scrum
What is Scrum?
http://www.scrumguides.org/
Beginners Guide to Scrum
https://blog.forecast.it/blog/beginners-guide-to-scrum
Agile Principles and Values, by Jeff Sutherland
https://msdn.microsoft.com/en-
us/library/dd997578%28v=vs.120%29.aspx?f=255&MSPPError=-
2147217396
Values in XP
http://www.extremeprogramming.org/values.html
Extreme Programming: A Gentle Introduction
http://www.extremeprogramming.org/
A study of value in agile software development organizations
https://www.sciencedirect.com/science/article/pii/S016412121630253
Differences Between Scrum and Extreme Programming
https://www.mountaingoatsoftware.com/blog/differences-between-
scrum-and-extreme-programming