XP (Programación Extrema) es una metodología ágil para el desarrollo de software que se basa en valores como la comunicación, la simplicidad y el valor del feedback. Promueve prácticas como la programación en parejas, las entregas pequeñas y frecuentes, y la propiedad colectiva del código para mejorar la calidad del producto y la satisfacción del cliente. Aunque requiere adaptación al entorno, la XP puede ser una buena alternativa para proyectos que requieren rapidez y trabajo en equipo.
2. HISTORIA
Nace de la mano de Kent Beck en el
verano de 1996, cuando trabajaba
para Chrysler Corporation.
El tenía varias ideas de
metodologías para la realización
de programas que eran cruciales
para el buen desarrollo de
cualquier sistema.
Las ideas primordiales de su
sistema las comunicó en la revista
C++ Magazine en una entrevista
que ésta le hizo el año 1999.
3. ¿Qué ES XP?
•Nueva disciplina del desarrollo de software.
•Su objetivo es aumentar la productividad al desarrollar
software.
•Permite la reducción de la burocracia alrededor de la
creación de software.
•Metodología de desarrollo ligera (ágil).
•El equipo lo conforman los jefes de
proyecto, desarrolladores y el cliente.
•Se rige por valores y principios.
4. Es una Metodología ágil
Se basan en la adaptabilidad de cualquier cambio
como medio para aumentar las posibilidades de éxito
de un proyecto.
• Los individuos y sus interacciones son más
importantes que los procesos y las herramientas.
• El software que funciona es más importante que la
documentación exhaustiva.
• La colaboración con el cliente en lugar de la
negociación de contratos.
• La respuesta delante del cambio en lugar de seguir un
plan cerrado.
5. ¿QUÉ PRETENDE EVITAR XP?
•Retrasos en la planificación.
•Sistemas deteriorados.
•Tasa de defectos.
•Requisitos mal comprendidos.
•Cambios de negocio.
•Falsa riqueza.
•Cambios de personal.
6. Posturas a favor y en contra
A . Lo he probado y no me gusta nada
B. Es una mala idea, no puede funcionar
nunca
C. Es una buena idea, pero no funcionará.
D. Lo he probado y me gusta mucho
7. OBJETIVOS DE XP
La satisfacción del cliente
Potenciar el trabajo en grupo.
8. EPISODIO DE DESARROLLO
EL JEFE DE PROYECTO:
“Quiero estos requisitos realizados para el
día 1 de mes próximo, solo cuentan con el
equipo actual. ¡Ah ya sabes que la calidad
es lo primero!”
10. CUATRO VALORES PARA AFRONTAR
CAMBIO CON XP
Comunicación: Crear software requiere de sistemas
comunicados.
Sencillez: Empezar con lo necesario y requerido y
trabajar desde ahí
Retroalimentación: Del sistema, del cliente, y del equipo.
Valentía: Programa para hoy y no para mañana.
Respeto: El equipo debe trabajar como uno, sin hacer
decisiones repentinas.
11. •XP ayuda mediante sus prácticas a fomentar la
comunicación.
•XP nos enseña a apostar, ¡Apuesta por hacer una
cosa sencilla hoy y pagar un poco mas para
mañana.!
•“No me preguntes a mi, pregúntale al sistema”
•Asumir retos, ser valientes antes los problemas
y afrontarlos.
12. ¿ Qué tareas debemos de llevar a cabo para
desarrollar un buen software ?
•Codificar: La parte mas importante de XP.
•Hacer pruebas: Nunca se puede estar seguro de
algo hasta haberlo probado
•Escuchar: Escuchar los requisitos del cliente
acerca del sistema a crear.
•Diseñar: Crear una estructura del diseño para
evitar problemas.
13. FASES DE LA METODOLOGIA XP
Se basa en 12 principios básicos, agrupados en 4
categorías.
•Retroalimentación a escala fina.
•Proceso continuo en lugar de por lotes.
•Entendimiento compartido.
•Bienestar del programador.
14. Retroalimentación a escala fina
1. El principio de pruebas: definición de las entradas al
sistema y los resultados esperados de estas entradas.
ºº
2. Proceso de planificación: Se creará un documento llamado
Historias del usuario.
3. El cliente en el sitio: Representante del cliente para determinar
los requerimientos, definir la funcionalidad, señalar las
prioridades y responder las preguntas de los programadores.
4. Programación en parejas: Este principio puede producir
aplicaciones más buenas, de manera consistente, a iguales o
menores costos.
15. Proceso continuo en lugar de por lotes.
También la programación en pareja permite que los errores se
descubran al momento de la codificación, la cantidad de defectos
es menor, los diseños son de mejor calidad y por ende el código es
muy corto, el equipo resuelve los problemas más
rápido, desarrollan la calidad de programar así como del programa
y por último las personas disfrutan de su trabajo.
1. Integración continua: permite al equipo hacer un rápido
progreso implementando las nuevas características del software.
2. Refactorización: Los programadores evalúan continuamente el
diseño y recodifican lo necesario.
3. Entregas pequeñas: colocan un sistema sencillo en producción
rápidamente que se actualiza de forma rápida y constante
permitiendo que el verdadero valor de negocio del producto sea
evaluado en un ambiente real.
16. • Entendimiento compartido.
1. Diseño simple: el mayor valor de negocio es entregado por el
programa más sencillo que cumpla los requerimientos.
2. Metáfora: define una historia de como funciona el sistema
completo.
3. Propiedad colectiva del código: un código con propiedad
compartida.
4. Estándar de codificación: define la propiedad del código
compartido sí como las reglas para escribir y documentar
el código.
17. Ventajas de la programación en pareja
•Mas disciplina.
•Mejor código.
•Flujo de trabajo constante.
•Múltiples desarrolladores contribuyen al diseño.
•Moral mejorada.
•Propiedad Colectiva del código.
•Enseñanzas.
•Cohesión de equipo.
•Pocas interrupciones.
•Menos estaciones de trabajo.
18. Desventajas de la programación en pareja
•Es tedioso enseñar a otro desarrollador menos experto.
•Muchos desarrolladores prefieren trabajar solos.
•Productividad difícil de medir.
•Diferencias en el estilo de codificación.
•Cronogramas distintos.
•Compañías que funcionan con Teletrabajo.
19. Bienestar del programador.
La semana de 40 horas: la programación extrema
sostiene que los programadores cansados escriben código
de menor calidad.
20. CONCLUSIONES
Se puede concluir que la programación extrema es una buena
alternativa, dependiendo del entorno de desarrollo en que se
esta trabajando.
Al ser una herramienta que se basa en otras metodologías, se
puede confiar en cada proceso individual.
La XP brinda no solo ventajas en cuanto a rapidez, sino que
promueve habilidades sociales como la comunicación, el
trabajo en equipo y disciplina.