EXtreme Programming.

Slides:



Advertisements
Presentaciones similares
Lic. Juan Gabriel Bernal López
Advertisements

EL PROCESO DE DESARROLLO DEL SOFTWARE
Ciclo de vida de desarrollo de software
Metodologías ágiles.
PRODUCCIÓN.
Metodologías Ágiles Patricio Letelier
CAPITULO 3 PRESENTADO POR: Carrillo Meifry Pérez Jonathan
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
CONTROL DE CALIDAD.
METRICAS DE PROCESO Y PROYECTO
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
METODOLOGIAS AGILES DE CONSTRUCCION DE SOFWARE
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
Extreme Programming (XP)
Fundamentos de la Gestión de Proyectos
“8 Principios de la Gestión Administrativa”
Administración y Funciones de la administración
Nombre Angela Michelle Landivar
Alexis Masson Nicolás Fetter
Una explicación de la programación extrema XP
Modelo de Desarrollo XP
Programación Extrema (XP)
Diseño de un Sistema de Control en Tiempo Real para el Kernel del Sistema Operativo utilizando MatLab-SimuLink Por: MARCO ANTONIO ESPINEL CANGUI DIRECTOR:
Técnicas de Capacitación
INGENIERIA DEL SOFTWARE
ITERASOFT. OBJETIVOS DEL GRUPO Producir un sistema Manejador de Itinerarios de alta calidad y confiabilidad Realizar un proyecto bien administrado y productivo.
Ciclos de vida ágiles.  Es una metodología ágil que plantea: ◦ Iteraciones cortas ◦ Entregables periódicos ◦ Colaboración con el cliente full time ◦
PROCESO DE DESARROLLO. Introducción Mediante esta presentación se pretende describir el proceso de desarrollo del TALLER I.
Programación Extrema eXtreme Programming (XP)
5.3 APROXIMACIONES AL DISEÑO
Administración Proyectos Jorge Baracaldo Robin Ochoa.
PROGRAMACION EXTREMA SALCEDO CORONA JACOBSALCEDO CORONA JACOB MELCHOR LEON SALVADORMELCHOR LEON SALVADOR ANALISIS ORIENTADO A OBJETOS ANALISIS ORIENTADO.
Programación Extrema Leonardo Ramírez Z.. Contenido Motivación ¿Qué es Programación Extrema? La filosofía detrás de la Programación Extrema El proceso.
Plan de Sistemas de Información (PSI)
Ingeniería de Software
Extreme Programming Diego Rincón Sebastian Miranda.
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
PROGRAMACIÓN EXTREMA (eXtreme Programing)
ASIGNACIÓN DE ROLES.
Alexander Aristizabal Ángelo flores herrera
Ingeniería de Software
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
Metodologías Lsi. Katia Tapia A., Mae.
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de metodologías ágiles Tatiana Alejandra.
Scrum Una Alternativa Ágil para el desarrollo de Software
Elaborado por: Mayoral Cruz Matilde Morales Espinoza Anllhins
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
CMM.
METODOLOGIAS DE DESARROLLO DE SOFTWARE
Administración Integral del Proyecto
Republica Bolivariana De Venezuela Ministerio Del Poder Popular Para La Educación Universidad Gran Mariscal De Ayacucho Cátedra: Dirección De Operaciones.
Proyecto: Lanzamiento QUICK ORDER. Objetivo General  Desarrollar el sistema de información de acuerdo a los requerimientos establecidos por el cliente,
Organización y Administración de Proyectos de Software Docente: LIA. SUEI CHONG SOL, MCE.
Ciclo de Vida del Software
Mejores Prácticas para el Desarrollo de Software Omar de Jesús Rosales Hernández.
Daniel Labra Fernando Figueroa
 Un modelo de desarrollo ágil, generalmente es un proceso Incremental, (pequeños y frecuentes releases o entregas con ciclos rápidos), también Cooperativo.
CONCEPTO DE CICLO DE VIDA 1 En los departamentos de Sistemas se debe definir un marco de referencia común que debe ser:  Pueda ser empleado por todos.
Modelo de procesos de software
Extreme Programming (XP) Grupo 03. Extreme Programming - Agenda Introducción Proceso y Fases Roles Prácticas Conclusiones.
Fundamentos de Ingeniería de Software
Autores: Myriam Montes, Iván Viera, Carlos Caizaguano, José Sancho
Metodologías de Programación II UNAJ - Instituto de Ingeniería y Agronomía - Ingeniería en Informática 1 4 Clase Clase 4 Programación extrema (Parte 2)
Es una metodología ágil diseñada para el desarrollo de software, basada en la calidad y el monitoreo constante del proyecto. Consiste esencialmente en.
Sistemas de calidad en el desarrollo de software.
EXtreme Programming 1 Integrantes Freddy Santiago Yucra Gomez Moisés Julián Ccopa Chipayo Reyna Karina Valdivia Chavez.
GESTIÓN DE PROYECTOS.
Metodologías de Desarrollo Ágil
E XTREME P ROGRAMMING (XP) Profesor LUIS FERNANDO ECHEVERRI E.
METODOLOGIA AGIL XP LIC. ROXANA LAUREL R.. INTRODUCCION  Proceso : conjunto de actividades ordenadas para lograr una serie de objetivos  Proceso Pesado.
Transcripción de la presentación:

EXtreme Programming

¿Qué es Extreme Programming? ¿En qué consiste XP? La Programación Extrema es una metodología ligera de desarrollo de software que se basa en la simplicidad, la comunicación y la realimentación o reutilización del código desarrollado

Origen de la metodología XP Desarrollada por Kent Beck. Todo en el software cambia. Los requisitos cambian. El diseño cambia. El negocio cambia. La tecnología cambia. El equipo cambia. Los miembros del equipo cambian. El problema no es el cambio en sí mismo, puesto que sabemos que el cambio va a suceder; el problema es la incapacidad de adaptarnos a dicho cambio cuando éste tiene lugar.» Kent Beck.

Objetivos perseguidos Obtención del producto, software funcionando, y con la satisfacción del cliente. Minimización del riesgo actuando sobre: Variables del proyecto : Coste Tiempo Calidad Alcance

Valores que inspiran XP SIMPLICIDAD FEEDBACK CORAJE COMUNICACIÓN Comunicación XP pone en comunicación directa y continua a clientes y desarrolladores. El cliente se integra en el equipo para establecer prioridades y resolver dudas. De esta forma ve el avance día a día, y es posible ajustar la agenda y las funcionalidades de forma consecuente Feedback rápido y continuo Una metodología basada en el desarrollo incremental de pequeñas partes, con entregas y pruebas frecuentes y continuas, proporciona un flujo de retro-información valioso para detectar los problemas o desviaciones. De esta forma fallos se localizan muy pronto. La planificación no puede evitar algunos errores, que sólo se evidencian al desarrollar el sistema. La retro-información es la herramienta que permite reajustar la agenda y los planes.

Simplicidad Coraje Disciplina en la aplicación de XP La simplicidad consiste en desarrollar sólo el sistema que realmente se necesita. Implica resolver en cada momento sólo las necesidades actuales. Con este principio de simplicidad, junto con la comunicación y el feedback resulta más fácil conocer las necesidades reales Disciplina en la aplicación de XP Parar cuando se está cansado Permitir que el usuario tome las decisiones de negocio Permitir que el desarrollador tome las decisiones técnicas Descartar código si es necesario Introducir cambios cuando las cosas no funcionan Los costes y la complejidad de predecir el futuro son muy elevados, y la mejor forma de acertar es esperar al futuro. Coraje

Roles de personas en XP Programador Pieza básica en desarrollos XP Más responsabilidad que en otros modos de desarrollo Responsable sobre el código Responsable sobre el diseño (refactorización, simplicidad) Responsable sobre la integridad del sistema (pruebas) Capacidad de comunicación (pair-programming) Acepta críticas (código colectivo) Cliente Define especificaciones (user stories) Influye sin controlar Confía en el grupo de desarrollo Define pruebas funcionales Encargado de Pruebas Apoya al cliente en la preparación/realización de las pruebas funcionales Ejecuta las pruebas funcionales y publica los resultados

Encargado de Seguimiento(Tracker) Recoge, analiza y publica información sobre la marcha del proyecto sin afectar demasiado el proceso Supervisa el cumplimiento de la estimaciones en cada iteración Informa sobre la marcha de la iteración en curso Controla la marcha de las pruebas funcionales, de los errores reportados, de las responsabilidades aceptadas y de las prueba añadidas por los errores encontrados Entrenador (Coach) Experto en XP Responsable del proceso en su conjunto Identifica las desviaciones y reclama atención sobre las mismas Guía al grupo de forma indirecta (sin dañar su seguridad ni confianza) Interviene directamente si es necesario Atajar rápidamente el problema Consultor Apoya al equipo XP en cuestiones puntuales Jefe del Proyecto Favorece la relación entre usuarios y desarrolladores Confía en el equipo XP Cubre las necesidades del equipo XP Asegura que alcanza sus objetivos

Captura de Requisitos en XP Historias del Usuario (User-Stories) Establecen los requisitos del cliente Trozos de funcionalidad que aportan valor Se les asignan tareas de programación con un nº de horas de desarrollo Las establece el cliente Son la base para las pruebas funcionales

Captura de Requisitos en XP Una ficha de User-Story

Planificación en XP Planificación por entregas (releases) Se priorizan aquellas user-stories que el cliente selecciona porque son más importantes para el negocio Entregas: Son lo más pequeñas posibles Se dividen en iteraciones (iteración = 2 o 3 semanas) Están compuestas por historias A cada programador se le asigna una tarea de la user- story

Programación en XP La programación de tareas se realiza por parejas La pareja diseña, prueba, implementa e integra el código de la tarea Código dirigido por las pruebas Código modular, intentando refactorizar siempre que se pueda

Programación en XP Una ficha de Tarea

Tarjetas CRC (Clase - Responsabilidad – Colaborador). Una clase es cualquier persona, cosa, evento, concepto, pantalla o reporte. Las responsabilidades de una clase son las cosas que conoce y las que realiza, sus atributos y métodos. Los colaboradores de una clase son las demás clases con las que trabaja en conjunto para llevar a cabo sus responsabilidades.

Modelo de un Proyecto XP

Espacio de trabajo XP Espacio abierto Mesas centrales Cubículos en el espacio exterior Espacio de trabajo del proyecto C3 de DaimlerChrysler

Ventajas y desventajas de Extreme Programming Programación organizada. Menor taza de errores. Satisfacción del programador. Desventajas: Es recomendable emplearlo solo en proyectos a corto plazo. Altas comisiones en caso de fallar.

Prácticas de XP PRÁCTICAS DE CODIFICACIÓN 1.- Simplicidad de código y de diseño para producir software fácil de modificar. 2.- Reingeniería continua para lograr que el código tenga un diseño óptimo. 3.- Desarrollar estándares de codificación, para comunicar ideas con claridad a través del código. 4.- Desarrollar un vocabulario común, para comunicar las ideas sobre el código con claridad. PRÁCTICAS DE DESARROLLO 1.- Adoptar un método de desarrollo basado en las pruebas para asegurar que el código se comporta según lo esperado. 2.- Programación por parejas, para incrementar el conocimiento, la experiencia y las ideas. 3.- Asumir la propiedad colectiva del código, para que todo el equipo sea responsable de él. 4.- Integración continua, para reducir el impacto de la incorporación de nuevas funcionalidades.

PRÁCTICAS DE NEGOCIO 1.- Integración de un representante del cliente en el equipo, para encauzar las cuestiones de negocio del sistema de forma directa, sin retrasos o pérdidas por intermediación. 2.- Adoptar el juego de la planificación para centrar en la agenda el trabajo más importante. 3.- Entregas regulares y frecuentes para satisfacer la inversión del cliente. 4.- Ritmo de trabajo sostenible, para terminar la jornada cansado pero no agotado.