You are on page 1of 33

DESARROLLO ÁGIL CON

SCRUM y XP
LSCA y MC, Humberto Hernández
Temas
 Introducción al desarrollo Ágil.
 Prácticas Scrum.

 Prácticas XP.

 ¿Cual ha sido nuestra experiencia?

 Comentarios y preguntas son bienvenidos durante


toda la presentación.
Acerca del expositor
 Estudios:  Experiencia laboral: (20 años).
 LSCA por la FCA  Altec Electrónica - Desarrollo de
 Master of Science por la Universidad de Sistemas distribuidos. Chihuahua
Michigan  Ford Motor Co. – Desarrollo de
 Proyectos sobresalientes: sistemas de manufactura. Detroit
Michigan.
 Arquitecto y líder de construcción del
sistema de rastreo de envíos de Estafeta.  Estafeta Mexicana – Gerente de
Desarrollo de Software. Cd. de Mexico
 Arquitecto y líder de construcción para el
nuevo sistema de pensiones del IMSS.  Grupo Autrey - Director
Nacional de Sistemas. Cd. de México
 Experiencia Empresarial:
 ITBrain – Socio Fundador, Director de
 ITBrain S.C. – Empresa consultora Tecnología Java. Cd. de México
especializada en arquitectura de sistemas.
 DataZone – Technical Manager.
 Áreas de interés: Chihuahua.
 Temas de ingeniería de software,
orientación a objetos, arquitectura de
sistemas.
Introducción al desarrollo Ágil

Actualizar gráfica
slide 3
Manifiesto Ágil.
 Enuncia los principios de las metodologías agiles.
 Fue redactado en Febrero del 2001:
 “Hemos estado descubriendo mejores maneras de
desarrollar software. Por medio de este trabajo hemos
valorado:
 Individuos e interacciones sobre procesos y herramientas.
 Escribir software sobre documentación extensa.
 Colaboración con el cliente sobre negociación de contratos.
 Responder al cambio sobre seguimiento de planes.
Aunque reconocemos el valor de los elementos a la derecha,
valoramos mas los elementos a la izquierda.”
Principios Agiles.
 Nuestra prioridad principal es satisfacer al  La entrega de software funcional es la
cliente por medio de la entrega temprana y principal medida de avance.
frecuente de software valioso.  El desarrollo ágil promueve el desarrollo
 Los requerimientos cambiantes son bienvenidos sostenible.
aún cuando el desarrollo ya este avanzado. Los
procesos ágiles se apoyan en el cambio para  Los patrocinadores, desarrolladores y usuarios
darle mayor ventaja competitiva al cliente. deben de ser capaces de mantener
indefinidamente un ritmo constante de avance.
 Entrega de software funcional con la mayor  La atención continua sobre la excelencia
frecuencia posible que puede ser desde unas técnica y el buen diseño mejora la agilidad.
cuantas semanas hasta un par de meses.
 Los usuarios de negocio y los desarrolladores  La Simplificación - El arte de maximizar la
deben de trabajar juntos diariamente durante cantidad de trabajo no hecho - es esencial.
todo el proyecto.  Las mejores arquitecturas, requerimientos y
 Los proyectos se construyen con la participación diseño surgen de equipos auto-dirigidos.
de individuos motivados, dándoles el ambiente  A intervalos regulares, el equipo reflexiona en
y el soporte que requieren y confiando en que como ser más efectivo, ajustando
lograrán el objetivo. inmediatamente su comportamiento conforme
 El método más eficiente y efectivo de sea necesario.
comunicación con el equipo de desarrollo y
entre ellos mismos es la comunicación cara a
cara.
Mecanismos de control de procesos.
 Control de procesos definido.
 Requiere que cada pieza de trabajo sea entendida
completamente. Dado un conjunto bien definido de
entradas las mismas salidas deben de generarse cada
vez.
 Control de procesos empírico.
 Los procesos son imperfectos, generan salidas
impredecibles e irrepetibles.
 El control se logra con inspección y adaptación
frecuentes
Control de procesos definido
 Practicas tradicionales
 Definirrequerimientos al inicio.
 Descomponer las tareas lógicamente.

 Estimar el esfuerzo/duración

 Planear todo el trabajo.

 …y solo después de eso iniciar el desarrollo…

 …tratando limitar/controlar cualquier cambio que


impacte los planes.
Legado del desarrollo en cascada
 Preguntar a los clientes lo que desean.
 (Cuando no realmente no saben)
 Premiarlos por pensar en todo.
 (Llamar la lista inicial “Alcance”)
 Penalizarlos por agregar cosas después.
 (Controlar el “Alcance” agresivamente)
 El resultado es exceso de “features”.
Control de procesos empírico

Feedback loops
•Biología – organismos, ecosistemas
•Economía – Bolsa de valores
•Educación – Aprendizaje.
•Gobierno – Elecciones.
•Ingeniería mecánica, electrónica, clima, etc.
Control de procesos empírico
 El enfoque Scrum
 Entregar valor al negocio en cada interacción.
 Entregar en orden de prioridad.

 Hacer entregas pequeñas pero frecuentes.

 Solicitar y responder a la retro alimentación del


negocio en cada entrega.
 Medir lo que falta por hacer.

 Tomar decisiones basado en el historial del proyecto.

 Parar cuando hace sentido.


Métodos agiles
 XP
 Scrum
 Crystal
 Pragmatic Programming
 DSDM
¿Que me métodos decidimos usar?

Scrum XP
Scrum

Actualizar gráfica
slide 13
Orígenes de Scrum
 Hirotaka Takeuchi & Ikojuri Nanka
 Thenew new product development game.
 Harvard Business Review – Ene/Feb 1986

 Jeff Sutherland, Ken Schwaber, Mike Beedle


 Usado por primera vez en un projecto de Easel Corp
1993
Valores de Scrum
 Compromiso
 Enfoque
 Apertura
 Respeto
 Coraje
Elementos de Scrum
Marco de referencia de Scrum
Marco de referencia de Scrum

“Features” priorizados
deseados por el
cliente
Marco de referencia de Scrum
Juntas de planeación de Sprint
•Revisar el backlog del producto
•Estimar el backlog del sprint
•Comprometerse a una meta en el
tiempo previsto

•“Features” seleccionadas
por el equipo.
•Estimadas por el equipo
Marco de referencia de Scrum
Junta diaria
•Ayer
•Plan del día
•Impedimentos?
Marco de referencia de Scrum

Juntas de revisión del Sprint


•Demonstración de “features”
•Retrospectiva del sprint.
Roles y responsabilidades
Equipo de desarrollo
 Manos a la obra.
 Comprometidos durante el sprint.
 Dueños de los estimados.
 Planean su propio trabajo.
 Tienen autoridad para hacer lo necesario para
cumplir su compromiso.
 Confían en el Scrum Master para eliminar
obstáculos.
El rol de Scrum Master
 Cuida el proceso de Scrum.
 Remueve obstáculos.
 Ayuda en la colaboración.
 Actúa como guía para el equipo.
El dueño del producto
 Asume responsabilidad total por el producto.
 Tiene la responsabilidad de entregar el producto
en cuanto a:
 Visión.

 Prioridades.

 Ventajasdel producto vendibles.


 Fechas de liberación.

 ROI.

 Costo.
XP – Extreme Programming
Otras técnicas que mejoran la velocidad del
desarrollo.

Actualizar gráfica
slide 29
Desarrollo dirigido por las pruebas
(TDD)
 Pruebas unitarias automatizadas se escriben para
la mayoría del código.
 Usualmente se usa un framework de pruebas (ej.
JUnit)
 Las pruebas automatizadas deben de ejecutarse
continuamente.
 Es mucho mejor hacerlo desde el inicio del proyecto.
Desarrollo dirigido por las pruebas
(TDD)
 Beneficios:
 Mayor productividad.
 Mas fácil encontrar problemas. (Usado junto con un
controlador de versiones)
 Diseño por contrato – El diseño inicia pensando en la
interfaz del método/clase.
 Diseño mejor modularidad, extensible y flexible.

 Genera confianza en los desarrolladores.


Desarrollo dirigido por las pruebas
(TDD)
Integración continua
 Conjunto de practicas
 Se tiene un repositorio único de software. (Subversion,
Git, Mercurial)
 “Builds” automatizados.

 “Build” auto-verificable. (Ver TDD)

 “Commits/Updates” frecuentes.
Refactoring - Mejora continua del
código
 Limpiar constantemente la estructura interna del código
sin cambiar su funcionamiento externo.
 No es arreglar bugs.
 No es agregar funcionalidad nueva.
 Cambios pequeños pero constantes.
 Se apoya fuertemente en TDD.
 Apoyo del IDE. (Eclipse, Visual Studio, Resharper)
 Ejemplos:
 Cambiar el nombre de un identificador.
 Extraer un método de otro método.
Resumen
 Tomen el tiempo de entender, leer y releer los
principios ágiles.
 Scrum provee un marco de referencia adecuado
para la administración de proyectos de software.
 XP se enfoca mas a los aspectos técnicos del
desarrollo de software.
 El cambio organizacional requiere compromiso a
todos los niveles y apoyo especializado.
 ¡Gracias!

You might also like