Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
INF – 2720 “A” Antecedentes Antecedentes e Historia H istoria de la
TeMa 2
eXtreme Programming
eXtreme Programming
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Antecedentes e Historia de eXtreme Programming
En 1989, Cunningham formó un equipo que usaba los principios y muchas de las prácticas que después adoptaría XP XP,, mientras trabajaba para la compañía “Wyatt Software” [Fowler 2000].
Pero se reconoce a Kent Beck como el que articuló esta propuesta y le dio nombre propio.
Antecedentes e Historia de eXtreme Programming
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Posteriormente, la consolidación de XP se logra con la publicación del libro “Extreme Programming Explained: embrace change ” en el año 1999, donde Beck resume su propia experiencia y le da forma y nombre a la entonces nueva metodología de desarrollo de software, la cual le valió el premio: “Software Development Jolt Product Excellence ”.
Kent Beck
Antecedentes e Historia de eXtreme Programming
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Las ideas primordiales de su sistema las comunicó en la revista C++ Magazine en una entrevista que ésta le hizo el año 1999. En ésta decía que él estaba convencido que la mejor metodología era un proceso:
1
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
¿Que es la eXtreme Programming?
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
¿Que es XP?
¿Que es XP?
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
¿Que es XP?
Principios, practicas y roles de la
eXtreme Programming
2
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Principios de XP Se busca :
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP
Practicas de XP
El Juego de la planificación
El Juego de la planificación
3
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP
Practicas de XP
El Juego de la planificación….Reunión diaria XP
Entregas pequeñas
Es un permanente diálogo entre las partes empresarial (deseable) y técnica (posible)
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP
Practicas de XP Una metáfora es una historia que todo el mundo puede contar a cerca de cómo funciona el sistema. Algunas veces podremos encontrar metáforas sencillas
Metáfora
Diseño Simple
“Programa de gestión
de compras, ventas, con gestión de cartera y almacén”. Las
metáforas ayudan a cualquier persona a entender el objeto del programa.
Cada versión debe de ser tan pequeña como fuera posible, conteniendo los requisitos de negocios más importantes, las versiones tiene que tener sentido como un todo. Es mucho mejor planificar para 1 mes o 2 que para seis meses y un año.
Cuando se implementa nuevas características en los programas se plantea la manera de hacerlo lo mas simpleposible, después de implementar esta característica, nos preguntamos como hacer el programa mas simple sin perder funcionalidad.
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP
No debe existir ninguna característica en el programa que no haya sidoprobada,los programadores escriben pruebas para chequear el correcto funcionamiento del programa, los clientes realizan pruebas funcionales. El resultado un programa mas seguro que conforme pasa el tiempo es capaz de aceptar nuevos cambios.
Pruebas
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP Refactorización - Refactoring
Cuando se i mplementa nuevas características en los programas se plantea la manera de hacerlo lo mas simple posible (¿Cómo hacer el programa mas simple sin perder funcionalidad? )este proceso se le denomina recodificar o refactorizar (refactoring). No se debe recodificar ante especulaciones si no solo cuando el sistema te lo pida.
4
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP Programación en Parejas
Todo el código de producción lo escriben dos personas frente al ordenador, con un sólo ratón y un sólo teclado. Cada miembro de la pareja juega su papel: uno codifica en el ordenador y piensa la mejor manera de hacerlo, el otro piensa mas estratégicamente, ¿Va a funcionar?, ¿P uede haber pruebas donde no funcione?, ¿Hay forma de simplificar el sistema global para que el problema desaparezca? El emparejamiento es dinámico, puedo estar emparejado por la mañana con una persona y por la tarde con otra, si tienes un trabajo sobre un área que no conoces muy bien puedes emparejarte con otra persona que si conozca ese área. C ualquier miembro del equipo se puede emparejar con cualquiera.
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP
Cualquiera puede aportar valor al código en cualquier parcela puede hacerlo, ningún miembro del equipo es propietario del código. Si alguien quiere hacer cambios en el código puede hacerlo. Si hacemos el código propietario, y necesitamos de su autor para que lo cambie entonces estaremos alejándonos cada vez mas de la comprensión del problema, si se necesita un cambio sobre una parte del código lo hacemos y punto. XP propone un propiedad colectiva sobre el código nadie conoce cada parte igual de bien pero todos conoce algo sobre cada parte, esto prepara para la sustitución no traumática de cada miembro del equipo.
Propiedad Colectiva
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP
Practicas de XP
Integración Continua
Semana de 40 horas El código se debe integrar como mínimo una vez al día, y realizar las pruebas sobre la totalidad del sistema. Una pareja de programadores se encargara de integrar todo el código en una computadora y realizar todas las pruebas hasta que estas funcionen al 100%.
Si queremos estar frescos y motivados cada mañana y cansado y satisfecho cada noche. El viernes quiero estar cansado y satisfecho para sentir que tengo dos días para pensar en algo distinto y volver el lunes lleno de pasión e ideas. Esto requiere que trabajemos 40 horas a la semana, mucha gente no puede estar más de 35 horas concentrada a la semana, otros pueden llegar hasta 45 pero ninguno puede llegar a 60 horas durante varias semanas y aun seguir fresco, creativo y confiado. Las horas extras son síntoma de serios problemas en el proyecto, la regla de XP dice nunca 2 semanas seguidas realizando horas extras.
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP Clientes en casa - Cliente in situ
Un cliente real debe sentarse con el equipo de programadores, estar disponible para responder a sus preguntas, resolver discusiones y fijar las prioridades. Lo difícil es que el cliente nos ceda una persona que conozca el negocio para que se integre en el equipo normalmente estos elementos son muy valiosos, pero debemos de hacerles ver que será mejor para su negocio tener un software pronto en funcionamiento, y esto no implica que el cliente no pueda realizar cualquier otro trabajo.
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Practicas de XP Estándares de Programación
Si los programadores van a estar tocando partes distintas del sistema, intercambiando compañeros, haciendo refactoring, debemos de establecer un estándar de codificaciónaceptadoe implantado por todo el equipo.
5
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Roles de XP
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Roles de XP
Roles de XP
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Roles de XP
Objetivos de la
eXtreme Programming
6
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Objetivos de XP El objetivo princi pal de la XP es la satisfacción del cliente. Se le trata de dar al cliente lo que quiere y cuando quiere. Por tanto, se debe responder rápidamente a las necesidades del cliente, aunque realice cambios en fases avanzadas del proyecto. Como metodología Ágil que es, se pueden producir modificaciones de los requisitos del proyecto a lo largo de su desarrollo. Otro de los objetivos es el trabajo en equipo. Tanto los jefes del proyecto, clientes y desarrolladores forman parte del equipo y deben estar involucrados en el desarrollo .
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Las cuatro valores
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Para garantizar el éxito de un proyecto, se han considerado como fundamentales cuatro valores
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Valores de XP
Comunicación
7
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Sencillez – Simplicidad
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
FeedBack
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software Comunicación. Muy importante. La XP ayuda mediante sus prácticas a la comunicación entre los integrantes del grupo de trabajo: jefes de proyecto, clientes y desarrolladores. Sencillez. Los programas deben ser los más sencillos posibles y tener la funcionalidad necesaria que se indican en los requisitos. No hay que añadir algo que no se necesite hoy . Si se necesita añadir más funcionalidad mañana pues ya se hará entonces. Retroalimentación. Las pruebas que se le realizan al software nos mantiene informados del grado de fiabilidad del sistema. Valentía. Asumir retos, ser valientes ante los problemas y afrontarlos. El intentar mejorar algo que ya funciona. Aunque gracias a las pruebas
Valentia - Respeto
unitarias no existe el riesgo de „meter la pata‟.
Algunas voces, añaden además un quinto valor: la humildad. Con la compartición de código, la refactorizaci ón y el trabajo de equipo tan estrecho una buena dosis de humildad siempre es de agradecer.
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Actividades
8
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Proceso de desarrollo
eXtreme Programming
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Artefactos esenciales en XP
Historia de Usuario
Historia de Usuario Historia de Usuario Nombre Historia de Usuario: Modificación (o extensión) de Historia de Usua rio (Nro. y Nombre): Iteración Asignada:
Puntos Estimados:
Puntos Reales:
Representan una breve descripcióndel comportamiento del sistema,emplea terminología del cliente sin lenguaje técnico, se realiza una por cada característica principal del sistema, se emplean para hacer estimaciones de tiempo y para el plan de lanzamientos, reemplazan un gran documento de requisitos y presiden la creación de las pruebas de aceptación.
Historia de Usuario Número: 1
Nombre: Enviar artículo
Usuario: Autor Modificación de Historia Número:
Iteración Asignada: 2
Prioridad en Negocio: Alta (Alta / Media / Baja)
Puntos Estimados:
Riesgo en Desarrollo: (Alto / Medio / Bajo)
Puntos Reales:
Estas deben proporcionar sólo el detalle suficiente como para poder hacer razonable la estimación de cuánto tiempo requiere la implementación de la historia, difiere de los casos de uso porque son escritos por el cliente, no porlos programadores, empleando terminología del cliente. “Las historias
de usuario son más
“amigables” que los casos de uso Se introducen los datosdel a rtículo (título, fichero adjunto, resumen, tópicos) y de formales”. losautores (nombre, e-
Descripción:
mail, afiliación). Uno de losa utores debe indicarse como autor de contacto. El sistema confirma la correcta recepci ón del artículo enviando un e-mail al autor de contacto con un userid y password para que el autor pueda posteriormente acceder al artículo.
Descripción: Observaciones:
Observaciones:
9
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Spike para Historia de Usuario
Las Historias de Usuario tienen tres aspectos: Tarjeta: en ella se almacena suficiente información para identificar y detallar la historia. Conversación: cliente y programadores discuten la historia para ampliar los detalles (verbalmente cuando sea posible, pero documentada cuando se requiera confirmación) Pruebas de Aceptación: permite confirmar que la historia ha sido implementada correctamente.
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Tarea de Ingeniería
Task Card (tarea de ingeniería) Las task card se usan para describir las tareas se realizan Tareaque de Ingeniería sobre el proyecto. Las tareas pueden ser: Historia de Usuario (Nro. y Nombre): NúmeroTarea: desarrollo, corrección, mejora, etc. NombreTarea: Estas tareas tienen relación con una historia de usuario; se Tipo de Tarea : especifica la fecha de Desarrollo / Corrección / Puntos Estimados: inicio y Mejora / Otra (especificar) fin de la tarea, se nombra al programador Fecha Fin: responsable de FechaInicio: cumplirla y describimos que se Programador Responsable: tratara de hacer en la tarea . Descripción:
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Modelo de tarjeta CRC (Clase - Responsabilidad – Colaborador).
Estas tarjetas contienen la información del nombre de la clase, sus responsabilidades y sus colaboradores.
Los pasos a seguir para llenar las tarjetas son los siguientes: Para encontrar las clases debemos pensar qué • Encontrar clases cosas interactúan con el sistema (en nuestro caso • Encontrar el usuario), y qué cosas son parte del sistema, así responsabilidades Una clase es cualquier como las pantallas útiles a la aplicación (un • Definir colaboradores persona, cosa, evento, • Disponer las tarjetas de datos, una entrada de parámetros despliegue concepto, pantalla o y una pantalla general, entre otros). Una vezreporte. que Las las clases principales han sido encontradasresponsabilidades se de una clase son las cosas procede a buscar los atributos y las que conoce y las que responsabilidades, para esto se puede formular la realiza, sus atributos y pregunta ¿Qué sabe la clase? y ¿Qué hacemétodos. la Los clase? Finalmente se buscan los colaboradores colaboradores de una En la práctica conviene tener clase son las demás dentro de la lista de clases que se tenga. pequeñas tarjetas de cartón, que se clases con las que llenarán y que son mostradas al trabaja en conjunto para cliente, de manera que se pueda llevar a cabo sus llegar a un acuerdo sobre la validez responsabilidades. de las abstracciones propuestas.
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Pruebas de Aceptación
10
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Prueba de Aceptación Caso de Prueba de Aceptación Numero caso de Prueba (Código):
Historia de Usuario (Nro. y Nombre):
Nombre Caso de prueba:
Descripción: Condiciones de Ejecución: Entrada / Pasos de ejecución: Resultado Esperado: Evaluación de la Prueba:
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Prueba Unitarias y de Integración
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Planificación de la Entrega
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Escenarios en XP : Exploración
11
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Escenarios en XP : Comenzar Iteración
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Escenarios en XP : Programación
Entorno y Clima de trabajo en la
eXtreme Programming
Entorno y clima de trabajo Espacio de trabajo XP
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Entorno y clima de trabajo…Reunión diaria XP
12
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
… Entorno y clima de trabajo… Gantt de Pared
www.agiletek.com
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Fases y Metodologías
eXtreme Programming
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
Ing. Ronald Huanca Calle
Funcionamiento de la Metodología XP Diseño simple Historias del usuario Cartas CRC valores Criterios de las pruebas de iteración Plan de iteración
HistoriasParadigmas del Usuariode la ingeniería del software Planificación
Soluciones punta prototipos
Iteraciones Velocidad del Proyecto
Ñ O D I S E
C I O N I F I CA N A P L
Rediseño
Programación en Pareja Reuniones diarias
C I O N I F I CA C O D
XP (Programación extrema)
Diseños simples Glosario de términos Riesgos Funcionalidad Extra
Lanzamiento Incremento de software Velocidad calculada del proyecto
E BA P R U
Programación en pareja
Prueba de unitaria Integración continua
Tarjetas CRC
Test de aceptación
Pruebas de aceptación
13
Ing. Ronald Huanca Calle Paradigmas de la ingeniería del software
14