Title: Taller de Metodologas giles de Desarrollo de Software CC62V
1Taller de Metodologías Ágiles de Desarrollo de
SoftwareCC62V
- 1ª y 2ª Sesiones Motivación del
cursoFundamentos de XP - Agustín Villena M.
- avillena_at_acm.org
2Quién soy
- Ex-alumno del DCC
- Titulado en 1998
- Dueño de una empresa de multimedia (QEPD)
(1998-2001) - Líder de un proyecto de Informática Educativa,
apoyado por la Incubadora AccessNova
3Quién soyExperiencia Profesional
- Sistema CERTIFICA DICTUC (1998-2000)
Arquitecto del sistema y desarrollador - CD VTR Banda Ancha
- CD CEPECH PAA2000 Creador y desarrollador
- Asesor organizacional
- Fundación Hogar Catequístico
- Corporación de Educación de San Bernardo
- Tutor de Proyecto de Software (CC61A)
4Objetivos del Curso
- General
- Evaluar en la práctica metodologías ágiles de
desarrollo de software, en particular la
metodología Extreme Programming (XP) - Específicos
- Identificar los conceptos en los que se basan
dichas metodologías - Experimentar la metodología XP a través del
desarrollo de un software - Evaluar las distintas prácticas y reglas
promovidas por XP, según se efectividad y
pertinencia a la realidad nacional
5Reglas del juego
- Se evaluarán 3 aspectos
- Desarrollo realizado (50)
- Proceso (20)
- Cumplimiento de tareas asumidas
- Co-evaluación
- Experimental Investigar y evaluar los valores y
prácticas XP (30) - Papers mensuales, individuales, con opinión
personal - Presentación final, grupal
- Todos los aspectos deben tener nota gt 4.0
6Motivación
- Problemas comunes al desarrollar software?...
- Caos
- Falta de un método sistemático de trabajo, que se
sigue a veces - La dura realidad Code like hell
- Una solución UML y el Rational Unified Process
(RUP), CMM. - Completísimo y apoyado por muchas herramientas
- Tan grande, que nadie lo usa completamente ?
- Y si además tengo pocos recursos? Y necesito el
trabajo para sobrevivir? - Puedo gastar tiempo en documentar más allá de lo
necesario? - Las herramientas, pueden ser más importantes que
el objetivo
7Fundamentos de XP
- Problema fundamental del desarrollo del software
- Lidiar con el Riesgo
- Causa del Riesgo?
- La incertidumbre
- La única certeza?
- El cambio
8Fundamentos de XPCómo disminuir la incertidumbre
- Obteniendo retroalimentación exacta y precisa del
avance de un proyecto - Invirtiendo los menos recursos posibles al
comienzo - Ofreciendo la oportunidad de ir más rápido
- Permitiendo cambiar drásticamente los
requerimientos
9Fundamentos de XPLas variables de todo proyecto
de software
- Tiempo, Costo, Alcance, Calidad
- Por lo regular se fijan las 3 primeras variables
- Hazme un administrador de estas tablas de la
base de datos, en una semana, con dos
programadores - Entonces la variable que sufre es la calidad
- Pero la calidad no es algo realmente negociable
(A quién le gusta hacer un mal trabajo?) - Y si lo variable fuera el Alcance?
10Fundamentos de XPLos costos del cambio en el
alcance de un proyecto de software
Y si fuera así?
11Fundamentos de XPCómo aplanar la curva de costos
- No sucede mágicamente
- Hay tecnologías que son más amigables con el
cambio - Programación Orientada a Objetos
- Bases de Datos Orientadas a Objetos
- Pero la tecnología sola no sirve
- Prácticas útiles
- Un diseño simple del sistema, sin áreas
desiertas (código que no se usa) - Un sistema automático de Pruebas
- Permite hacer cambios y comprobar la coherencia
del sistema - Mucha práctica en cambiar diseños de sistemas
12Fundamentos de XPEl valor entregado del proyecto
en su tiempo de desarrollo
Y si fuera así?
13Fundamentos de XPEl valor entregado del proyecto
en su tiempo de desarrollo (cont)
- Ventajas de la nueva curva
- El sistema tiene una utilidad promedio superior
- Al fin de cada iteración del desarrollo, se tiene
un sistema funcional y útil - Cómo se logra?
- El cliente decide qué funcionalidad se implementa
primero, según su valor - El desarrollo se realiza en incrementos pequeños
- Continuamente se integran los cambios en el
sistema
14Fundamentos de XPPero esta innovación exige
valores comunes
- Valores Comunes son los que permiten que las
personas trabajen por el beneficio común antes
que el propio - Y en definitiva, el desarrollo de software es una
actividad humana - Es afectada por la motivación, creencias y los
instintos de las personas
15Fundamentos de XPValores de XP
16Fundamentos de XPY esta da origen a prácticas
- 12 en total para las actividades
- Planificación
- Codificación
- Diseño
- Prueba
- Algunas de las más destacadas
- Programación de a pares
- Entregas incrementales de software
- Diseño a partir de pruebas
- Refactorización de código
- Propiedad colectiva de las fuentes del proyecto
17Prácticas de XP
18Cómo funciona XP
Plan de Entregas con Historias de Usuario
Reunión de Planificación de Entregas
Escribir código y Pruebas de Módulos
Refactorizar la iteración previa
El Cliente selecciona la lista de historias para
la iteración / mini-entrega
Pruebas de Aceptación
- Mantenerse iterando para pasar las Pruebas de
Aceptación - Pruebas de sistema (Bugs)
- Pruebas de Módulos
- Pruebas de usuario
Aprobación del cliente
Pruebas de aceptaciónOK?
Entregas pequeñas al cliente
19Actores del desarrollo XP
- Se abstraen las individualidades en dos bandos
- Clientes (Bussiness)
- Desarrolladores (Development)
- Cada cual posee derechos y deberes
20Actores del desarrollo XPDerechos del Cliente
- Tiene el derecho y el deber de
- Decidir qué será implementado (Alcance del
proyecto), definiendo la prioridad, composiciones
y fechas de las entregas - Siempre saber el estado actual y el progreso del
proyecto. - Agregar, cambiar y remover requerimientos en
cualquier momento. - Obtener el mayor valor de cada semana de
desarrollo. - Tener un sistema funcional cada 3 o 4 meses
- OJO La tecnología es una decisión del cliente
21Actores del desarrollo XPDerechos del
Desarrollador
- Tiene el derecho y el deber de
- Decidir cómo se implementarán las cosas
- Crear sistemas con la más alta calidad posible
- Consultar al cliente aclaraciones a los
requerimientos en cualquier momento - Estimar el el esfuerzo de implementar un sistema,
y cambiar las estimaciones basado en nuevos
descubrimientos - Definir las consecuencias técnicas de una
decisión del cliente
22Gestión de un proyecto XP
- Cómo alcanzar el justo medio entre?
- Gestión centralizada
- Caos
- Se definen dos roles
- Coach (Entrenador)
- Tracker (Medidor de avance)
- pueden ser cumplidos por la misma persona
23Rol del Entrenador
- Ayudar al resto a hacer un trabajo aún mejor
- Que todos tomen buenas decisiones
- Estar disponible para ser socio de desarrollo (en
especial de los novicios) - Vislumbrar objetivos de refactorización de gran
escala, y promover las refactorizaciones pequeñas
que ayuden - Ayudar a los programadores con destrezas
individuales - Testing,
- formateo de código
- refactorización
- Explicar el proceso a gerentes de mayor nivel
- Proveer de juguetes y comida ?
24Rol del Medidor de Avance
- Usar métricas para medir el avance del proyecto
(solo las indispensables) - Por ejemplo Tiempo de desarrollo / Tiempo
calendario - Actualizarlas 2 vesce por semana máximo
- Mostrar los valores en una Carta Grande y Visible
para todo el equipo - Ayudar al Entrenador a
- Motivar al cambio de una manera gentil y no
coercitiva
25Cómo interviene la gestión un proyecto XP
- Es importante reaccionar ante los problemas
apenas aparecen - Se reflexiona acerca de qué provoco el problema
- Si hay que tomar medidas impopulares, hacerlo
firme pero humildemente - Ejemplos de intervención
- Cambios de personal
- En las estrategias de desarrollo
- Matar el proyecto
26Primera Tarea
- Ir a www.extremeprogramming.org/rules.html
- Escoger una de las 12 prácticas.
- Preparar una presentación SIMPLE
- En qué consiste?
- Fortalezas de la práctica
- Debilidades de la práctica
- La opiniones bien argumentadas son bievenidas
- Inscribir en cc62v_at_dcc.uchile.cl qué práctica se
desea exponer al curso. Ver disponibilidad en
www.dcc.uchile.cl/cc62v - Las exposiciones se realizarán desde la semana
próxima (jueves 8). 4 por clase
27(Algunos) RecursosEnlaces de Internet
- www.extremeprogramming.org
- www.xprogramming.com
- www.pairprogramming.com
- rolemodelsoft.com/XP/index.htmpairProgrammingDotC
om - www.xp123.com/xplor
- www.xpuniverse.com/pastXpu
- www.refactoring.com
28(Algunos) RecursosBibliografía
- Extreme Programming Explained Embrace
ChangeKent Beck - Extreme Programming Installedby Ron Jeffries,
Ann Anderson, Chet Hendrickson - Extreme Programming Applied Playing to Winby
Ken Auer and Roy Miller - Extreme Programming in Practiceby Robert C.
Martin, James W. Newkirk