domingo, 1 de abril de 2012

COMPARACIÓN ENTRE SCRUM, XP Y RUP



Comparación entre RUP y SCRUM:
RUPSCRUM
EnfoqueIterativoIterativo
CicloCiclo formal se define a través de 4 fases, pero algunos flujos de trabajo pueden ser concurrentes.Cada sprint (iteración) es un ciclo completo.
PlanificaciónPlan de proyecto formal, asociada a múltiples iteraciones, se utiliza. El plan es impulsado fecha final y también cuenta con hitos intermedios.No de extremo a extremo del plan del proyecto. Cada plan de la siguiente iteración se determina al final de la iteración actual (no la fecha final de tracción). Dueño del Producto (usuario de negocios clave) determina el momento en que el proyecto se lleva a cabo.
AlcanceÁmbito de aplicación está predefinido antes del inicio del proyecto y se documenta en el documento de Alcance.Ámbito de aplicación pueden ser revisados ​​durante el proyecto, los requisitos se están aclarando, pero estas modificaciones están sujetas a un procedimiento estrictamente controlado.En vez de alcance, SCRUM utiliza una Cartera de Proyectos, que se re-evaluado al final de cada iteración (sprint).
Los artefactosVisión / Ámbito de aplicación del documento, el paquete formal de requisitos funcionales, documento de arquitectura del sistema, plan de desarrollo, plan de pruebas, scripts de prueba, etcEl único artefacto formal es el software operativo.
Tipo de proyecto / productoRecomendado para grandes, a largo plazo, a nivel de empresa con proyectos a medio y alta complejidad.Recomendado para las mejoras rápidas y organizaciones que no dependen de una fecha límite.

Comparación entre RUP y XP:











RUP


  1. ¿Que es RUP?

    Forma disciplinada o metodología de asignar tareas y responsabilidades en  una empresa de desarrollo (quién hace qué, cuándo y cómo). Esta metodología, llamada así por sus siglas en inglés Rational Unified Process, divide en 4 fases el desarrollo del software: 

    • ·        Inicio, El Objetivo en esta etapa es determinar la visión del proyecto.
    • ·        Elaboración, En esta etapa el objetivo es determinar la arquitectura óptima.
    • ·    Construcción, En esta etapa el objetivo es llevar a obtener la capacidad operacional inicial.
    • ·         Transmisión, El objetivo es llegar a obtener el release del proyecto.

  2. DISCIPLINA DE DESARROLLO


    La metodología RUP, llamada así por sus siglas en inglés Rational Unified Process, divide en 4 fases el desarrollo del software: 
    • ·       Inicio, El Objetivo en esta etapa es determinar la visión del proyecto.
    • ·       Elaboración, En esta etapa el objetivo es determinar la arquitectura óptima.
    • ·    Construcción, En esta etapa el objetivo es llevar a obtener la capacidad operacional inicial.
    • ·        Transmisión, El objetivo es llegar a obtener el release del proyecto.


    Metodología de Desarrollo de Software, María A. Sánchez Mendoza (Junio 7, 2003)

                                                               
  3. DISCIPLINA DE SOPORTE

    ·         Configuración y administración del cambio: Guardando todas las versiones del proyecto.

    ·         Administrando el proyecto: Administrando horarios y recursos.

    ·         Ambiente: Administrando el ambiente de desarrollo.

    ·         Distribución: Hacer todo lo necesario para la salida del proyecto

  4. ELEMENTOS DE RUP

    ·         Actividades, Son los procesos que se llegan a determinar en cada iteración.

    ·         Trabajadores, Vienen hacer las personas o entes involucrados en cada proceso.

    ·    Artefactos, Un artefacto puede ser un documento, un modelo, o un elemento de modelo.

XP



  1. ¿QUE ES 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. Se requiere un grupo pequeño de programadores para  trabajar con esta metodología entre 2 – 15 personas y  estas irán aumentando conforme sea necesario.

    Metodologia Extreme Programing


  2. CARACTERÍSTICAS XP

    ·         Pruebas Unitarias: se basa en las pruebas realizadas a los principales procesos, de tal   manera que adelantándonos en algo hacia el futuro, podamos hacer pruebas de las fallas que pudieran ocurrir. Es como si nos adelantáramos a obtener los posibles errores.

    ·         Refabricación: se basa en la reutilización de código, para lo cual se crean patrones o modelos estándares, siendo más flexible al cambio.

    ·        Programación en pares: una particularidad de esta metodología es que propone la programación en pares, la cual consiste en que dos desarrolladores participen en un proyecto en una misma estación de trabajo. Cada miembro lleva a cabo la acción que el otro no está haciendo en ese momento. Es como el chofer y el copiloto: mientras uno conduce, el otro consulta el mapa.

  3. ¿QUE ES LO QUE PROPONE XP?

    ·         Empieza en pequeño y añade funcionalidad con retroalimentación continua

    ·         El manejo del cambio se convierte en parte sustantiva del proceso

    ·         El costo del cambio no depende de la fase o etapa

    ·         No introduce funcionalidades antes que sean necesarias

    ·         El cliente o el usuario se convierte en miembro del equipo
Se rediseñará todo el tiempo (refactoring), dejando el  código siempre en el estado más simple posible. Se harán pruebas todo el tiempo, no sólo de cada nueva  clase (pruebas unitarias) sino que también los clientes  comprobarán que el proyecto va satisfaciendo los  requisitos (pruebas funcionales).

Métodologías ágiles para el desarrollo de software: eXtreme Programming (XP), Patricio Letelier y Mª Carmen Penadés  

SCRUM

  1. ¿QUE ES?

    Es una metodología ágil y flexible para gestionar el desarrollo de software. Se basa en construir primero la funcionalidad de mayor valor para el cliente y en los principios de  inspección continua, adaptación, auto-gestión e innovación.

  2. CARACTERÍSTICAS


     ·      Solo abarca practicas de gestión sin entrar en las practicas de desarrollo como puede  hacer XP


    ·         Delega completamente en el equipo la responsabilidad de decidir la mejor manera de trabajar para ser lo más productivo posibles y, le dan gran protagonismo a las reuniones que realicen a lo largo del proyecto.

    ·         Sus raíces teóricas están en las teorías de la auto-organización.


  3. ROLES

            I.            Prorduct Owner (Dueño del producto)

    ·         Representa a todos los interesados en el producto final.
    ·         Marca las prioridades del producto.
    ·         Lleva el control de las estimaciones.
    ·         Retorno de Inversión (ROI.)

          II.            Scrum Master

    ·         Responsables del proceso de Scrum
    ·         Incorporación de Scrum en la cultura de la organización.
    ·         Asegura el cumplimiento de los roles y responsabilidades
    ·         Formación y entrenamiento en el proceso.

        III.            Scrum Team

    ·      Debe trasformar las tareas del Sprint Backlog en un incremento de funcionalidad en el software.
    ·         Desarrollar el producto con calidad
    ·         Auto-gestionado
    ·         Auto-organizado
    ·         Multi-funcional
    ·         No mayor a ocho elementos

    Scrum hace una clara diferencia entre gallinas y cerdos, para garantizar quienes tienen la responsabilidad, la autoridad necesaria para poder lograr el éxito del proceso y que quienes no la tienen y no puedan o producen interferencias innecesarias.

  4. METODOLOGÍA DE TRABAJO

    ·       Equipos de 6 y 10 personas revisan los requisitos, tecnología disponible y otras funciones   para determinar cómo incrementar la funcionalidad.

    ·        Reuniones diarias, antes de empezar a trabajar, con una duración máxima de 4 horas.

    ·       En cada reunión las preguntas claves a contestar son: ¿Qué es lo que hizo desde la última  reunión?, ¿Qué es lo que se va a hacer hasta la siguiente reunión? y ¿Cómo se va a llevar a cabo?

    Proceso ágil de desarrollo iterativo e incremental. Origen: articulo "Ther New New Product Develepment Game" (Takeuchi y Nonaka, 1986)


  5. ARTEFACTOS (DOCUMENTOS) DE SCRUM

    ·     Sprint Backlog: especifica la serie de tareas que se van a desarrollar según los requisitos señalados. Duración entre 4 o 6 horas de trabajo. Las de mayor duración se descompone en sub-tareas dentro del rango del tiempo.

    ·   Product Backlog: Crea un listado con los requisitos de los usuarios del sistema para planificar el proyecto. Es solo una estimación inicial de los requisitos. Documento dinámico que incorpora las constantes necesidades del sistema durante todo el cliclo de vida del proyecto.

    ·   Burndown Chart: es la manera grafica para demostrar el desarrollo del proyecto y las funciones realizadas y por hacer.


    1. SCRUM
    2. RUP
    3. XP
    4. COMPARACIÓN ENTRE RUP, XP Y SCRUM


INTRODUCCIÓN DE SCRUM, RUP, Y XP



En cualquier ámbito de ingeniería hay una fractura entre los responsables  de analizar y definir los problemas (necesidades), y los expertos en proveer soluciones (tecnología). Las metodologías nacen para intentar solucionar este conflicto. Su propósito es establecer un contrato social entre todos los participantes en un proyecto para conseguir la solución mas eficaz con los recursos disponibles
En el siguiente blog se hablara de las principales metodologías de proyectos de software: SCRUM, RUP y XP. Explicando las características, ventajas desventajas,funciones y usos de  estas metodologías, aclarando al final con una tabla las diferencias de cada una.


Explicando:

  1. SCRUM
  2. RUP
  3. XP
  4. COMPARACIÓN ENTRE RUP, XP Y SCRUM