Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aumento de
Fuerte
Comunicacion
productividad
con el cliente
Exploracion Planificacion
Produccion Iteracion
CICLO DE VIDA
Escuchar al Cliente
(Historias de Usuario)
Exploracion
Refinar Historias de Usuario
(Exploracion)
Entender lo pedido
(Familiarizarse con las
herramientas a usar)
CICLO DE VIDA
Crear Version
Testeo
Chequeo
No Cumple
Iteracion Cumple
Siguiente Historia de Usuario
CICLO DE VIDA
Produccion
Puesta en produccion en el cliente
Mantenimiento
Communication
VALORES Feedback
De la Programación Extrema
Courage
Respect
No hacer más que lo que sea absolutamente necesario.
Simplicity
Enfocarse en las necesidades de hoy.
SENCILLEZ
Communication
Apela a formas de comunicación menos complejas y formales que las
metodologías de desarrollo de software tradicionales.
COMUNICACIÓN
Sistema Feedback
Tests unitarios
Tests de integración.
Cliente
Cuando el cliente tiene nuevos requerimientos, el equipo da una estimación de manera directa,
acerca del tiempo de implementación.
RETROALIMENTACIÓN
Courage
Varios de los valores implican coraje.
Por ejemplo, no hacer más que lo necesario, implica el coraje de saber que, más
adelante, será necesario refactorizar el código actual.
VALENTÍA
Respect
El valor de respeto se refiere al respecto hacia a otros y hacia uno mismo.
Los miembros que tienen los 4 valores antes mencionados, obtienen el respeto de
todo el equipo.
RESPETO
ACTORES Y Programmer
RESPONSABILID
Customer
ADES
Coach
De la Programación Extrema
Tracker
Tester
Responsable de decisiones técnicas
Programmer
Responsable de construir el sistema
PROGRAMADOR
Es parte del equipo
Customer
Toma todas las decisiones comerciales relacionadas con el proyecto :
Criterios de aceptación
CLIENTE
Puede ser un consultor externo Coach
Principal responsable del proceso
Ayuda a evitar posibles errores que los nuevos equipos puedan cometer, lo que
agiliza el proyecto.
ENTRENADOR
Es un rol opcional y depende si el equipo lo requiere
Tracker
Realiza un seguimiento de las métricas ágiles relevantes
Conserva datos históricos
RASTREADOR
Tester
PROBADOR
Codificar
Diseñar
Codificar
Es necesario codificar y plasmar nuestras ideas a través del código.
CODIFICAR
Hacer Pruebas
Las características del software que no pueden ser demostradas mediante
pruebas simplemente no existen
Las pruebas nos indican que nuestro trabajo funciona, cuando no podemos
pensar en ninguna prueba que pudiese originar un fallo en nuestro sistema,
entonces habremos acabado por completo
HACER PRUEBAS
Escuchar
En una frase, "Los programadores no lo conocemos todo, y sobre todo muchas
cosas que las personas de negocios piensan que son interesantes. Si ellos
pudieran programarse su propio software ¿para qué nos querrían?"
Si vamos a hacer pruebas tenemos que preguntar si lo obtenido es lo deseado,
y tenemos que preguntar a quien necesita la información. Tenemos que
escuchar a nuestros clientes cuáles son los problemas de su negocio, debemos
de tener una escucha activa explicando lo que es fácil y difícil de obtener, y la
realimentación entre ambos nos ayudan a todos a entender los problemas
ESCUCHAR
Diseñar
El diseño crea una estructura que organiza la lógica del sistema, un buen
diseño permite que el sistema crezca con cambios en un solo lugar
Los diseños deben de ser sencillos, si alguna parte del sistema es de desarrollo
complejo, lo apropiado es dividirla en varias
DISEÑAR
El juego de
Versiones Pequeñas (Short Releases)
la Planificación (Planning Game)
El alcance de la siguiente versión esta definido por Un sistema simple se pone rápidamente en
las consideraciones de negocios y estimaciones producción
técnicas
El objetivo es maximizar
el valor del software producido. Periódicamente, se producen nuevas
La estrategia es poner en producción las versiones agregando en cada iteración
características más importantes lo antes posible aquellas funciones consideradas valiosas
Las Piezas clave son las Story Cards, Los Jugadores para el cliente
son los desarrolladores y el cliente y las Movidas
son Exploración, Selección y Actualización
PRÁCTICAS BÁSICAS DE XP
Metáfora del Sistema (Metaphor) Diseño Simple (Simple Designs)
Cada Proyecto es guiado por El sistema se diseña con la máxima
una historia simple de cómo funciona el simplicidad posible
sistema en general Se plasma el diseño en tarjetas CRC
(Clase – Responsabilidad- Colaboración)
La historia reemplaza a la arquitectura y
No se implementan características que no son
debe estar en lenguaje común, entendible necesarias
para todos Durante el análisis se determinan las clases
que son realmente necesarias para el sistema
PRÁCTICAS BÁSICAS DE XP
Pruebas continuas Refactoring
La cobertura de testeo debe ser muy El refactoreo del código sucede cada vez
amplia, no debe haber código no testeado. que sea necesario.
Están involucrados los programadores Esta práctica es consecuencia directa del
(tests unitarios y de integración) y los valor ‘Sencillez’ ya que el foco siempre
clientes (tests funcionales o de aceptación). está en codificar lo que se necesita hoy sin
dedicar tiempo a posibles futuros
requerimientos.
PRÁCTICAS BÁSICAS DE XP
Pair programming Collective code ownership
Se programa de a dos personas Todos pueden hacerse cargo de cambios en
cualquier lugar del código.
Emparejamiento dinámica (no se trabaja
todo el tiempo con la misma persona).
Diferentes roles: una persona escribe el Todos conocen la totalidad del sistema.
código mientras la otra piensa si va a
funcionar, que tests habría que modificar,
etc.
PRÁCTICAS BÁSICAS DE XP
Integracion Continua
PRÁCTICAS BÁSICAS DE XP
40hs Semanales
PRÁCTICAS BÁSICAS DE XP
Cliente en el sitio (On-Site Customer)
PRÁCTICAS BÁSICAS DE XP
Estandares de codeo
-Permitir el refactoreo.
PRÁCTICAS BÁSICAS DE XP
Potenciar
el trabajo
en equipo Balance:
Costo
Satisfacción
Tiempo
del cliente
Calidad
Alcance
OBJETIVOS DE XP