XP- EXTREME PROGRAMMING



Documentos relacionados
METODOLOGÍAS ÁGILES DE DESARROLLO. Rubby Casallas Departamento de Ingeniería de Sistemas y Computación Universidad de los Andes

Proceso Unificado de Rational

Propiedad Colectiva del Código y Estándares de Codificación.

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

4 a 8 semanas. Equipos pequeños 5 a 9 miembros. Informal. Cara a cara. En cada entrega el cliente dará su aportación. Sólo documentación básica

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE

DESARROLLO DE SOFTWARE DE CALIDAD: EXTREME PROGRAMMING Y HERRAMIENTAS OPENSOURCE. Mª Carmen Bartolomé. mcbartolome@qualityobjects.


Introducción a las Metodologías Ágiles. Nicolás Brailovsky March 7, 2009

Team Software Process IntroductionTSPi SM

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Aseguramiento de la Calidad, QA. Materia: Desarrollo Industrial de Software Alumno: David Alejandro González Díaz y Froylan Ruiz Cirilo.

Bachilleres: Bustamante Dayana C.I: Rodríguez Jean C. C.I:

Ingeniería de Software. Procesos. Proyecto de Ingeniería. Metodologías. Metodologías. Metodologías. Metodologías de desarrollo

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

6 Anexos: 6.1 Definición de Rup:

Planeación con Planning Tool y DotProject

Automatización de Pruebas de Software con Herramientas Open Source. Henry Eduardo Carrión Cristóbal

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Participantes

Paula Izaurralde. Especialista en Calidad en ARRIS Argentina. Ayudante en Metodologías Ágiles en el Desarrollo de Software

Gestión de Proyectos Informáticos

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Ciclo de vida del software

Señor A/P. Lino Bessonart FEMI Presente Ref.: 181/2009

Gestión de calidad en el software. Calidad en el Desarrollo de Software. Spoilage. Spoilage

MANUAL DE NAVEGACIÓN DEL SIIA-WEB versión PRONAD

Contenido Derechos Reservados DIAN - Proyecto MUISCA

Configuración de Software

Extreme Programming Practices. Pair-Programming, Collective Code Ownership, Frequent Integration

Desarrollo Ágil. Software Engineering: A Practitioner s Approach Roger S. Pressman, Ph.D. Tomás Balderas Contreras Ingeniería de Software I

GATEWAYS COMO FIREWALLS

Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008

DESARROLLO AGIL ING. MA. MARGARITA LABASTIDA ROLDÁN

Creación de Funciones de Conducción

Contenido. 1. Introducción Objetivos El MUISCA...4

La medición funcional de software con SCRUM

Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic

Planeación del Proyecto de Software:

Metodologías Ágiles Desde una Perspectiva de Project Management. Fernando Contreras Velásquez Project Management & Engineering Services.

Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software

Plan de estudios ISTQB: Nivel Fundamentos

ISO Anexo A OBJETIVOS DE CONTROL Y CONTROLES DE REFERENCIA DANIELA RAMIREZ PEÑARANDA WENDY CARRASCAL VILLAMIZAR

MANUAL COPIAS DE SEGURIDAD

PDSM: PROCESO DE DESARROLLO DE SOFTWARE MIXTO COMBINANDO RUP Y SCRUM. Mariani, María Florencia Okabe, Evangelina

Master en Gestion de la Calidad

Bloqueo/Etiquetado 1

JUSTIFICACIÓN DEL DESARROLLO DE UN SE

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Instituto Nacional de Tecnología Industrial TESTING DE SOFTWARE

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

El modelo de ciclo de vida cascada, captura algunos principios básicos:

M.T.I. Arturo López Saldiña

Reclutamiento y Selección de Personal

cilred.com CICLO DE VIDA DEL SOFTWARE & METODOLOGIAS DE DESARROLLO DE SOFTWARE ING. EDUARDO CRUZ ROMERO eduar14_cr@hotmail.com cilred.

PRINCIPIOS FINAN IEROS FUNDAMENTALE DEL FED

Manual de Instalación. Sistema FECU S.A.

Sin embargo, con el tiempo ocurren errores en el disco duro, los datos se desorganizan y las referencias se vuelven obsoletas.

NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

Modelo de actualización y soporte

Contenido. Tipos y niveles de pruebas de software Pruebas de caja negra

Análisis y gestión de riesgo

+ Cómo ahorrar dinero con Software Quality

CASO PRÁCTICO DE LA METODOLOGÍA ÁGIL XP AL DESARROLLO DE SOFTWARE LUIS MIGUEL ECHEVERRY TOBÓN LUZ ELENA DELGADO CARMONA

Unidad VI: Supervisión y Revisión del proyecto

Análisis y Diseño de Aplicaciones

Certified Scrum Developer (CSD), Módulo 3 y Track Completo

Estrategia de Backup para los Sistemas SAP R/3 GOBERNACIÓN DE CUNDINAMARCA

Ingeniería de Software. Pruebas

CMM - Capability Maturity Model. Estructura de CMM... Componentes de CMM. Estructura de CMM

Su equipo de ultrasonido es un complejo y un sofisticado pedazo de electrónica!

INGENIERÍA DEL SOFTWARE

GUÍA PARA LA PRESENTACIÓN DE PROPUESTAS UIS INGENIUM 2015

2 EL DOCUMENTO DE ESPECIFICACIONES

MANUAL DE USUARIO NOTAS PARCIALES VIA INTRANET

Manual de Usuario Proveedor Módulo Cotizaciones

Principios Básicos de Contabilidad Capítulo 1 Iniciando Contabilidad DacEasy DacEasy Contabilidad Versión 11

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Las mejores prácticas en Aseguramiento de Calidad o Por qué se debería trabajar con técnicos de pruebas profesionales? José Díaz.

1 El plan de contingencia. Seguimiento

5. Gestión de la Configuración del Software (GCS)

Guía de Apoyo Project Professional

Orígenes y descripción de la Automatización 'Inteligente'

<Generador de exámenes> Visión preliminar

Análisis de costos proyectado de la plataforma SAP HANA

Modelos de desarrollo de software. septiembre de

Elementos requeridos para crearlos (ejemplo: el compilador)

ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

Tema 3. Procesos ligeros de desarrollo de software.

Administración de proyectos. Organizar, planificar y programar los proyectos de software

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

Transcripción:

XP- EXTREME PROGRAMMING RUBBY CASALLAS DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN FACULTAD DE INGENIERÍA UNIVERSIDAD DE LOS ANDES

Agenda Qué es XP? 12 Prácticas Actividades Principales: Planeación Diseño Codificación Testing Conclusiones Referencias

Qué es XP? Extreme Programming, o XP, es un proceso de software liviano (lightweight process) (pocas reglas, pocas prácticas) Basado en los siguientes principios: Simplicidad: buenos diseñadores (extreme good designers) Comunicación: Trabajo en equipo (extreme teamwork) Feedback: Participación del cliente (extreme customer participation) Coraje: Iteraciones, Refactoring, Testing (extreme iterations, extreme refactoring, extreme testing)

Qué es XP? (2) XP está diseñado para ser usado en pequeños equipos de desarrollo.

Las 12 Practicas 1. El Proceso de Planeación: Permite a los clientes definir valor de negocio a los requerimientos. Se usan estimados de los programadores Se selecciona cuáles aspectos serán realizados y cuáles pospuestos. 2. Pequeños releases: Poner en producción un sistema simple desde el comienzo Actualizarlo frecuentemente en ciclos muy cortos

Las 12 Practicas(2) 3. Metáfora del sistema: Usar un sistema de nombres y una descripción común. Vocabulario común

Las 12 Practicas(2) 4. Diseño simple. 1. Un programa construido con XP debe ser el más simple que satisfaga los requerimientos. 2. que tiene valor para el cliente. 5. Testing. Programadores desarrollan software escribiendo primero las pruebas. Clientes proveen pruebas de aceptación para asegurarse que los aspectos que ellos requieren son provistos por el software.

Las 12 Practicas(3) 6. Refactoring. Equipos XP mejoran constantemente el diseño del sistema haciendo refactoring. Esfuerzo por mantener el sistema sin código duplicado, simple, cohesivo, etc.

Las 12 Practicas(4) 7. Pair Programming. Codificación en parejas, dos programadores en la misma máquina. 8. Propiedad colectiva del código 9. Integración continua Equipos XP integran y construyen el sistema múltiples veces por día.

Las 12 Practicas(5) 10. 40-horas por semana Programadores cansados cometen más errores. Programadores XP no trabajan tiempo excesivo durante largos periodos, ellos se mantienen frescos, saludables y efectivos. 11. El cliente en el sitio de trabajo de los desarrolladores EL cliente trabaja a la par con los desarrolladores determinando los requerimientos, prioridades y respondiendo preguntas.

Las 12 Practicas(5) 12. Estándar de codificación Todos los programadores deben escribir y documentar el código en la misma manera.

Planeación El proyecto está dividido en iteraciones El resultado de una iteración es un pequeño release Cada iteración tiene su propio plan El calendario para el release está basado en: Historias de usuario Velocidad del proyecto

Planeación: Historias de usuario Son escritas por los clientes y usuarios como cosas que ellos necesitan que el sistema haga Propósito: Crear estimados de tiempo de desarrollo Conducir la creación de las pruebas de aceptación

Planeación: Reunión de la planeación del release El propósito es crear el plan del release El plan del release se usa para crear el plan de la iteración El plan del release tiene un conjunto de reglas para negociar el cronograma de cada individuo y negociar los compromisos. Los estimados para el desarrollo de cada historia, se hacen en términos de semanas ideales de trabajo

Planeación: Reunión de la planeación del release Hay cuatro variables para cuantificar el proyecto: Alcance: cuánto será hecho Recursos: cuánta gente hay disponible Tiempo: cuanto tiempo se tiene disponible para el release Calidad: qué tan bueno se requiere que sea el software y que tantas pruebas debe tener.

Planeación: Reunión de la planeación del release Hay cuatro variables para cuantificar el proyecto: Alcance: cuánto será hecho Recursos: cuánta gente hay disponible Tiempo: cuanto tiempo se tiene disponible para el release Calidad: qué tan bueno se requiere que sea el software y que tantas pruebas debe tener.

Planeación: Reunión de la planeación del release Los clientes definen las prioridades Se define el alcance de la iteración Se detalla el cronograma Se estima el tiempo de desarrollo usando la métrica de velocidad del proyecto

Planeación : Rotar a la gente, cambiar de roles Un equipo es más flexible si todos saben lo suficiente de todas las partes del sistema y pueden trabajar sobre ellas La estrategia es rotar los desarrolladores para evitar perdidas de conocimiento y cuellos de botella Pair programming es una manera de hacerlo

Diseño Simplicidad. Usar cartas CRC para las sesiones de diseño Crear soluciones prototipo para reducir riesgo La funcionalidad se adiciona sólo cuando se necesite no pensando en el futuro Refactor cuando y donde sea posible

Diseño: Simplicidad Nunca adicionar funcionalidad antes de que sea requerida

Diseño: CRC Class: Collaborates with: Responsibilities:

Diseño: Soluciones prototipo Programación simple para explorar soluciones. Propósito: Reducir riesgos Refinar estimaciones Estas soluciones pueden echar a la basura

Diseño: Refactor Remover redundancia, Eliminar funcionalidad no utilizada, y Rejuvenecer diseños obsoletos Mantener el código claro y conciso

Codificación Respetar estándares de codificación y de documentación del código. Escribir primero el código de las pruebas unitarias Todo el código producido en pares Integración constante Propiedad colectiva del código Dejar optimización para lo último No tiempo extra

Codificación: Pruebas primero Es más fácil y más rápido escribir el código si primero se han hecho las pruebas unitarias Esto ayuda al desarrollador a escribir el código que realmente se necesita Esto ayuda a tener inmediata retroalimentación

Codificación: Pair programming Todo el código que será incluido en producción debe ser producido por dos personas que trabajan juntas en un computador: Una persona escribe u piensa tácticamente sobre el método que se está creando Mientras que la otra persona piensa estratégicamente sobre cómo el método se integra con el resto de la clase y chequea que: sea correcto se entienda uso de estándares

Codificación : Integración secuencial frecuente Problemas de integración: solución XP: integración estrictamente secuencial realizada por los mismos desarrolladores Sólo integra un par a la vez, prueba y libera el depósito del código

Testing Todo el código debe tener pruebas unitarias Todo el código debe pasar las pruebas unitarias antes de que sea liberado Se deben crear nuevas pruebas cuando un defecto es encontrado Las pruebas de aceptación se ejecutan frecuentemente

Testing: Unit Test Framework http://xprogramming.com http://www.junit.org/

Testing: Pruebas de Aceptación Las pruebas de aceptación son pruebas de caja negra Cada prueba representa algún aspecto esperado del sistema Clientes son responsables por verificar si la prueba falló o no Las pruebas de aceptación también se deben ejecutar cuando se hacen pruebas de regresión antes de liberar un nuevo release

Conclusiones Principales suposiciones: participación del cliente y negociación Iteraciones Pequeños incrementos Testing Integración Buenos diseñadores (Simplicidad) Trabajo en equipo

XP es un proceso: actividades, entregables, Principales actividades: Planeación, diseño, codificación, pruebas XP no es para hackers XP requiere disciplina

Referencias Beck, Extreme Programming Explained, Addison Wesley, 1999, ISBN 0-201- 61641-6 Beck & Fowler, Planning Extreme Programming, Addison Wesley, 20001, ISBN 0-201- 71091-9 Fowler, Refactoring, Addison Wesley, 1999, ISBN 0-20148567- 2 Jeffries, Anderson & Hendrickson, Extreme Programming Installed, Addison Wesley, 2001, ISBN 0-201- 70842-6.31 http:// www. extremeprogramming. org/ http:// www. xprogramming. com/ http:// www. martinfowler. com/