Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

EXTREME PROGRAMMING

Caso de Estudio - Técnicas para Control y Programación de Proyectos. Importancia de las Metodologías Ágiles.
by

Carolina Quiroga

on 3 December 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of EXTREME PROGRAMMING

AGENDA
-
-
EXTREME PROGRAMMING
Metodología Ágil para Desarrollo de Software
2
-
-
DESCRIPCIÓN DEL CASO DE ESTUDIO

INTRUDUCCIÓN A EXTREME PROGRAMMING

PUNTOS DE ANÁLISIS Y APLICACIÓN

CONCLUSIONES GENERALES
CASO DE ESTUDIO
Universidad EAN
Especialización Gerencia de Proyectos



Gustavo Acevedo
Mauricio Ángel
Johanna Fernández
Diana Pérez
Carolina Quiroga
5
DESCRIPCIÓN DEL CASO DE ESTUDIO
INTRODUCCIÓN A EXTREME PROGRAMMING
PUNTOS DE ANÁLISIS Y APLICACIÓN
CONCLUSIONES GENERALES
DESCRIPCIÓN DEL CASO DE ESTUDIO
INTRODUCCIÓN A EXTREME PROGRAMMING
PUNTOS DE ANÁLISIS Y APLICACIÓN
CONCLUSIONES GENERALES
DESCRIPCIÓN DEL CASO DE ESTUDIO
INTRODUCCIÓN A EXTREME PROGRAMMING
PUNTOS DE ANÁLISIS Y APLICACIÓN
CONCLUSIONES GENERALES
DESCRIPCIÓN DEL CASO DE ESTUDIO
INTRODUCCIÓN A EXTREME PROGRAMMING
CONCLUSIONES GENERALES
PUNTOS DE ANÁLISIS Y APLICACIÓN
DESCRIPCIÓN DEL CASO DE ESTUDIO
INTRODUCCIÓN A EXTREME PROGRAMMING
PUNTOS DE ANÁLISIS Y APLICACIÓN
CONCLUSIONES GENERALES
INTRODUCCIÓN A EXTREME PROGRAMMING
PUNTOS DE ANÁLISIS Y APLICACIÓN
CONCLUSIONES GENERALES
DESCRIPCIÓN DEL CASO DE ESTUDIO
REGLAS DE XP
AUMENTAR LA PRODUCTIVIDAD EN EL DESARROLLO DE SOFTWARE
Metodología basada en una serie de valores y de prácticas con el objetivo de...
VALORES DE XP
PRÁCTICAS DE XP
¿Qué es...? ¿En qué consiste?
EXTREME
PROGRAMMING
Las metodologías ágiles se centran en el uso de mínima documentación en el momento de desarrollar los proyectos y buscar ser ágiles en cuanto a responder adecuadamente a los cambios de requerimientos.
Es una
metodología ágil
de desarrollo de software centrada en la adaptabilidad que debe caracterizar a los procesos de desarrollo de software y se basa en el
desarrollo iterativo e incremental
.
DEFINICIÓN
CARACTERISTICAS
En XP las tareas se deben agrupar en etapas de desarrollo repetitivas (iterativo) y con la culminación de cada etapa se debe lograr la evolución del producto, obteniéndose un mejoramiento continuo (incremental).
Formulado por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999).
Viabilidad de mezclar Extreme Programming con las Metodologías Tradicionales
Aspectos a favor y en contra de Extreme Programming
El rol del gerente del producto como canalizador de las definiciones del alcance del proyecto.
Se centra en las personas, no en los procesos.
El desarrollo iterativo acelera la reducción de riesgos.
Elementos importantes que la metodología XP puede aportar en el desarrollo exitoso de los proyectos gestionados de forma tradicional.
El amplio esquema de comunicación permanente entre los miembros del equipo del proyecto.
El seguimiento frecuente permite una mayor agilidad y oportunidad en la identificación y atención de riesgos.
ASPECTOS A FAVOR
ASPECTOS EN CONTRA
El dinamismo en el alcance permite garantizar la cobertura de las expectativas del gerente del producto.
Mejoras en los procesos de calidad al disponer de elementos de pre-test.
Flexibilidad: permite una respuesta rápida y abierta a cambios de requisitos a lo largo del desarrollo del proyecto gracias a su proceso iterativo.
Mecanismos de comunicación dinámicos con cobertura a todo el equipo del proyecto.
Reduce el costo del cambio en todas las etapas del ciclo de vida del proceso software.
Tiempo abierto para el congelamiento del alcance del proyecto puede impactar la definición de las demás restricciones del mismo.
Puede resultar de difícil aplicación en proyectos de gran tamaño con equipos grandes y/o distribuidos.
Incertidumbre: dificultad de estimar cuánto va a costar un proyecto, dado que el alcance es variable.
Genera dependencia del equipo de desarrolladores, ya que se encargan del diseño, desarrollo y pruebas.
En proyectos de gran envergadura puede generar elevados sobrecostos en caso de fallar.
Falta o baja documentación en el diseño de la arquitectura.
Dificultad para el mantenimiento del sistema.
Mayor complejidad en la comprensión del desarrollo.
Implica mayor dependencia en las personas, al no hacer énfasis en los procesos.
Cada metodología tiene sus escenarios de aplicabilidad.
Ninguna de las metodologías de desarrollo de software son buenas para todos los proyectos, se deben adaptar al entorno.
THANK YOU!
CONCLUSIONES
GESTIÓN DE PROYECTOS
IMPORTANCIA METODOLOGÍA
Elección del estilo de gestión: ¿Predictivo o ágil?
¡GRACIAS!
Sus prácticas son compartibles, y se puden complementar en conjunto.
Ambos grupos de metodologías de desarrollo de software se deben adaptar a la realidad de cada organización y tipo de proyecto, sean estables o cambiantes.
La determinación previa de pruebas, fuerza a mejorar el análisis y el diseño; además provee un feedback funcional.
SIMPLICIDAD
RETROALIMENTACIÓN
CORAJE
RESPETO
COMUNICACIÓN
CASO DE ESTUDIO
eFusion Inc. - Empresa de Comercio Electrónico
Problema:
Limitación de Comunicación en el portal web, razón por la cual los consumidores abandonan las compras.
Solución:
Implmenetación de un sistema Voz IP, para establecer comunicación con un representante de ventas.
PROYECTO
Adaptabilidad al cambio de requerimientos.

Fases de Desarrollo Solapadas.

Ciclos de desarrollo cortos, con entregables funcionales al finalizar cada ciclo.

Metodología basada en prueba y error.

Cambios incrementales, en lugar de muchas modificaciones al mismo tiempo.

Integración del cliente en el proceso de desarrollo y retroalimentación continua.

Codificar-Probar-Escuchar-Diseñar.

Fundamentada en valores y un conjunto de prácticas que interactúan entr sí.

Combina las que han demostrado ser las mejores practicas para desarrollar software, y las lleva al extremo.



EJEMPLOS DE APLICACIÓN
PREGUNTAS
ESTRUCTURA DEL PROYECTO
Enfoque en el diseño del producto.
Metodología de desarrollo rígida.
Restricciones en usuarios y clientes.
RETRASOS Y AUMENTO DE COSTOS
Porque NO respondía a las situaciones cambiantes del entorno.
MODELO DE PROYECTOS


MODELO DE DESARROLLO DE SOFTWARE
ENFOQUE PMI - PMBOK




METODOLOGÍA EXTREME PROGRAMMING
Procesos Diferentes al Desarrollo de Software
DISEÑOS ARQUITECTÓNICOS
OTROS EJEMPLOS
DISEÑOS DE HARDWARE
Desarrollo sencillo y ágil (iterativo)
CAMBIOS CON LA METODOLOGIA ADOPTADA
EN EL PROCESO DE DESARROLLO DE SOFTWARE
Simplicidad
METODOLOGÍA EXTREME PROGRAMMING
Tarjetas CRC
(Clase, Responsabilidad, Colaboración)
Soluciones "Spike"
(Pequeños Programas de Prueba)
Mejoras Continuas
Puntos de control para seguimiento
Constantes lanzamientos y pruebas
Retroalimentación con el cliente
METODOLOGÍADEL PROYECTO
Enfoque PMI - Guía Metodológica PMBOK
GESTIÓN DEL PROYECTO
Iteraciones Planeadas según Resultados
Construcción de la EDT
División del Proyecto en Pequeños Paquetes
MS Project como herramienta de programación del proyecto
Seguimiento continuo sobre las actividades
Después del primer lanzamiento, el equipo se dio cuenta que los clientes no estaban interesados en mucha sofisticación, sino preferían algo más simple.
Luego, con la retroalimentación del cliente se fueron tomando las decisiones para los cambios y mejoras necesarias.
Los individuos y sus interacciones son más importantes que los procesos y las herramientas.
1. El Juego de la Planificcación
2. Entregas Pequeñas
3. Metáfora del Sistema
4. Diseño Simple
5. Recodificación
6. Programación en Parejas
7. Propiedad Colectiva
8. Integración Continua
9. Semana de 40 Horas
10. Cliente En Sitio
11. Estándares de Programación
12. Pruebas
DISEÑO
PLANIFICACIÓN
DESARROLLO
PRUEBAS
Retroalimentación en Detalle
Proceso Continuo
Comprensión Compartida
Bienestar del Programador
Historias de Usuario
Plan de Entregas
Plan de Iteraciones
Reuniones Diarias de Seguimiento

Simplicidad
Soluciones "Skipe"
Recodificación
Metáforas del Sistema

Disponibilidad del Cliente
Uso de Estándares
Programación Dirigida por las Pruebas
Programación por Parejas
Integraciones Permanentes
Propiedad Colectiva del Código
Ritmo Sostenido

Pruebas Unitarias
Detección y Corrección de Errores
Pruebas de Aceptación
PLANIFICACIÓN
DISEÑO
DESARROLLO
PRUEBAS
PROCESO DE DESARROLLO DE SOFTWARE
Diseño Arquitectónico de una Obra Civil
Alcance
Elaboración WBS
Diseño Inicial
Presentación
Iteraciones
Cierre Paquete de Trabajo
Requerimientos en lenguaje narutal definidos por el cliente.
Acuerdo con el cliente la definición de los paquetes de trabajo.
El equipo de arquitectos realiza un diseño de las necesidades, generando un rendering con la solución propuesta.
Presentación a corto plazo, el cliente verifica cumplimiento de expectativas y autoriza cambios.
Implementación de cambios a la mayor brevedad posible, para validación del cliente hasta obtener el nivel de calidad esperado.
Aprobado, se congela su alcance y se continúa con el siguiente paquete de trabajo, el cual cumple el mismo ciclo de implementación.
Los dispositivos electrónicos están integrados por distintos módulos, los cuales están compuestos por componentes específicos que en conjunto cumplen una funcionalidad.
Luego de cada iteración se puede realizar una retroalimentación con el cliente.
Los requerimientos pueden ser desarrollados por módulos.
Para el desarrollo de firmware se hace el desarrollo por parejas.
Seguimiento constante, para disminución de riesgos.
Programas de Radio y Shows de TV
Los libretos y los guiones pueden ser elaborados por pares obteniendo la mejor trama para la historia.
El diseño de cada prenda puede ser manejado por pequeños entregables que pueden ser verificados con el cliente antes de ser confeccionado.
Diseño de Modas
El rol de gerente de producto y el de gerente de proyecto pueden dar mayor control a la fabricación de nuevos productos alimenticios.
Sector Alimentos
PMI - PMBOK
Efoque metodológico con una fuerte orientación PREDICTIVA.
A partir del detalle del producto que se quiere elaborar, se definen actividades perfectamente planificadas en el tiempo en base a los recursos disponibles.

A partir de esta proyección inicial, el objetivo durante el transcurso del proyecto es conseguir que se cumpla aquello que se había previsto: calendario, costes y calidad.
Pero, la creación de valor mediante la adaptación a las necesidades cambiantes aparece en un primer plano frente a la tradicional idea de diseñar un plan y cumplir unos calendarios/requerimientos estáticos.
No se trata de elegir un modelo como el mejor, simplemente habrá casos en los que convendrá una gestión predictiva (la construcción de un puente) y otros en los que la opción ágil puede ser más beneficiosa (desarrollo de software).
La gestión predictiva tiende a valorar más los procesos, mientras que la gestión ágil da una mayor importancia a las personas.
Incertidumbre: vivimos en un entorno rápido e inestable, donde cumplir el plan inicial no garantiza el éxito.

La capacidad de adaptación a partir de la retroalimentación e incorporación de nuevas ideas es fundamental.
¿Cómo gestionar un proyecto?
¿Qué metodología aplicar...?
Gestión Predictiva vs. Gestión Ágil
La convergencia entre ambos modelos puede dar lugar a una gestión eficiente y eficaz.
Actualmente, la metodología ágil más popular para la gestión de proyectos es Scrum.

Se presenta como contrapunto a PMBOK y PRINCE2, siendo utilizada tanto para desarrollo de software como para otro tipo de productos.
Por lo general, cada metodología tiene sus escenarios de aplicabilidad. Por ejemplo:

Para proyectos que requieran varios desarrolladores, y en los que las especificaciones estén claramente determinadas desde el comienzo, los métodos en cascada o espiral pueden ser los más adecuados.

Por el contrario, para proyectos medianos, y en los que las especificaciones no se puedan obtener hasta luego de comenzado el proyecto, XP puede ser la metodología
recomendada.
XP aplica para equipos pequeños, proyectos a corto plazo y donde hay altos riesgos por una constante variación de requerimientos.
Mejorar la productividad de los proyectos.
Garantizar la Calidad del Software desarrollando, haciendo que este supere las expectativas del cliente.
OBJETIVOS:
Se centra en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo.
Las metodologías tradicionales han intentado abarcar la mayor cantidad de situaciones, pero exigen un esfuerzo considerable en documentación y gerenciamiento de proyecto, que muchas veces genera una sobrecarga inaceptable en proyectos pequeños y medianos.

XP propone una metodología ágil y concreta, aunque requiere de una nueva menara de pensar, ver y hacer las cosas, tanto por parte de los gerentes (responsables de la rentabilidad general del proyecto), como de los desarrolladores y también del cliente.
Es claro que no existe una metodología única para garantizar el éxito de cualquier proyecto de desarrollo de software. Toda metodología requiere de cierta adaptación al proyecto, al cliente y a la organización.
FASES DE EXTREME PROGRAMMING
Fase de Exploración

Definición general del alcance del proyecto.

Fase de Planificación

Definición del orden de implementación.

Fase de Iteraciones

Desarrollo de funcionalidades del sistema.

Fase de Puesta en Prodrucción
Entrega de módulos y sistema completo.

¡Gracias por su atención!
RESULTADOS
Full transcript