Anda di halaman 1dari 49

UNIVERSIDAD NACIONAL DE INGENIERIA

Facultad de Ingeniera Industrial y de Sistemas




METODOLOGIAS AGILES: SCRUM Y XP

Curso: Evaluacin y Mejora del Proceso de Software
Profesor: MSc. Javier Snchez Espinoza




Set. 2013

CONTENIDO
Qu es la agilidad?
Mtodos giles
Scrum
Programacin Extrema XP
Conclusiones
Bibliografia

Qu es la Agilidad?
Una Filosofa gil para la Ingeniera de Software
se relaciona con cuatro aspectos claves:
la importancia de la organizacin propia de los
equipos (controlan el trabajo que realizan)
comunicacin y colaboracin entre sus
miembros del equipo (profesionales y clientes)
un reconocimiento de que el cambio representa
una oportunidad
especial cuidado de entrega rpida del software
que satisfaga al cliente. [1]

Mtodos giles
Nace con el descontento de los SWs pesados (CASE)
Dcada del 90 se propone los nuevos mtodos giles
Los equipos de desarrollo se centran en el SW mismo
en vez de su diseo y documentacin.
Dependen de un enfoque iterativo para la especificacin,
desarrollo y entrega del SW
Diseados para apoyar el desarrollo de aplicaciones de
negocio donde los requerimientos del sistema
normalmente cambian rpidamente durante el proceso
de desarrollo.
Entregan SW funcional de forma rpida a los clientes,
que proponen que se incluyan en iteraciones posteriores
del sistema nuevos requerimientos o cambios en los
mismos. [2]
SCRUM
Video
http://www.youtube.com/watch?v=swDXPWoZfKQ

SCRUM - Orgenes
"The New Product Development Game" (Harvard Business
Review 86116:137-146, 1986)

"The Knowledge Creating Company" Ikujiro Nonaka y Hirotaka
Takeuchi (Universidad de Oxford, 1995).
OOPSLA95 (Object-Oriented Programming Systems, Languages,
and Applications 1995). Jeff Sutherland Ken Schwaber.

PLOP Scrum pattern (Pattern Languages of Programs 1998). Mike
Beedle, Linda Rising, et al.
SCRUM - Caractersticas
Equipos auto-organizados
El producto progresa en una serie de sprints que duran
un mes
Los requerimientos se encuentran en el product
backlog reunidos en una lista
No contiene practicas de ingeniera pre-descriptas
Utiliza reglas generales para crear un ambiente gil para
la liberacin de los proyectos
Usado para proyectos complejos con requerimientos
cambiantes
Basado en un control de proceso emprico

Control de Proceso Emprico
Es tpico adoptar un enfoque de modelado definido
(terico) cuando los mecanismos subyacentes por el
cual el proceso opera son razonablemente bien
entendidos. Cuando el proceso es demasiado
complicado para el enfoque definido, el enfoque
emprico es la eleccin apropiada.
Process Dynamics, Modeling and Control
B. A. Ogunnaike y W.H. Ray,

Bases
Visibilidad
Inspeccin
Adaptacin

SCRUM - Estructura

Esqueleto de SCRUM
Proceso iterativo e
incremental


Corazn de SCRUM
Iteraciones

SCRUM Ciclo de Vida
Todo el trabajo es realizado en Sprints (30 das)
Durante el Sprint (carrera) se realizan reuniones
que constituyen la inspeccin emprica y las
practicas de adaptacin de Scrum.

Sprint
Reunin de planeamiento del Sprint (< 8hs)
Primeras 4hs
Requerimientos a realizarse en el sprint
Segundas 4hs
Plan de trabajo del sprint
SCRUM Ciclo de Vida
Daily sprint (< 15min)
Qu has hecho en este proyecto desde el ultimo
Daily sprint?
Qu planeas hacer en el proyecto entre hoy y la
prxima reunin Daily Scrum?
Qu impedimentos se te han presentado para
lograr lo prometido en el Sprint y proyecto?
Sprint Review (< 4hs)
Presentacin de lo desarrollado durante el sprint
Sprint Retrospective (< 3hs)
Revisin y anlisis del proceso de desarrollo

SCRUM Ciclo de Vida
SCRUM Roles
Product owner (dueo del producto)

Team (equipo)

ScrumMaster
SCRUM Artefactos
Product backlog

Sprint backlog

Incremento de una
funcionalidad
del producto
potencialmente
despachable [3]

eXtreme Programming
[4]
Qu es XP?
Es una metodologa gil
Diseada para entornos dinmicos
Pensada para equipos pequeos (hasta 10
programadores)
Orientada fuertemente hacia la codificacin
nfasis en la comunicacin informal, verbal

Historia de XP
Creado por Kent Beck para la plantilla del
proyecto C3 en Chrysler
Kent fue contratado para dirigir el proyecto
Durante el proceso naci una nueva
metodologa: eXtreme Programming (XP)
C3 concluy exitosamente en 1997

Valores que fomenta XP
Comunicacin

Simplicidad

Retroalimentacin

Coraje

Roles XP

Programador (Programmer)
Responsable de decisiones
tcnicas
Responsable de construir el
sistema
Sin distincin entre analistas,
diseadores o codificadores
En XP, los programadores
disean, programan y realizan las
pruebas
Jefe de Proyecto
(Manager)
Organiza y gua las
reuniones
Asegura condiciones
adecuadas para el
proyecto

Cliente (Customer)
Es parte del equipo
Determina qu construir
y cundo
Establece las pruebas
funcionales
Roles XP

Encargado de
Pruebas (Tester)
Ayuda al cliente con las
pruebas funcionales
Se asegura de que las
pruebas funcionales se
superan
Rastreador (Tracker)
Metric Man
Observa sin molestar
Conserva datos
histricos
Entrenador (Coach)
Responsable del proceso
Tiende a estar en un
segundo plano a medida
que el equipo madura

Captura de Requisitos en XP
Historias del Usuario (User-Stories)
Establecen los requisitos del cliente
Trozos de funcionalidad que aportan valor
Se les asignan tareas de programacin con
un n de horas de desarrollo
Las establece el cliente
Son la base para las pruebas funcionales
Captura de Requisitos en XP
Una ficha de User-Story
Planificacin en XP
Planificacin por entregas (releases)
Se priorizan aquellas user-stories que el cliente
selecciona porque son ms importantes para el negocio
Entregas:
Son lo ms pequeas posibles
Se dividen en iteraciones (iteracin = 2 o 3 semanas)
Estn compuestas por historias
A cada programador se le asigna una tarea de la user-
story
Programacin en XP
La programacin de tareas se realiza por parejas

La pareja disea, prueba, implementa e integra el cdigo
de la tarea

Cdigo dirigido por las pruebas

Cdigo modular, intentando refactorizar siempre que se
pueda

Programacin en XP
Una ficha de Tarea
Modelo de un Proyecto XP
Espacio de trabajo XP
Espacio abierto
Mesas centrales
Cubculos en el espacio exterior
Espacio de trabajo
del proyecto C3 de
DaimlerChrysler
Prcticas XP

El juego de la
planificacin
Entregas pequeas
Metfora
Diseo simple
Pruebas
Refactoring



Programacin en
parejas
Propiedad colectiva
Integracin contnua
Semana de 40 horas
Cliente in situ
Estndares de
programacin
Prcticas XP
El Juego de la planificacin
Decisiones de negocio (cliente):
Alcance Cundo debe estar listo el producto
para que sea valioso en produccin?
Prioridad Prioriza la incorporacin de las user-
stories
Composicin de entregas Qu se necesita para
que el negocio sea mejor antes de tener el sw?
Fechas de entrega Fechas cuando el software
funcionando causara una gran diferencia
Prcticas XP
... El Juego de la planificacin
Decisiones tcnicas (programadores y otros):
Estimaciones Cunto tiempo tardar en
implementarse una user-story?
Consecuencias Tener en cuenta las
consecuencias tcnicas de determinadas decisiones
de negocio
Proceso Organizacin del proceso y el equipo
Planificacin detallada Dentro de una entrega,
qu user-stories se realizan primero. Intentar
trasladar los segmentos de desarrollo ms
arriesgados al principio, intentando respetar las
prioridades del negocio


Prcticas XP
... El Juego de la planificacin
Reunin diaria XP

Reunin diaria Stand-up Meeting
Todo el equipo
Problemas
Soluciones
De pie en un crculo
Evitar discusiones largas
Sin conversaciones separadas
Prcticas XP
Entregas pequeas
Cada entrega es lo ms corta posible:
Contenga requisitos ms valiosos del sistema
(bsicos)
Reducen el riesgo mayor retroalimentacin desde
el cliente, y ms frecuente
Minimizar el n de user-stories que componen una
entrega No realizar user-stories a medias

Prcticas XP
Metfora
Cada proyecto XP es guiado por una
metfora global

Da un contexto al equipo para entender
los elementos bsicos y sus relaciones

Proporciona integridad conceptual

Prcticas XP
Diseo simple
Se disea la cosa ms simple que pueda
funcionar
Uso de tarjetas CRC
Diseo de software correcto, es aquel
que:
Supera todas las pruebas
No tiene lgica duplicada
Pone de manifiesto las intenciones
importantes de los programadores
Tiene el mnimo nmero de clases y mtodos

Prcticas XP
Pruebas
Las pruebas unitarias se escriben ANTES
que el cdigo
Pruebas automatizadas
Permiten el desarrollo de proyectos de
forma rpida y segura
Pruebas unitarias programadores
Pruebas funcionales cliente
Resultado Un programa cada vez ms
seguro
Prcticas XP
Refactoring
Refactorizacin = Mejora del cdigo

Intentar eliminar complejidad

Cdigo duplicado Refactorizacin

Se plantea su aplicacin despus de
implementar cada user-story [5]


Prcticas XP
Programacin en parejas
Toda el cdigo se escribe en
parejas
Se produce cdigo de
mayor calidad
Extiende el conocimiento

Se realiza el trabajo de una
persona en casi la mitad del
tiempo y mejor (cuestionable)

[6]
Prcticas XP
Propiedad colectiva
Cualquiera puede modificar el cdigo en
cualquier momento Se evitan cuellos de
botella en la codificacin

Todos asume las responsabilidades sobre el
conjunto del sistema

Todos conocen algo sobre todas las partes y
conocen muy bien aqullas en las que trabajan
Prcticas XP
Integracin contnua
El cdigo se integra y se prueba despus de
pocas horas

Existe una computadora dedicada para la
integracin

Cada pareja integra su cdigo en dicha
computadora

Prcticas XP
Semana de 40 horas
Filosofa: Los programadores que descansan
son ms productivos

El exceso de trabajo es un serio problema en un
proyecto

La gente est ms fresca y tiene mejores ideas

Prcticas XP
Cliente in situ
Cliente real = Aquel que usar el sistema cuando est
en produccin

El cliente real debe estar con el equipo de trabajo:
Responder preguntas
Resolver disputas
Establecer prioridades
Discutir mejoras


Prcticas XP
Estndares de programacin
Son fundamentales cuando los programadores
cambian de pareja o hacen refactoring del
cdigo de otros

Se consigue un cdigo con el mismo estilo,
homogneo, legible
Prcticas XP
Interaccin entre Prcticas
XP: Kent Beck
CONCLUSIONES
La dinmica de grupo da buenos resultados
Se presenta la tendencia global de mejoras
continuas en los desarrollos de SWs
Es un mtodo para las personas que se resisten
en trabajar por procesos
En un futuro se podr hacer comparaciones
sobre lo que es mas conveniente
A los clientes les gusta el control aadido

libertario, ria. 1. adj. Que defiende la libertad absoluta y, por lo tanto, la supresin
de todo gobierno y de toda ley. V.
Trasparencia traducida desde A History of Agile Methods presentada por Alan
Davis en las JISBD 2003 (Noviembre 2003, El Escorial, Espaa)
BIBLIOGRAFIA
[1] Ingeniera de Software, un enfoque practico, Roger S. Pressman,
6ta. Edicin, Ed. Mc Graw Grill 2005
[2] Ingeniera de Software, Ian Sommerville, 7ma. Edicin, Ed.
Pearson 2005
[3]
www.fing.edu.uy/inco/cursos/gestsoft/Presentaciones/Procesos%20
Agiles%20-%20G4/Procesos%20Agiles.ppt
[4]
http://users.dsic.upv.es/asignaturas/facultad/lsi/doc/MetodologiasAgi
lesyExtremeProgramming.ppt
[5] www.refactoring.com
[6] www.pairprogramming.com

Anda mungkin juga menyukai