Professional Documents
Culture Documents
SCRUM y XP
LSCA y MC, Humberto Hernández
Temas
Introducción al desarrollo Ágil.
Prácticas Scrum.
Prácticas XP.
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
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.
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
“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
Prioridades.
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.
“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!