Está en la página 1de 48

UNIVERSIDAD DEL ISTMO

UNIVERSIDAD DEL ISTMO Tema: Metodología Ágil - Programación Extrema (XP) Expositor: José Pablo Santiago Cabrera.

Tema: Metodología Ágil - Programación Extrema (XP)

Expositor: José Pablo Santiago Cabrera.

Carrera: Licenciatura En Informática.

Calidad de Software Objetivos J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Objetivos
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Introducción.

Desarrollo.

Historia de la XP.

Definición de la XP.

Programacion Extrema.

Recursos de la XP.

Valores y principios de la XP.

Roles en XP.

Ciclo de vida de un proyecto XP.

Ventajas y desventajas.

Conclusión

Calidad de Software Introducción J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Introducción
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

La metodología de desarrollo de software evolucionó desde los años 90’s.

El proceso del modelo en cascada era visto como lento, degradante y con mucho

papeleo.

Inicialmente

los

métodos

ágiles

fueron

llamados de “peso liviano”.

Calidad de Software Introducción J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Introducción
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

En una reunión celebra en febrero de 2001 en Utah EUA, nace el término “ágil”

aplicado al desarrollo de software.

El objetivo de esta reunión fue:

Dar a conocer los valores y principios de esta

metodología.

Calidad de Software Introducción J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Introducción
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Tras esta reunión se creó una organización llamada “The Agile Alliance.

Todo esto genero el Manifiesto Ágil, este es un documento que resume la filosofía “ágil”

y muestra los valores principales del

desarrollo de software ágil.

Calidad de Software Introducción J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Introducción
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Introducir al cliente en las interacciones del equipo de desarrollo sobre el proceso.

Desarrollar software que funciona más que

conseguir una buena documentación.

La colaboración del cliente más que la

negociación de un contrato.

Responder a los cambios más que seguir estrictamente un plan.

Calidad de Software Introducción J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Introducción
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013
METODOLOGÍA ÁGIL METODOLOGÍA TRADICIONAL Pocos artefactos, modelos desechables. Más artefactos. El modelo es
METODOLOGÍA ÁGIL
METODOLOGÍA TRADICIONAL
Pocos artefactos, modelos desechables.
Más artefactos. El modelo es esencial.
Preparadas para cambios durante el proyecto.
Cierta resistencia a los cambios.
Proceso menos controlado, pocos principios.
Proceso con numerosas políticas y normas.
El cliente es parte del equipo de desarrollo.
El cliente interactúa mediante reuniones.
Existe contrato flexible.
Existe un contrato prefijado.
Grupos pequeños trabajando en el mismo sitio.
Grupos grandes y posiblemente distribuidos.
Poco consumo de recursos.
Pocos roles.
Más consumo de recursos.
Mas Roles.
Menos énfasis en la arquitectura del software.
La arquitectura de software es esencial.
Calidad de Software Introducción J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Introducción
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Ejemplos de Metodologías Ágil:

Adaptive Software Development (ASD).

Agile Unified Process (AUP).

Crystal Clear.

Essential Unified Process (EssUP).

Feature Driven Development (FDD).

Lean Software Development (LSD).

Kanban.

Open Unified Process (OpenUP).

Programación Extrema (XP).

Método de Desarrollo de Sistemas Dinámicos (DSDM).

Scrum.

Calidad de Software Historia J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Historia
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

En 1989, Cunningham formó un equipo que usaba los principios y muchas de las prácticas que después

adoptaría XP.

Pero se reconoce a Kent Beck como el que articuló esta propuesta y le dio nombre propio con la publicación del libro “Extreme Programming Explained: embrace change” en 1999.

y le dio nombre propio con la publicación del libro “Extreme Programming Explained: embrace change” en
Calidad de Software Historia J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Historia
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

El manifiesto ágil destaca los valores principales del desarrollo de software ágil, algunas de ellas son:

Desarrollar software que funciona más que conseguir una buena documentación.

La colaboración del cliente más que la negociación

de un contrato. Responder a los cambios más que seguir estrictamente un plan.

Calidad de Software Definición J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Definición
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

La Programación Extrema (XP) es una metodología de desarrollo de peso liviano o

ágil.

La cual acepta lo que se conoce como

buenas prácticas del desarrollo de sistemas

de software y las lleva al extremo.

Calidad de Software Definición J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Definición
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Este modelo de programación se basa en

una serie de metodologías de desarrollo de

software en la que se da prioridad a los trabajos que dan un resultado directo.

Calidad de Software Definición J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Definición
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

La

actividades

básicos.

XP

se

basa

de

de

variables

control,

valores,

de

control,

principios

También

algunas prácticas

esenciales que distinguen a XP de otras

metodologías de desarrollo.

existen

Calidad de Software Definición J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Definición
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

La XP permite controlar los problemas de riesgo en los proyectos mediante medidas o decisiones extremas, y algunas de las características de estas son:

Se basa en retroalimentación continua entre desarrollo.

el cliente y el equipo de

Comunicación fluida entre todos los integrantes.

Simplicidad en las soluciones implementadas.

Coraje para enfrentar los cambios.

La XP es adecuada para proyectos con requisitos imprecisos y muy cambiantes.

La toma de decisiones debe ser muy rápida y efectiva.

Calidad de Software XP J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
XP
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

La

metodología de desarrollo de XP y otros

tipos de metodologías de desarrollo es que

se centra a escuchar al usuario.

principal

diferencia

entre

la

Sabiendo escuchar lo que desean los

usuarios se puede calcular la cantidad de recursos que requerirá.

Calidad de Software XP J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
XP
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Por ejemplo.

La

asume que si el analista

determina el alcance, la calidad y el tiempo necesarios para terminar el proyecto, puede ajustar el costo.

filosofía

de

XP

Si el analista determina la cantidad de tiempo, la calidad y el costo que se requieren, podría ajustar el alcance.

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Las

actividades

extrema son:

Codificar

Probar

Escuchar

Diseñar

básicas

de

la

programación

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Codificar.

El proceso básicamente es esto:

Tener un pensamiento.

Codificarlo.

Probarlo.

Verificar si el pensamiento fue correcto.

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Probar.

La programación extrema realiza pruebas escritas para verificar la codificación, la funcionalidad, el

rendimiento y la conformidad con los objetivos.

Corto Plazo

Si las pruebas se ejecutan perfectamente se puede seguir adelante con la confianza renovada.

Largo Plazo

Mantiene vivo un sistema, y le permite hacer muchos más cambios de los que serían posibles.

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Escuchar

En la XP, esta actividad se lleva al extremo.

El desarrollador debe escuchar al cliente.

Los desarrolladores asumen que no saben nada acerca del negocio en el que están colaborando, y por

lo tanto deben escuchar cuidadosamente a los

usuarios para obtener las respuestas a sus preguntas.

Si no escucha, no sabrá lo que debe codificar o lo que debe probar.

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Diseñar

Diseñar es una actividad evolutiva, y por ello los sistemas que se diseñan con un enfoque de la programación extrema se conceptualizan como en constante evolución, siempre diseñándose.

Diseñar bien permite agregar extensiones al sistema haciendo cambios en un solo lugar.

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Las variables de control de recursos son:

Calidad

Alcance

Tiempo

Costo

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Calidad.

Este externa.

recurso

se

Calidad interna.

divide

en

dos

calidad

interna

y

Esta calidad se basa de probar factores del software como la funcionalidad y la conformidad. Se recomienda que centrarse mas a esta calidad.

Calidad externa.

Esta calidad se basa de la percepción del cliente al sistema.

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

La XP permite sacrificar algunos de los aspectos de calidad externos, para que el sistema sea liberado a tiempo. Implicando a que el cliente

tenga que lidiar con algunos errores.

Si el desarrollador desea cumplir con la fecha límite, tal vez la interfaz de usuario no sea perfecta,

La puede refinar en una versión posterior.

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Alcance.

Supongamos que estamos desarrollando un software para la empresa ADO.

El cliente pide:

Pagina web radio.

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Tiempo.

Es necesario dedicar suficiente tiempo a la elaboración

de un proyecto.

El tiempo se asigna a actividades separadas.

La XP desafía la idea de que más tiempo le permitirá obtener los resultados que desea.

Con frecuencia suele ocurrir que los clientes se sienten felices si parte de la funcionalidad queda lista a tiempo.

Calidad de Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP
Calidad de Software
Recursos de la
J. Pablo Santiago Cabrera
Programacion Extrema
Programacion Extrema XP
13/01/2013

Costo.

Software Recursos de la J. Pablo Santiago Cabrera Programacion Extrema Programacion Extrema XP 13/01/2013 • Costo.
Calidad de Software Valores y Principios J. Pablo Santiago Cabrera de la XP Programacion Extrema
Calidad de Software
Valores y Principios
J. Pablo Santiago Cabrera
de la XP
Programacion Extrema XP
13/01/2013

En esta metodología existen cuatro valores que crean un entorno estable para el

desarrollo y son:

XP 13/01/2013 • En esta metodología existen cuatro valores que crean un entorno estable para el
Calidad de Software Valores y Principios J. Pablo Santiago Cabrera de la XP Programacion Extrema
Calidad de Software
Valores y Principios
J. Pablo Santiago Cabrera
de la XP
Programacion Extrema XP
13/01/2013

Comunicación.

Cada

esfuerzo

comunicación.

Simpleza

humano

tiene

la

posibilidad

de

fallar

en

la

Cuando se está trabajando en un proyecto de desarrollo de software,

la primera reacción es abrumarse por la complejidad y magnitud de la tarea.

Retroalimentación

Una retroalimentación buena y concreta, que es útil para el

programador, analista y cliente puede ocurrir en segundos, minutos,

días, semanas o meses, dependiendo de lo que se necesita, quién está comunicando y lo que se hará con dicha retroalimentación.

Valentía

La valentía tiene que ver con un nivel de confianza que debe existir en el equipo de desarrollo.

Calidad de Software Valores y Principios J. Pablo Santiago Cabrera de la XP Programacion Extrema
Calidad de Software
Valores y Principios
J. Pablo Santiago Cabrera
de la XP
Programacion Extrema XP
13/01/2013

12 Principios

El juego de la planificación.

Pequeñas versiones.

Metáfora.

Diseño simple.

Recodificación.

Programacion en parejas.

Propiedad colectiva.

Integración continua.

Cuarenta Horas.

Cliente In Situ.

Estándares de codificación.

Hacer pruebas

Calidad de Software Valores y Principios J. Pablo Santiago Cabrera de la XP Programacion Extrema
Calidad de Software
Valores y Principios
J. Pablo Santiago Cabrera
de la XP
Programacion Extrema XP
13/01/2013

El juego de la planificación.

Preguntas entre Negocio- Técnico.

Ámbito.

Prioridad.

Fecha de versiones.

Pequeñas versiones.

Versiones

pequeñas

importantes.

Metáfora.

Estimaciones.

Procesos.

Consecuencias.

con

los

requisitos

mas

Pequeña historia que tiene los desarrolladores de como funciona el sistema.

Calidad de Software Valores y Principios J. Pablo Santiago Cabrera de la XP Programacion Extrema
Calidad de Software
Valores y Principios
J. Pablo Santiago Cabrera
de la XP
Programacion Extrema XP
13/01/2013

Diseño simple.

Funciona

con

todas

las

pruebas,

tiene

numero de clases y métodos.

Recodificación.

el

menor

O refactorizar, consiste en hacer el programa mas simple sin perder funcionalidad.

Programacion en parejas.

Propiedad colectiva.

Cualquiera que pueda aportar valor al código puede

hacer, no existe individualidad.

Calidad de Software Valores y Principios J. Pablo Santiago Cabrera de la XP Programacion Extrema
Calidad de Software
Valores y Principios
J. Pablo Santiago Cabrera
de la XP
Programacion Extrema XP
13/01/2013

Integración continua.

Debe integrarse módulos como mínimo una vez al día y probar su totalidad en el sistema.

Cuarenta Horas.

Cliente In Situ.

Un cliente debe estar presenten con el equipo de programadores.

Estándares de codificación.

Se debe establecer un estándar de codificación.

Hacer pruebas

Calidad de Software Roles en XP J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Roles en XP
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Cliente

Escribe «Historias de usuarios» y especifica pruebas funcionales.

Establece prioridades.

Puede ser o no un usuario final.

Programador

Hace estimaciones sobre las historias.

Define

tareas

partir

de

las

historias

a

estimaciones.

y

hace

Implementa las historias y las pruebas unitarias.

Calidad de Software Roles en XP J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Roles en XP
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Tutor.

Observa todo, identifica señales de peligro, se asegura que el proyecto se mantiene en curso.

Ayuda en todo.

Perseguidor (calidad)

Monitoriza el progreso de los programadores, toma acción si las cosas tienden a salirse del control.

Verificador.

Implementa y corre las pruebas funcionales.

Presenta graficas de los resultados y se asegura de que la

gente conoce cuando los resultados empiezan a caer.

Calidad de Software Roles en XP J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Roles en XP
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Agorero.

Se asegura que todos conocen los riesgos que existen.

Se asegura que las malas noticias no se oculten.

Gestor.

Planifica las reuniones.

Es el responsable directo del propietario de oro.

Propietario de oro.

La persona que paga el proyecto.

Calidad de Software Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP.
Calidad de Software
Ciclo de vida de un
J. Pablo Santiago Cabrera
proyecto en XP.
Programacion Extrema XP
13/01/2013

El ciclo de vida ideal de XP consiste de seis fases que son:

Exploración.

Planificación de la Entrega (Release).

Iteraciones.

Producción.

Mantenimiento.

Muerte del Proyecto.

Calidad de Software Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP.
Calidad de Software
Ciclo de vida de un
J. Pablo Santiago Cabrera
proyecto en XP.
Programacion Extrema XP
13/01/2013

Exploración.

Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP. Programacion Extrema XP 13/01/2013
Calidad de Software Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP.
Calidad de Software
Ciclo de vida de un
J. Pablo Santiago Cabrera
proyecto en XP.
Programacion Extrema XP
13/01/2013

Planificación de la Entrega.

de un J. Pablo Santiago Cabrera proyecto en XP. Programacion Extrema XP 13/01/2013 – Planificación de
Calidad de Software Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP.
Calidad de Software
Ciclo de vida de un
J. Pablo Santiago Cabrera
proyecto en XP.
Programacion Extrema XP
13/01/2013

Iteraciones

Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP. Programacion Extrema XP 13/01/2013
Calidad de Software Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP.
Calidad de Software
Ciclo de vida de un
J. Pablo Santiago Cabrera
proyecto en XP.
Programacion Extrema XP
13/01/2013

Producción

Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP. Programacion Extrema XP 13/01/2013
Calidad de Software Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP.
Calidad de Software
Ciclo de vida de un
J. Pablo Santiago Cabrera
proyecto en XP.
Programacion Extrema XP
13/01/2013

Producción

Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP. Programacion Extrema XP 13/01/2013
Calidad de Software Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP.
Calidad de Software
Ciclo de vida de un
J. Pablo Santiago Cabrera
proyecto en XP.
Programacion Extrema XP
13/01/2013

Mantenimiento

Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP. Programacion Extrema XP 13/01/2013
Calidad de Software Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP.
Calidad de Software
Ciclo de vida de un
J. Pablo Santiago Cabrera
proyecto en XP.
Programacion Extrema XP
13/01/2013
Calidad de Software Ciclo de vida de un J. Pablo Santiago Cabrera proyecto en XP. Programacion
Calidad de Software Ventajas y Desventajas J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Ventajas y Desventajas
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Ventajas

Satisfacción del cliente.

Cumplimiento de plazos.

El cliente tiene el control sobre las prioridades.

Se hacen pruebas continuas durante el proyecto.

Calidad en el trabajo.

Es

utilizada

donde

los

requerimientos

cambian

rápidamente.

Calidad de Software Ventajas y Desventajas J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Ventajas y Desventajas
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

Desventajas

Es

recomendado

plazo.

emplearlo

en

proyectos

a

corto

Altos costos en caso de fallar.

Es complicado predecir costos y tiempo de desarrollo si no se tiene un buen conocimiento de ellos.

Calidad de Software Conclusión J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Conclusión
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

En conclusión el proceso de esta metodología basada en prototipos es una técnica útil para la recopilación de información para completar el ciclo de vida del desarrollo de sistemas.

Prácticamente la metodología ágil de programación extrema se encuentra basada en un proceso que promueve la comunicación en el equipo, la sencillez en

la implementación, otra muy importante es que el cliente

debe estar muy informado e implicado en el desarrollo de esta para aumentar el nivel de conformidad, que el

tiempo del desarrollo sea el indicado y que la toma de decisiones se tiene que ser muy rápida pero a la vez

efectiva.

Calidad de Software Bibliografía J. Pablo Santiago Cabrera Programacion Extrema XP 13/01/2013
Calidad de Software
Bibliografía
J. Pablo Santiago Cabrera
Programacion Extrema XP
13/01/2013

http://oness.sourceforge.net/docbook/metodologia.html

http://books.google.com.mx/books?id=G8EL4H4vf7UC&printsec=frontcover&dq=

extreme+programming+explained&hl=es&sa=X&ei=V7GiUNyoOoK9qgGGj4CYAg

&ved=0CC0Q6AEwAA#v=onepage&q=extreme%20programming%20explained&f=

false

http://mhsaleh.persiangig.com/document/extremeprogramming/Extreme%20Prog

ramming%20Explained%20-%20Kent%20Beck;%20Addison-Wesley,%201999.pdf