SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Metodologías ágiles
                 Práctica 3




 #AESMultimedia - aesmultimedia.blogspot.com

   José Luís Contreras Martínez   @DkLawis
   Ana García Domene              @agado92
   Daniel Martínez Espadas        @danielme91
   Begoña Morillas Guijarro       @begomori




                                                1
Índice
Introducción a las metodologías ágiles
DSDM: Dynamic Systems Development Method
FDD: Feature Driven development
Crystal: (Crystal Clear)
AUP: Agile Unified Process
Análisis comparativo
Bibliografía




                                           2
Introducción a las metodologías ágiles
Las metodologías ágiles surgen a principios de los 90 ante ciertos problemas de tiempo,
costo y calidad en el desarrollo de creación de software.

Este nuevo enfoque de desarrollo se dio a conocer como RAP (Rapid Application
Development). En él, el trabajo se organizaba en pequeños grupos de trabajo de alto
rendimiento.

Las metodologías ágiles se inician con la creación del eXtreme programming o XP que
impulsa el desarrollo mediante iteraciones, aunque éstas ya se utilizaban anteriormente.
También destacamos que estos ciclos son cortos intervalos de tiempo, de una a cuatro
semanas, lo que favorece la minimización de riesgos. Actualmente existen diversas
metodologías ágiles que se fueron basando en los principios de esta metodología.




                             Imagen 1: Desarrollo ágil de software



A continuación estudiaremos cuatro de las metodologías ágiles más destacadas del
momento: DSDM – Dynamic Systems Developmemt Method, Crystal (Crystal Clear), FDD –
Feature Driven Development y AUP: Agile Unified Process.




                                                                                      3
DSDM: Dynamic Systems Development Method
Esta metodología surge de un consorcio en Reino Unido. Su primera versión aparece en
1994, posteriormente se han realizado varias versiones.

Situada dentro de las RAD, DSDM es excelente para proyectos de sistemas de la
información con presupuestos limitados y agendas muy ocupadas y apretadas.



Características
Los proyectos tendrán las siguientes características que refieren a la aplicabilidad de
DSDM:

- Proyectos interactivos con funcionalidad visible en la interfaz de usuario

- De baja o media complejidad computacional.

- Particionables en componentes de funcionalidad más pequeños si la aplicación es de gran
tamaño, cuentan con flexibilidad en los requerimientos.

- Une técnicas de desarrollo y gestión del proyecto en una misma metodología que se
centra en conseguir un producto que funcione correctamente en los casos más críticos.

- Trabajo en equipo tanto los desarrolladores, los usuarios y los Stakeholders. Con un grupo
de usuarios bien definidos y comprometidos al proyecto.

- El equipo de desarrollo toma decisiones sin depender de autorizaciones de sus superiores
para realizar entregas, siempre cortas, de forma frecuente, siendo éstas funcionales. Ésto
es adecuado al tener el tiempo total acotado, por lo que previene que transcurra mucho
tiempo y la tecnología cambie.

- El desarrollo es iterativo e incremental.

- Todos los cambios pueden ser revertibles y son verificados durante todo el desarrollo.



Roles
Esta metodología define 15 roles para usuarios y desarrolladores, a continuación se
describen los más destacados.

   ●   Desarrollador y desarrollador senior (developer and senior developer)
       Son los únicos roles definidos para desarrolladores, por esto este rol incluye a todo
       el personal de desarrollo, sean diseñadores, analistas, programadores o testers. La
       diferencia entre desarrollador y desarrollador senior es que los segundos tienen gran
       experiencia en las tareas que realizan, por lo que suelen dirigir el equipo.

   ●   Coordinador técnico (Technical coordinator)
       Responsable tanto de la calidad técnica como del control técnico del proyecto,
       por ejemplo el uso de software de gestión de configuración y el cumplimiento de
       estándares técnicos. Está encargado de mantener la arquitectura.

   ●   Usuario embajador (Ambassador user).

                                                                                           4
Equivale al on-site customer de XP.
       El usuario embajador debe ser miembro del grupo de usuarios, que espera utilizar el
       sistema, pues este rol tiene como función aportar el conocimiento de este grupo al
       proyecto y difundir información de los avances del proyecto al resto de usuarios. De
       esta forma se asegura una correcta retroalimentación de los usuarios. se ofrece
       conocimiento del negocio y define los requisitos del software.

   ●   Asesor de usuario (Adviser user).
       Consejero del usuario embajador. Este rol se emplea cuando el rol de usuario
       embajador no es suficiente para expresar todas las opiniones o puntos de vista
       importantes de los usuarios sobre un punto del proyecto.

   ●   Visionario (Visionary).
       El trabajo del visionario es el encargado de asegurar que se satisfacen las
       necesidades de negocio, es decir, que desde el principio, los requisitos esenciales
       se encuentran y que el proyecto sigue la dirección correcta para cumplir dichos
       requisitos. Es el rol con la visión más precisa sobre los objetivos del negocio del
       sistema y del proyecto y probablemente aquel que tiene la idea inicial de la
       construcción del sistema.

   ●   Patrocinador ejecutivo (Executive sponsor).
       Es el rol de la organización de usuario que tiene la autoridad y responsabilidad
       financiera relacionada al proyecto, por lo tanto tiene el máximo poder en la toma de
       decisiones.

   ●   Director de proyecto (Project Manager).
       Es responsable de entregar los productos acordados de forma exitosa, al acordado
       standar de calidad, a tiempo y dentro del presupuesto. Además de ser capaz de
       entregar los beneficios estipulados en el PID. El director del proyecto puede venir de
       IT o de la comunidad de usuarios, e informa a la Junta del Proyecto.



Artefactos
Podemos describir los artefactos obtenidos mediante la metodología DSDM a través de las
distintas fases que lo forman.


Fase 1. Estudio de viabilidad.

- Informe de viabilidad. Análisis de viabilidad del proyecto
- Esbozo del plan para el desarrollo. Planteamiento del desarrollo del proyecto a grandes
rasgos.
- Listado de riesgos. Lista con los riesgos que puede ofrecer el sistema.
- Prototipo rápido. Es un artefacto opcional, sólo aparecerá si no se conoce lo suficiente el
negocio o tecnología.

Fase 2. Estudio de la empresa.

- Descripción de los procesos de negocio y especificación de casos de uso. La
identificación de los casos de uso ayuda a involucrar al cliente.



                                                                                           5
- Documento de Especificación de Requerimientos de Software (SRS). Descripciones a
alto nivel de los requisitos que se presentan en formato correcto diagramas ER, modelos de
negocio objetivos, etc.
- Definición de la arquitectura del sistema. Es un primer borrador de la arquitectura que
puede cambiar durante el desarrollo del proyecto.
- Esbozo del plan de prototipado. Debe declarar la estrategia de prototipado para las
siguientes fases y un plan para la configuración de la administración.

Fase 3. Iteración del modelo funcional.

- Modelo funcional. Contiene el código prototipo y los modelos de análisis
- Casos de prueba. Pruebas a realizar a código.
- Funciones prioritarias. Lista de prioridades de las funciones que se entregan al final de la
iteración.
- Resumen de los documentos de prototipos funcionales. Recoge los comentarios de
los usuarios sobre el incremento actual, servirá de artefacto de entrada para las siguientes
iteraciones.
- Requisitos no funcionales. Lista de requisitos que se tratarán en la siguiente fase.
- Análisis de riesgos de desarrollo superior. Documento de gran importancia en esta
fase, pues, a partir de la siguiente fase, los errores encontrados serán más difíciles de
ubicar y dirigir.

Fase 4. Diseño e iteración de la estructura.

- Sistema probado. Debe cumplir al menos los requisitos mínimos acordados.

Fase 5. Implementación.

- Sistema entregado. Sistema finalizado y entregado al cliente.
- Manual de usuario. Instrucciones de uso del sistema.
- Informe de revisión de proyecto. Resume el resultado del proyecto. Según los
resultados, se establece el curso del desarrollo adicional.


Prácticas
Dado el enfoque hacia proyectos de características RAD, la ideología de la metodología
DSDM se define en nueve principios:

1. Involucrar al usuario es la base para obtener un proyecto eficiente y efectivo.
Cliente y desarrolladores comparten entorno de trabajo para mejorar la precisión de las
decisiones.

2. Los equipos de DSDM deben tener poder de toma de decisiones.
Es importante que se puedan tomar decisiones para el desarrollo del proyecto sin esperar la
aprobación de superiores

3. El foco está puesto en la entrega frecuente de productos.
Esto permite una verificación y revisión continua del producto desde el principio.

4. La conformidad con los propósitos del negocio es el criterio esencial para la
aceptación de los entregables.



                                                                                            6
DSDM se centra en las funcionalidades críticas del proyecto, no en todas sus posibles
necesidades.

5. El desarrollo iterativo e incremental es necesario para converger hacia una correcta
solución del negocio.
Se basa en la retroalimentación de os usuarios para dirigirse hacia una solución precisa.

6. Todos los cambios durante el desarrollo son reversibles.
Saber dónde estamos en cada momento para tener la posibilidad de deshacer y probar otro
camino si el elegido no funciona.

7. Los requerimientos están especificados a un alto nivel.
Alcance de alto nivel y requisitos deben ser „base-lined‟ desde el inicio del proyecto.

8. El testing es integrado a través del ciclo de vida.
Durante todo el ciclo de vida se realizan pruebas para evitar costes extraordinarios en
mantenimiento y arreglos del sistema.

9. Un enfoque colaborativo y cooperativo entre todos los interesados es esencial.
La colaboración y cooperación entre el equipo, usuarios y stakeholders es esencial para un
correcto desarrollo del proyecto.



Aparte de estos principios, DSDM también se basa en una serie de consideraciones muy
importantes:

●   Ningún sistema es construido a la perfección en el primer intento.
●   La entrega del proyecto deberá ser a tiempo, respetando presupuesto y asegurando la
    calidad.
●   DSDM solo requiere que se complete cada paso que forma una iteración con la
    funcionalidad suficiente como para que inicie el siguiente paso de la siguiente iteración.
●   DSDM puede utilizarse en proyectos de ampliación de sistemas TI pero también podría
    utilizarse para proyectos de cambio de algún sistema aunque no sea TI.
●   La evaluación de riesgo debe estar enfocada en entregar funcionalidad de negocio y no
    en el proceso de desarrollo.
●   La estimación debe estar basada en funcionalidad del negocio no en líneas de código.
●   La gestión recompensa la entrega continua de productos antes que la consecución de
    tareas.


Proceso
DSDM reconoce que los proyectos son limitados por el tiempo y los recursos, y los planes
según las necesidades de la empresa. Para alcanzar sus metas, DSDM favorece el uso del
RAD con el consecuente riesgo de que demasiadas partes estén sin definir correctamente y
esto lleve a errores.

DSDM aplica algunos principios, roles, y técnicas en las 5 fases en las que define la
construcción de un sistema:

    1. Estudio de viabilidad: Estudia la factibilidad del proyecto en una pequeña fase que
       propone DSDM para determinar si la metodología se ajusta éste. se realiza un
       estudio de los requisitos humanos materiales y financieros y los problemas de la
       empresa o el cliente.

                                                                                            7
2. Estudio de la empresa: Durante el estudio del negocio se involucra al cliente para
      tratar de entender la operatoria que el sistema deberá automatizar. Este estudio
      sienta las bases para iniciar el desarrollo, definiendo las características de alto nivel
      que deberá contener el software, es decir, planifica la base de las actividades de la
      empresa.
   3. Iteración del modelo funcional: Se inician las iteraciones en las que se describirán
      en detalle las características definidas en la fase anterior, planteando un modelo
      previo que de solución aceptable a la problemática. Esta es la etapa de diseño.
   4. Diseño e iteración de la estructura: Se realizará el diseño de los mismos
      codificando el modelo diseñado, se construirán los componentes de software, se
      prueba paralelamente la calidad del producto y se documenta el manual de usuario y
      técnico.
   5. Implementación: Entrega del producto al cliente o usuario final. Cuando éste de su
      aprobación se implantará el sistema en producción.


La primera y segunda fase son secuenciales y, por lo tanto, realizadas una única vez al
principio del proyecto para analizar la factibilidad desde el punto de vista del negocio del
desarrollo, las demás fases presentan las características del modelo iterativo e incremental
ya tratado.




                            Imagen 2. Diagrama de procesos de DSDM



DSDM aproxima las iteraciones como “timeboxes”. Una “timebox” dura un periodo
predefinido de tiempo y la iteración debe finalizar dentro de la “timebox” que suele durar
desde unos días hasta unas pocas semanas.




                                                                                             8
Sin embargo, lo que diferencia a DSDM de otros modelos son los principios alrededor de los
cuales se estructura, tratados en el apartado anterior, y que hacen énfasis en los equipos de
desarrollo, en el feedback con el cliente y en las entregas frecuentes de productos.




Posibles integraciones
Es posible integrar DSDM con otros métodos para complementar el desarrollo del proyecto.
Entre ellos tenemos el Proceso Unificado de Rational (RUP), Programación Extrema (XP), y
Proyectos en ambientes controlados (PRINCE2), Otro método ágil que tiene semejanzas
proceso y concepto con DSDM es Scrum.

Entre DSDM y RUP se puede crear una fuerte unión, RUP podría considerarse una
implementación de DSDM. RUP está más orientado a la arquitectura y a la calidad y DSDM
tiene como objetivo el desarrollo rápido de aplicaciones, sin embargo, esto no impide
combinarlos, incluso se pueden relacionar todas las fases y artefactos de RUP con los de
DSDM. Al combinarse podemos obtener un sistema con una arquitectura fuertemente
definida en un tiempo récord.




                                                                                           9
FDD: Feature Driven development

Es un proceso ágil diseñado por Peter Coad, Eric Lefebvre y Jeff DeLuca. Se basa en un
proceso iterativo con iteraciones cortas que producen un software funcional que el cliente y
la dirección de la empresa pueden ver y monitorizar. Estas iteraciones se deciden en base a
features o funcionalidades, que son pequeñas partes del software con significado para el
cliente.

A diferencia de otros procesos ágiles no cubre todo el ciclo de vida sino sólo las fases de
diseño y construcción. No requiere un modelo específico de proceso y se complementa con
otras metodologías. Enfatiza cuestiones de calidad y define claramente entregas tangibles y
formas de evaluación del progreso.



Características
FDD consiste en cinco procesos secuenciales durante los cuales se diseña y construye el
sistema. Cada fase del proceso tiene un criterio de entrada, tareas, pruebas y una salida.

Desarrollo de un modelo general: Cuando comienza el desarrollo, los expertos de dominio
están al tanto de la visón, el contexto y los requerimientos del sistema a construir. A esta
altura se espera que existan requerimientos tales como casos de uso o especificaciones
funcionales. Los expertos de dominio presentan un ensayo más en el que los miembros del
equipo y el arquitecto jefe se informan de la descripción de alto nivel del sistema.

El dominio general se subdivide en áreas más específicas y se define un ensayo más
detallado para cada uno de los miembros del dominio. Luego, un equipo de desarrollo
trabaja en pequeños grupos para producir modelos de objetos de cada área de dominio.

Simultáneamente, se construye un gran modelo general para todo el sistema.

Construcción de la lista de rasgos: Los ensayos, modelos de objeto y documentación de
requerimientos proporcionan la base para construir una amplia lista de rasgos. Estos rasgos
son pequeños ítems útiles a los ojos del cliente. La lista de rasgos es revisada por los
usuarios y patrocinadores para asegurar su validez y exhaustividad, los rasgos que
requieran de más de diez días se descomponen en otros más pequeños.

Planeamiento por rasgos: Incluye la creación de un plan de alto nivel, en el que los
conjuntos de rasgos se ponen en secuencia conforme a su prioridad y dependencia, y se
asigna a los programadores jefes.

Diseño por rasgos y Construcción por rasgos: Se selecciona un pequeño conjunto de
rasgos del conjunto, y los propietarios de clases seleccionan los correspondientes equipos
dispuestos por rasgos. Se procede luego iterativamente hasta que se producen los rasgos
seleccionados. Una iteración puede tomar de unos pocos días un máximo de dos semanas.
El proceso iterativo incluye inspección de diseño, codificación, pruebas unitarias, integración
e inspección de código.



                                                                                            10
Miremos una representación gráfica del proceso iterativo que involucran estas dos últimas
fases:




                             Imagen 3. Flujo de los procesos en FDD




Roles
Key Roles / Roles claves
    ○   Project Manager / Director del Proyecto: Es el líder administrativo y financiero del
        proyecto. También protege al equipo de situaciones externas.
    ○   Chief Architect / Arquitecto jefe: Se encarga del diseño global del sistema y de la
        ejecución de todas las etapas.
    ○   Development Manager / Director de desarrollo: Lleva diariamente las actividades
        de desarrollo, resuelve conflictos en el equipo y resuelve problemas referentes a
        recursos.
    ○   Chief Programmer / Programador Jefe: Analiza los requerimientos, diseña el
        proyecto y selecciona las funcionalidades a desarrollar de la última fase del FDD.
    ○   Class Owner / Propietario de clases: Responsable del desarrollo de las clases
        que se le asignaron como propias. Participa en la decisión de que clase será
        incluida en la lista de funcionalidades de la próxima iteración.
    ○   Expertos de dominio: Puede ser un usuario, un cliente, analista o una mezcla de
        estos. También poseen el conocimiento de los requerimientos del sistema. Y pasa
        el conocimiento a los desarrolladores para que se asegure la entrega de un sistema
        completo.
Supporting Roles / Roles de soporte
    ○   Domain Manager: Lidera al grupo de expertos del dominio y resuelve sus
        diferencias de opinión concernientes a los requerimientos del sistema.


                                                                                         11
○   Release Manager: Controla el avance del proceso mediante la revisión de los
        reportes del Chief Programmer. Y reporta resultados obtenidos semanalmente al
        gerente, al cliente donde incluye el porcentaje de avance de cada feature.
    ○   Language Lawyer / Guru del Lenguaje: Es el responsable de poseer un vasto
        conocimiento en, por ejemplo, un lenguaje específico de programación o
        tecnología. Este rol es fundamental cuando se trabaja una nueva tecnología.
    ○   Build Engineer / Ingeniero de construcción: Es el responsable de preparar,
        mantener y correr el proceso de construcción. También realiza el mantenimiento de
        las versiones y la publicación de la documentación.
    ○   Toolsmith / Herramentista: Construye herramientas específicas para el desarrollo,
        conversión de datos y testeo. Puede trabajar en la preparación y mantenimiento
        tanto de bases de datos o sitios web destinados al proyecto.
    ○   System Administrator / Administrador del sistema: Configura, administra y
        repara los servidores, estaciones de trabajo y equipos de desarrollo y testeo
        utilizados por el equipo.
Additional Roles / Roles adicionales
    ○   Tester: Verifica que el sistema recién creado cumpla con los requerimientos del
        cliente. Y puede llegar a ser una persona independiente del equipo del proyecto.
    ○   Deployer: Es el encargado de convertir la información existente requerida por el
        nuevo sistema. Participa en el lanzamiento de los nuevos productos.
    ○   Technical Writer / Escritor de documentos técnicos: Prepara documentación
        para los usuarios, que pueden formar parte o no del equipo del proyecto.


Artefactos
El Release Manager se reúne con los Chief Programmers para que éstos reporten como es
el avance de las tareas. En esta reunión, que tiene una duración de 30 minutos o menos,
cada Chief Programmer informa de manera verbal el avance de sus features. Hacer esto de
forma verbal es bueno para que cada uno de los Chief Programmers se tome el tiempo de
escuchar a los otros y saber dónde están situados los demás en el proceso de desarrollo.

Al final de la entrevista, el release manager anota los resultados, actualiza la base de datos
y genera los reportes.

El release manager reporta los resultados obtenidos semanalmente, tanto para el equipo,
para el cliente y para el Project Manager. Para los clientes y los gerentes, el reporte debe
incluir el porcentaje de avance de cada feature. Para el equipo se informa cual es el
desempeño del mismo.



Prácticas
FDD consiste en establecer "mejores prácticas" y los desarrolladores del método
argumentan que a pesar de que las prácticas seleccionadas no son nuevas, la mezcla
específica de estos ingredientes hacen a los cinco procesos FDD únicos para cada caso.
Palmer y Felsing también argumentan que todas las prácticas disponibles deben ser
utilizadas para obtener el mayor beneficio del método y no que una única práctica domine
todo el proceso (2002). FDD consiste en las siguientes prácticas:


                                                                                           12
●   Dominio de modelado de objetos: exploración y explicación del dominio del
       problema. Los resultados se dan en un marco donde las características se añaden.
    ● El desarrollo por función: El cliente valora las funciones, desarrollando y siguiendo
       los progresos a través de una lista de pequeñas funcionalidades descompuestas.
    ● Propiedad de clase individual (código): Cada clase tiene una sola persona elegida
       para ser la responsable de la consistencia, rendimiento e integridad conceptual de la
       clase.
    ● Características de los equipos: Se refiere a pequeños equipos formados
       dinámicamente.
    ● Inspección: Se refiere a la utilización de los mecanismos de detección de defectos
       más conocidos.
    ● Construcciones regulares: se refiere a asegurar que siempre hay un sistema en
       funcionamiento, demostrable y disponible. Las construcciones regulares forman la
       línea base a la que se añaden nuevas funciones.
    ● Gestión de la configuración: Permite la identificación y el seguimiento histórico de las
       últimas versiones de cada archivo de código fuente completo.
    ● Los informes de progreso: Se informa del progreso basado en el trabajo completado
       a todos los niveles organizativos necesarios.
El equipo del proyecto debe poner todas las prácticas anteriores en uso con el fin de cumplir
con las normas de desarrollo del FDD. Sin embargo, al equipo se le permite adaptarlas de
acuerdo a su nivel de experiencia.




                                                                                           13
Crystal: (Crystal Clear)
Crystal es una metodología de desarrollo de software ágil, aunque más bien se la considera
un conjunto de metodologías para el desarrollo de software caracterizadas por estar
centradas en las personas que forman parte del equipo y en la reducción al máximo
del número de artefactos producidos.

El equipo de desarrollo se considera un factor clave en esta metodología, por lo que se
deben invertir esfuerzos en mejorar las habilidades y destrezas, así como tener políticas
de trabajo en equipo bien definidas. Estas políticas dependerán del número de personas
que formen el equipo, estableciéndose una clasificación por colores, por ejemplo Crystal
Clear (3 a 8 personas, es decir proyectos pequeños) y Crystal Orange (25 a 50 personas).
En este trabajo se hablará en concreto de Crystal Clear.




Características
Las seis características o propiedades de Crystal Clear son las siguientes:

   1. Entrega frecuente. Se trata de entregar software a los clientes de forma frecuente,
      no solamente cuando el proyecto está acabado. La frecuencia dependerá del
      proyecto, puede ser diaria, semanal o mensual. Lo importante es mantener
      informado al cliente del estado del sistema.
   2. Comunicación osmótica. Todos los miembros del proyecto deben estar juntos en
      la misma habitación.
   3. Mejora reflexiva. Disponer de un tiempo breve (unas pocas horas cada ciertas
      semanas o una vez al mes) para observar bien el progreso, cotejar ideas y notas,
      reflexionar y discutir.
   4. Seguridad personal. Cuando hay alguna inquietud o problema en el equipo,
      hablarlo para solucionarlo.
   5. Foco. Siempre se debe tener claro lo que se está haciendo en cada momento del
      proyecto, tener el tiempo y la tranquilidad necesaria para llevarlo a cabo.
   6. Fácil acceso a usuarios expertos. Disponer de ayuda y consejo de desarrolladores
      expertos y con experiencia en proyectos similares.



Roles y artefactos
   ●   El patrocinador se encarga de conseguir recursos y de definir el proyecto general.
       Produce un sólo artefacto: la Misión con Prioridades de Compromiso.
   ●   El equipo como Grupo es responsable de producir dos artefactos:
           ○ Estructura y los Convenios del Equipo
           ○ Resultados del Taller de Reflexión
   ●   El coordinador, junto con el equipo, es responsable de la producción de:
           ○ Mapa de proyecto.
           ○ Plan de Lanzamiento
           ○ Estado del proyecto
           ○ Lista de riesgos

                                                                                       14
○ Plan de Iteración y Estado
           ○ Visualización del Calendario
   ●   El experto en negocios y el usuario experto; el primero debe conocer las reglas y
       políticas de la empresa; el segundo debe familiarizarse con el uso del software,
       sugerir mejoras e ideas, en definitiva, implementar una buena interfaz de cara a los
       usuarios finales. Juntos son responsables de producir los siguientes artefactos:
           ○ Lista de Actores-Objetivos
           ○ Archivos de Casos de Uso y Requerimientos
           ○ Modelo del Rol de Usuario
   ●   El diseñador jefe es el responsable de producir la Descripción de la Arquitectura.
   ●   El diseñador-programador, junto con el diseñador jefe, son los responsables de los
       siguientes artefactos:
           ○ Borradores de Pantallas
           ○ Modelo Común de Dominio
           ○ Bocetos de Diseño y Notas
           ○ Código Fuente
           ○ Código de Migraciones
           ○ Pruebas
           ○ Empaquetación del Sistema
       Como curiosidad, en la metodología Crystal Clear no tiene cabida un diseñador que
       no programe.

   ●   El verificador (tester) se encargará de producir Informes de Errores de última
       hora.
   ●   Por último, el escritor producirá el Manual de Ayuda para el Usuario.



Proceso
En lugar de la interpretación lineal de los modelos clásicos, que es interpretada en muchos
casos como inconvenientes, Cristal Clear enfatiza el proceso como un conjunto de ciclos
anidados.

En la mayoría de los proyectos se perciben siete ciclos:

   1. El proyecto en sí.
   2. El ciclo de entrega de una unidad.
   3. La iteración (nótese que CC requiere múltiples entregas por proyecto pero no
      muchas iteraciones por entrega).
   4. La semana laboral.
   5. El período de integración, de 30 minutos a tres días.
   6. El día de trabajo.
   7. El fragmento de desarrollo de una sección de código, de pocos minutos a pocas
      horas.




                                                                                        15
Imagen 4. Ciclos anidados de Crystal Clear




Prácticas
En cuanto a las prácticas o técnicas que se favorecen dentro de esta metodología, podemos
mencionar las siguientes:

   1. Entrevistas de proyectos. Es costumbre entrevistar a más de un responsable para
      tener visiones más enriquecedoras y variadas.
   2. Talleres de reflexión. El equipo debe descansar de treinta minutos a una hora para
      reflexionar, discutir sobre posibles problemas y mejoras y organizarse de cara a la
      siguiente etapa.
   3. Planeamiento „Blitz‟. Técnica equivalente al Juego de Planeamiento de XP. Se
      ponen tarjetas enumeradas en la mesa, con una historia de usuario o función visible
      en cada una. El grupo simula que no hay dependencias entre ellas, y se alinean en
      secuencias de desarrollo preferidas. Los programadores escriben en cada tarjeta el
      tiempo estimado para desarrollar cada función. El patrocinador escribe el orden de
      prioridades, teniendo en cuenta los tiempos y el valor de negocio de cada función.
      Las tarjetas se agrupan en iteraciones que se agrupan a su vez en entregas,
      normalmente no más largas de tres meses.
   4. Estimación Delphi con estimaciones de pericia. Se reúnen los expertos y
      proponen el tamaño del sistema, su tiempo de ejecución, la fecha de entregas y
      equilibrarlas entregas en paquetes de igual tamaño.
   5. Encuentros diarios de pie. Deben ser muy breves, de 5 a 10 minutos. Se trata
      únicamente de identificar problemas y no de debatir.
   6. Miniatura de procesos. Para que así la gente pueda disfrutar de esta metodología
      sin que les resulte muy pesada.
   7. Gráficos de quemado. Se usan también en Scrum. Es una técnica de graficación
      para descubrir retardos y problemas en el proceso a tiempo, evitando que se
      descubran demasiado tarde o cuando ya no tengan solución. Para ello se hace una
      estimación del tiempo que falta para programar lo que queda al ritmo actual. Esta
      técnica se asocia con la Lista Témpana, llamada así porque se refiere al agregado
      de tareas u objetos de alta prioridad al principio de las listas de trabajos pendientes,
      esperando que los demás se hundan debajo de la línea de flotación; los elementos


                                                                                           16
que están sobre la línea se entregarán en la iteración siguiente, los que están por
   debajo en las restantes. Los gráficos de quemado muestran gráficamente la
   velocidad del proceso.
8. Programación lado a lado. Crystal Clear establece proximidad con los miembros
   del equipo. Cada persona se enfoca a su propia tarea asignada pero echando un ojo
   a lo que hace su compañero. Es una ampliación de la Comunicación Osmótica al
   contexto de la programación, y un contraste a la presión extrema que muchos
   consideran a la programación en pares de XP.




                                                                                   17
AUP: Agile Unified Process
Características
Es un enfoque al desarrollo de software basado en el Rational Unified Process (RUP) de
IBM. El ciclo de vida de AUP es en serie a lo grande e iterativo en lo pequeño, liberando
artefactos incrementales en el tiempo.

El AUP consta de 7 flujos de trabajo o disciplinas: Modelado, Implementación, Prueba,
Despliegue, Gestión de configuración, Gestión de proyectos y Ambiente.

       - Modelado: Tiene como objetivo entender el negocio, entender cuál es el problema
       que se va a abordar e identificar las posibles soluciones viables para dicho
       problema.

       - Implementación: El objetivo de esta disciplina es transformar el modelo en código
       y realizar pruebas básicas sobre él.

       - Prueba: Tiene como meta evaluar una evaluación de los objetivos y encontrar
       defectos para mejorar la calidad. Se encarga también de verificar si el sistema
       funciona correctamente.

       - Despliegue: Su objetivo es ejecutar un plan para que el sistema esté a disposición
       de los usuarios.

       - Administración de la configuración: Su meta es administrar el acceso a los
       artefactos del proyecto. Lleva un registro de las versiones del producto y controla los
       cambios que ocurran.

       - Administración del proyecto: Tiene el objetivo de administrar los riesgos, la
       asignación de tareas, el seguimiento de los procesos y coordinar con las personas
       fuera del proyecto para facilitar que acabe a tiempo y sin pasar el presupuesto.

       - Entorno: Apoya los esfuerzos para garantizar la disponibilidad de los procesos,
       normas y herramientas cuando sea necesario.



También consta de 4 fases del ciclo de desarrollo:

- Inicio: se trata de identificar el alcance y dimensión del proyecto, su arquitectura y el
presupuesto junto con su aprobación por parte de aquellos que pertenecen al proyecto.
Como hito de esta fase obtenemos los objetivos de ciclo de vida.

- Elaboración: en esta fase se prueba y se confirma la arquitectura del sistema. Como hito
obtenemos la arquitectura del ciclo de vida.

- Construcción: esta fase consiste en la construcción del software sobre la base
incremental siguiendo unas prioridades impuestas por los implicados en el proyecto o por
los propios usuarios. Como hito obtenemos la capacidad operacional inicial.

- Transición: esta fase tiene el objetivo de validar e implantar el sistema en el entorno de
producción. Como hito tenemos la liberación del producto.


                                                                                           18
Roles
- Administrador de bases de datos: trabaja con los miembros del equipo del proyecto para
diseñar, probar y dar soporte a los esquemas de datos. Trabaja dentro de la disciplina de
implementación.

- Modelador: se encarga de crear modelos (dibujos, archivos, etc) de manera colaborativa y
evolutiva. Trabaja dentro de las disciplinas de modelado e implementación.

- Administrador de la configuración: se encarga de la infraestructura del medio donde
trabaja el equipo de desarrollo. Forma parte de la disciplina de administración de
configuración.

- Implementador: es el encargado de poner el software a punto para la preproducción. Su
parte se desarrolla dentro de la disciplina de desarrollo.

- Desarrollador: escribe el código, lo prueba y construye el software. Trabaja en las
disciplinas de modelado, implementación y desarrollo.

- Especialista del proceso: desarrolla, adapta y apoya el material de los procesos de
organización. Trabaja en la disciplina de entorno.

- Administrador del proyecto: se encarga de administrar los miembros de los equipos de
trabajo, maneja las interacciones entre los involucrados en el proyecto y también se encarga
de administrar los recursos y las prioridades. Trabaja dentro de las disciplinas de modelado,
pruebas, desarrollo y administración del proyecto.

- Examinador: es el miembro que se encarga de someter a evaluación los productos del
proyecto. Su trabajo forma parte de la disciplina de pruebas.

- Documentador técnico: se encarga de la documentación sobre los materiales,
operaciones, mantenimiento y del usuario. Forma parte de la disciplina de desarrollo.

- Administrador de pruebas: se encarga de que las pruebas a las que se somete el
producto tengan éxito. Forma parte de la disciplina de pruebas.

- Equipo de pruebas: son los miembros que se encargan de ejecutar las pruebas y
documentar las. Pertenecen a la disciplina de pruebas.

- Especialista en herramientas: son los responsables de la elección, adquisición,
configuración y mantenimiento de los equipos que se utilizaran durante el proceso. Forma
parte de la disciplina de entorno.



Artefactos
- Sistema: el sistema es el software, hardware y documentación que será liberado a la
producción.

- Código fuente: es el código de programación para los sistemas.



                                                                                          19
- Suite de pruebas de regresión: son casos de prueba con sus respectivos códigos listos
para ser ejecutados en un orden predefinido.

- Scripts de instalación: código necesario para instalar el sistema en el entorno de
preproducción.

- Documentación del sistema: es la documentación que fluye junto con el sistema para
ayudar a los desarrolladores a mantenerlo actualizado. Contiene las operaciones, soportes
y documentación general del sistema.

- Notas: son resúmenes que se pasan sobre aquellas modificaciones que se realizan en el
proceso de construcción.

- Modelado de requerimientos: contiene los requisitos a cumplir, junto con pruebas de
aceptación, automatización, modelos de procesos de negocio, reglas, modelos de dominio y
organización, glosarios, requisitos técnicos y modelos de UI.

- Modelo de diseño: es una descripción del diseño del sistema que contiene modelos de
despliegue, objetos, datos físicos y seguridad, así como un resumen del sistema y un
modelo de UI.




                                                                                      20
Análisis comparativo
Similitudes y diferencias
Las metodologías ágiles pueden seguir una guía rígida y concreta de la que no hay que
salirse, con técnicas muy específicas, como sucede con las metodologías FDD y XP, o por
el contrario, seguir una guía flexible y abstracta, con métodos que nos ayudan a obtener
el mismo resultado de una manera más eficiente, como es el caso de Crystal.

Una de las similitudes que comparten prácticamente todas las metodologías ágiles es que
presentan guías ajustables y adaptables ante cambios una vez empezado el proyecto.
Crystal es la única excepción.

En cuanto a los roles que intervienen en las diferentes metodologías comentadas en los
anteriores apartados, se puede decir que no difieren prácticamente, y que en su mayoría
los mismos papeles se repiten en todas. Siempre hay un representante del cliente, que
normalmente es el que se encarga de comprobar que se van cumpliendo todos los
requisitos; un experto en la metodología para guiar al equipo; un gestor del proyecto; y
el equipo de desarrolladores (con mayor o menor grado de subdivisiones dentro de esta
unidad).

En conclusión podemos decir que la asignación de los roles es independiente de la
metodología y que tan sólo se van adaptando según el estilo que tenga cada una.

Las herramientas usadas por las metodologías ágiles son en general muy comunes, XP es
de las pocas que se desvían de esta norma y han introducido novedades, especialmente en
lo que se refiere a herramientas en las fases de pruebas (aunque en este trabajo no se
habla de XP).

La familia de las metodologías Crystal es la única que sugiere explícitamente principios del
método de diseño para permitir la adaptación en función del tamaño del proyecto y la
criticidad.

DSDM se diferencia por usar prototipos y presenta algunos roles no considerados por el
resto: ambassador, visionary y advisor (representan diferentes puntos de vista del cliente).

FDD no cubre las primeras fases de un proyecto, pues presupone que se ha realizado
trabajo anteriormente



Ventajas y desventajas
DSDM une técnicas de desarrollo y gestión del proyecto en una misma metodología que se
centra en conseguir un producto que funcione correctamente en los casos más
críticos, por lo que crea un producto en un plazo corto que sólo cubre casos de uso
básicos.

El equipo de desarrollo toma decisiones sin depender de autorizaciones de sus
superiores evitando tiempos de espera y su consecuente pérdida de tiempo, en el


                                                                                         21
desarrollo al esperar una aprobación. Sobre todo teniendo en cuenta que los plazos de
desarrollo y las iteraciones son cortos períodos de tiempo, punto que tiene la ventaja de
prevenir que transcurra mucho tiempo y la tecnología cambie, además de permitir una
revisión continua del producto a través de entregas frecuentes de productos.

Llegados aquí, gracias a que los cambios son revertibles y verificados es posible volver
a un punto anterior y corregir errores detectados. Otra ventaja es la continua
realimentación (feedback) entre cliente y desarrolladores que ayuda a obtener un proyecto
eficiente y efectivo aunque el desarrollo sea rápido y en tiempo reducido.



Como ventajas, FDD tiene que es una metodología de desarrollo ágil, que disminuye el
riesgo de los proyectos, pues gracias a sus entregas tangibles cada dos semanas y al
constante monitoreo de su calidad, se asegura el firme avance del mismo.

Esta metodología utiliza pequeños bloques que contienen la funcionalidad del sistema,
llamados features. Estos bloques, que están relacionados entre sí, son organizados en una
lista llamada feature set.

También permite dejar satisfechos a los desarrolladores, gerentes y clientes sin afectar el
proyecto. Esto gracias a un buen manejo de las actividades, a la disminución del riesgo
del proyecto y al aseguramiento de la calidad del mismo, respectivamente.

FDD presenta su talón de Aquiles en la necesidad de tener en el equipo miembros con
experiencia que marquen el camino a seguir desde el principio, con la elaboración del
modelo global, puesto que no es tan ágil como otras metodologías.

Algunos “agilistas” sienten que FDD es demasiado jerárquico para ser un método ágil,
porque demanda un programador jefe, quien dirige a los propietarios de clases, quienes
dirigen equipos de rasgos.

Otros críticos sienten que la ausencia de procedimientos detallados de prueba en FDD
es llamativa e impropia.

Los promotores del método aducen que las empresas ya tienen implementadas sus
herramientas de prueba, pero subsiste el problema de su adecuación.



En cuanto a Crystal Clear podríamos meter en el saco de ventajas que es una de las
metodologías más ágiles y flexibles, con gran énfasis en la comunicación (de hecho es
lo más importante y crucial) y a los individuos que forman parte del proyecto. Otro punto
que se puede considerar ventaja es que se dispone de la figura del “usuario real”, que
realiza validaciones sobre la interfaz de usuario, propone ideas para una mejor
implementación de cara a los usuarios finales de primera mano y participa en la definición
de requerimientos funcionales y no funcionales del software, lo cual implica que se consigue
un sistema totalmente preparado y adaptado a los usuarios finales. Este hecho muchas
metodologías no lo integran.



Como inconveniente podríamos decir que es una metodología que no se puede aplicar a
grandes proyectos donde absolutamente todo se debe controlar y donde se deben seguir

                                                                                         22
por necesidad instrucciones más disciplinadas y concretas, Crystal Clear es demasiado
ágil y abstracta en sus métodos, lo que hace que esta metodología por sí sola sea
aplicable en la práctica en casos muy concretos.




Adecuación para distinto tipo de aplicaciones
DSDM es excelente para proyectos de sistemas de la información con presupuestos
limitados y agendas muy ocupadas y apretadas. Puede usarse en proyectos de ampliación
de sistemas TI pero también podría utilizarse para proyectos de cambio de algún sistema
aunque no sea TI. Proyectos interactivos con funcionalidad visible en la interfaz de usuario



FDD se utilizó por primera vez en grandes aplicaciones bancarias a fines de la década de
1990. Los autores sugieren su uso para proyectos nuevos o actualizaciones de sistemas
existentes y recomiendan adoptarlo en forma gradual. Un rasgo llamativo de FDD es que no
exige la presencia del cliente.



Crystal Clear al darle más importancia a los individuos y basarse fundamentalmente el
éxito del proyecto en la comunicación cara a cara, es una metodología que únicamente se
puede aplicar a proyectos pequeños, de equipos reducidos y menos a 10 personas, pues en
proyectos más ambiciosos es fácil que se pase algo por algo, lo que puede ser fatal. En
cambio en proyectos menores, donde la gente se conoce más y todos están apoyados unos
en otros, es posible llegar a buen puerto con este método tan flexible y menos estresante en
comparación con otras metodologías. Esto último en proyectos más grandes y de más
importancia es necesario que así sean para poder controlar, por ejemplo, los riesgos críticos
a los que se debe enfrentar, algo que Crystal Clear no contempla. Más bien Crystal Clear
está pensada para combinarse junto a otras metodologías como XP o Scum.



AUP es un método ágil entre XP y RUP que incluye las actividades y herramientas
tradicionales. El AUP resulta ser un proceso muy pesado pero en comparación con el RUP
es muy simple.




                                                                                          23
Bibliografía
Introducción
Diseño de una Metodología Ágil de Desarrollo de Software - Marcelo Schenone
Desarrollo ágil de software - Wikipedia [Imagen 1]

DSDM: Dynamic Systems Development Method
Método de desarrollo de sistemas dinámicos - Wikipedia
Metodología ágil DSDM - Bitácora de Audieman [Imagen 2]
Diseño de una Metodología Ágil de Desarrollo de Software - Marcelo Schenone
Agile Software Development Methods: Review and Analysis - Abrahamsson, Pekka; Salo,
Outi; Ronkainen, Jussi; Warsta, Juhani (PDF/ENG)

FDD: Feature Driven development
FDD - Wikipedia(Traducido)
Presentación FDD (PPT)
Procesos ágiles (MSWord)
Metodología FDD - Luis Calabria (cátedra)
Diseño de una Metodología Ágil de Desarrollo de Software - Marcelo Schenone
Agile Software Development Methods: Review and Analysis - Abrahamsson, Pekka; Salo,
Outi; Ronkainen, Jussi; Warsta, Juhani (PDF/ENG)


Crystal: (Crystal Clear)
Diseño de una Metodología Ágil de Desarrollo de Software - Marcelo Schenone
Documento sobre la metodología Crystal
Crystal Clear Roles and Work Products (ENG)
Metodologías ágiles [Imagen 4]
Presentación sobre Crystal Clear

AUP: Agile Unified Process
Gestion de proyectos ágil: Conceptos básicos (PDF)
http://www.ecured.cu/index.php/Agile_Unified_Process
http://www.ambysoft.com/unifiedprocess/agileUP.html
http://wikis.uca.es/wikiCE/index.php/Agile_unified_process
http://www.ambysoft.com/downloads/agileUP.zip
http://www.adolfo.mex.tl/images/18149/METODOLOGIAS%20AGILES.pdf


Análisis comparativo
Metodologías ágiles, tesis de master




                                                                                      24

Más contenido relacionado

La actualidad más candente

Tema 1: Fundamentos de la gestión de proyectos (2019/20)
Tema 1: Fundamentos de la gestión de proyectos (2019/20)Tema 1: Fundamentos de la gestión de proyectos (2019/20)
Tema 1: Fundamentos de la gestión de proyectos (2019/20)Oriol Borrás Gené
 
Metodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPMetodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPJose I. Honrado
 
Negociación en la Gestión de Proyectos-artículo
Negociación en la Gestión de Proyectos-artículoNegociación en la Gestión de Proyectos-artículo
Negociación en la Gestión de Proyectos-artículoDharma Consulting
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágilesFabian Garzon
 
Adopción de una metodología agil para proyectos de software
Adopción de una metodología agil  para proyectos de softwareAdopción de una metodología agil  para proyectos de software
Adopción de una metodología agil para proyectos de softwarefredarwin
 
Scrum metodología ágil para tus proyectos
Scrum metodología ágil para tus proyectosScrum metodología ágil para tus proyectos
Scrum metodología ágil para tus proyectosBarCamp Cochabamba
 
SCRUM Desarrollo ágil
SCRUM Desarrollo ágilSCRUM Desarrollo ágil
SCRUM Desarrollo ágilricardoroldan
 
Tema 6 planes de seguridad informatica
Tema 6 planes de seguridad informaticaTema 6 planes de seguridad informatica
Tema 6 planes de seguridad informaticaMariano Galvez
 
Las etapas de un proyecto informático
Las etapas de un proyecto informáticoLas etapas de un proyecto informático
Las etapas de un proyecto informáticolizbravo1981
 
Introduccion a Scrum con caso práctico
Introduccion a Scrum  con caso prácticoIntroduccion a Scrum  con caso práctico
Introduccion a Scrum con caso prácticoDaniel Escribano Ales
 
Metodologias xp
Metodologias xpMetodologias xp
Metodologias xpElvisAR
 

La actualidad más candente (20)

Introducción al Marco de Trabajo Scrum
Introducción al Marco de Trabajo ScrumIntroducción al Marco de Trabajo Scrum
Introducción al Marco de Trabajo Scrum
 
Tema 1: Fundamentos de la gestión de proyectos (2019/20)
Tema 1: Fundamentos de la gestión de proyectos (2019/20)Tema 1: Fundamentos de la gestión de proyectos (2019/20)
Tema 1: Fundamentos de la gestión de proyectos (2019/20)
 
Metodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPMetodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XP
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Negociación en la Gestión de Proyectos-artículo
Negociación en la Gestión de Proyectos-artículoNegociación en la Gestión de Proyectos-artículo
Negociación en la Gestión de Proyectos-artículo
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
BIZAGI MODELER
BIZAGI MODELERBIZAGI MODELER
BIZAGI MODELER
 
Monografia de scrum
Monografia de scrumMonografia de scrum
Monografia de scrum
 
Adopción de una metodología agil para proyectos de software
Adopción de una metodología agil  para proyectos de softwareAdopción de una metodología agil  para proyectos de software
Adopción de una metodología agil para proyectos de software
 
Scrum metodología ágil para tus proyectos
Scrum metodología ágil para tus proyectosScrum metodología ágil para tus proyectos
Scrum metodología ágil para tus proyectos
 
Crystal clear exposicion
Crystal clear exposicionCrystal clear exposicion
Crystal clear exposicion
 
SCRUM Desarrollo ágil
SCRUM Desarrollo ágilSCRUM Desarrollo ágil
SCRUM Desarrollo ágil
 
Tema 6 planes de seguridad informatica
Tema 6 planes de seguridad informaticaTema 6 planes de seguridad informatica
Tema 6 planes de seguridad informatica
 
Las etapas de un proyecto informático
Las etapas de un proyecto informáticoLas etapas de un proyecto informático
Las etapas de un proyecto informático
 
Metodologia crystal
Metodologia crystalMetodologia crystal
Metodologia crystal
 
BIZAGI Modeler
BIZAGI ModelerBIZAGI Modeler
BIZAGI Modeler
 
Introduccion a Scrum con caso práctico
Introduccion a Scrum  con caso prácticoIntroduccion a Scrum  con caso práctico
Introduccion a Scrum con caso práctico
 
K A I Z E N
K A I Z E NK A I Z E N
K A I Z E N
 
Metodologias xp
Metodologias xpMetodologias xp
Metodologias xp
 
Presentación Metodologia Agil
Presentación Metodologia AgilPresentación Metodologia Agil
Presentación Metodologia Agil
 

Destacado

Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Lis Pater
 
Metodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareMetodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareJuan Gomez
 
Workshop Framework SCRUM
Workshop Framework SCRUMWorkshop Framework SCRUM
Workshop Framework SCRUMAngel Lacret
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agilesmmanuelo
 
Metodologias Ágiles - Crystal Clear
Metodologias Ágiles - Crystal ClearMetodologias Ágiles - Crystal Clear
Metodologias Ágiles - Crystal ClearFrank Valero Lujano
 
4. Desarrollo ágil de software
4. Desarrollo ágil de software4. Desarrollo ágil de software
4. Desarrollo ágil de softwareCoesi Consultoria
 
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...Joel Fernandez
 
Introducción de pruebas de software
Introducción de pruebas de softwareIntroducción de pruebas de software
Introducción de pruebas de softwareMarta Silvia Tabares
 
Modelo De Cascada
Modelo De CascadaModelo De Cascada
Modelo De Cascadaweysiba
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativosDiego Rivero
 
Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)Tuyo Mio
 
Mapa conceptual scrum
Mapa conceptual scrumMapa conceptual scrum
Mapa conceptual scruminformatix
 
Introducción a las Metodologías Ágiles
Introducción a las Metodologías ÁgilesIntroducción a las Metodologías Ágiles
Introducción a las Metodologías Ágilesmigami
 

Destacado (20)

Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema
 
Metodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de softwareMetodologías agiles de desarrollo de software
Metodologías agiles de desarrollo de software
 
Workshop Framework SCRUM
Workshop Framework SCRUMWorkshop Framework SCRUM
Workshop Framework SCRUM
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
La alternativa agil v5.7
La alternativa agil   v5.7La alternativa agil   v5.7
La alternativa agil v5.7
 
Metodologias Ágiles - Crystal Clear
Metodologias Ágiles - Crystal ClearMetodologias Ágiles - Crystal Clear
Metodologias Ágiles - Crystal Clear
 
4. Desarrollo ágil de software
4. Desarrollo ágil de software4. Desarrollo ágil de software
4. Desarrollo ágil de software
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...Metodologías Ágiles  para el Desarrollo de Software y Metodologias Para el de...
Metodologías Ágiles para el Desarrollo de Software y Metodologias Para el de...
 
Introducción de pruebas de software
Introducción de pruebas de softwareIntroducción de pruebas de software
Introducción de pruebas de software
 
Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
 
Ensayo
EnsayoEnsayo
Ensayo
 
Modelo De Cascada
Modelo De CascadaModelo De Cascada
Modelo De Cascada
 
METODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TIMETODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TI
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Presentacion fdd
Presentacion fddPresentacion fdd
Presentacion fdd
 
Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)Metología Agiles Desarrollo Software (XP)
Metología Agiles Desarrollo Software (XP)
 
Mapa conceptual scrum
Mapa conceptual scrumMapa conceptual scrum
Mapa conceptual scrum
 
Introducción a las Metodologías Ágiles
Introducción a las Metodologías ÁgilesIntroducción a las Metodologías Ágiles
Introducción a las Metodologías Ágiles
 

Similar a METODOLOGIAS AGILES

Metodologias de desarrollo de software
Metodologias de desarrollo de softwareMetodologias de desarrollo de software
Metodologias de desarrollo de softwarehernandezcris
 
METODOLOGIA DSDM.pptx
METODOLOGIA DSDM.pptxMETODOLOGIA DSDM.pptx
METODOLOGIA DSDM.pptxMrKevinKR
 
Metodos agiles 3
Metodos agiles 3Metodos agiles 3
Metodos agiles 3paotacuba
 
metodologia agil.ppt
metodologia agil.pptmetodologia agil.ppt
metodologia agil.pptbrian roa
 
Metodologías de Desarrollo de Software Jr
 Metodologías de Desarrollo de Software Jr Metodologías de Desarrollo de Software Jr
Metodologías de Desarrollo de Software JrJunior Leal
 
metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...
metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...
metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...Dormimundo
 
Las metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el PerúLas metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el PerúPagina web Peru - F5mas
 
Grupo 5-modelos-de-procesos-de-software
Grupo 5-modelos-de-procesos-de-softwareGrupo 5-modelos-de-procesos-de-software
Grupo 5-modelos-de-procesos-de-softwarePrimoLaura
 
Especial ingenieria de software
Especial ingenieria de softwareEspecial ingenieria de software
Especial ingenieria de softwarealejandor reyes
 
Especial ingenieria de software
Especial ingenieria de softwareEspecial ingenieria de software
Especial ingenieria de softwarealejandor reyes
 
Métodos Ágiles de Programación
Métodos Ágiles de Programación Métodos Ágiles de Programación
Métodos Ágiles de Programación Sonia Sosa
 
procesos de desarrollo de software
procesos de desarrollo de softwareprocesos de desarrollo de software
procesos de desarrollo de softwarejoseantonio897
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rupmireya2022
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitosCarlos Chaves
 

Similar a METODOLOGIAS AGILES (20)

Metodologias de desarrollo de software
Metodologias de desarrollo de softwareMetodologias de desarrollo de software
Metodologias de desarrollo de software
 
METODOLOGIA DSDM.pptx
METODOLOGIA DSDM.pptxMETODOLOGIA DSDM.pptx
METODOLOGIA DSDM.pptx
 
Metodos agiles 3
Metodos agiles 3Metodos agiles 3
Metodos agiles 3
 
metodologia agil.ppt
metodologia agil.pptmetodologia agil.ppt
metodologia agil.ppt
 
Dsdm
DsdmDsdm
Dsdm
 
Metodologia dsdm
Metodologia dsdmMetodologia dsdm
Metodologia dsdm
 
Dsdm
DsdmDsdm
Dsdm
 
Metodologías de Desarrollo de Software Jr
 Metodologías de Desarrollo de Software Jr Metodologías de Desarrollo de Software Jr
Metodologías de Desarrollo de Software Jr
 
Dsdm_f
Dsdm_fDsdm_f
Dsdm_f
 
RUP
RUPRUP
RUP
 
metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...
metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...
metodologia de desarrollo de sistemas dinamicos o Dynamic Systems Development...
 
Luis
LuisLuis
Luis
 
Las metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el PerúLas metodologías usadas en el Desarrollo de SW en el Perú
Las metodologías usadas en el Desarrollo de SW en el Perú
 
Grupo 5-modelos-de-procesos-de-software
Grupo 5-modelos-de-procesos-de-softwareGrupo 5-modelos-de-procesos-de-software
Grupo 5-modelos-de-procesos-de-software
 
Especial ingenieria de software
Especial ingenieria de softwareEspecial ingenieria de software
Especial ingenieria de software
 
Especial ingenieria de software
Especial ingenieria de softwareEspecial ingenieria de software
Especial ingenieria de software
 
Métodos Ágiles de Programación
Métodos Ágiles de Programación Métodos Ágiles de Programación
Métodos Ágiles de Programación
 
procesos de desarrollo de software
procesos de desarrollo de softwareprocesos de desarrollo de software
procesos de desarrollo de software
 
Metodologia rup
Metodologia rupMetodologia rup
Metodologia rup
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 

Último

FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 

METODOLOGIAS AGILES

  • 1. Metodologías ágiles Práctica 3 #AESMultimedia - aesmultimedia.blogspot.com José Luís Contreras Martínez @DkLawis Ana García Domene @agado92 Daniel Martínez Espadas @danielme91 Begoña Morillas Guijarro @begomori 1
  • 2. Índice Introducción a las metodologías ágiles DSDM: Dynamic Systems Development Method FDD: Feature Driven development Crystal: (Crystal Clear) AUP: Agile Unified Process Análisis comparativo Bibliografía 2
  • 3. Introducción a las metodologías ágiles Las metodologías ágiles surgen a principios de los 90 ante ciertos problemas de tiempo, costo y calidad en el desarrollo de creación de software. Este nuevo enfoque de desarrollo se dio a conocer como RAP (Rapid Application Development). En él, el trabajo se organizaba en pequeños grupos de trabajo de alto rendimiento. Las metodologías ágiles se inician con la creación del eXtreme programming o XP que impulsa el desarrollo mediante iteraciones, aunque éstas ya se utilizaban anteriormente. También destacamos que estos ciclos son cortos intervalos de tiempo, de una a cuatro semanas, lo que favorece la minimización de riesgos. Actualmente existen diversas metodologías ágiles que se fueron basando en los principios de esta metodología. Imagen 1: Desarrollo ágil de software A continuación estudiaremos cuatro de las metodologías ágiles más destacadas del momento: DSDM – Dynamic Systems Developmemt Method, Crystal (Crystal Clear), FDD – Feature Driven Development y AUP: Agile Unified Process. 3
  • 4. DSDM: Dynamic Systems Development Method Esta metodología surge de un consorcio en Reino Unido. Su primera versión aparece en 1994, posteriormente se han realizado varias versiones. Situada dentro de las RAD, DSDM es excelente para proyectos de sistemas de la información con presupuestos limitados y agendas muy ocupadas y apretadas. Características Los proyectos tendrán las siguientes características que refieren a la aplicabilidad de DSDM: - Proyectos interactivos con funcionalidad visible en la interfaz de usuario - De baja o media complejidad computacional. - Particionables en componentes de funcionalidad más pequeños si la aplicación es de gran tamaño, cuentan con flexibilidad en los requerimientos. - Une técnicas de desarrollo y gestión del proyecto en una misma metodología que se centra en conseguir un producto que funcione correctamente en los casos más críticos. - Trabajo en equipo tanto los desarrolladores, los usuarios y los Stakeholders. Con un grupo de usuarios bien definidos y comprometidos al proyecto. - El equipo de desarrollo toma decisiones sin depender de autorizaciones de sus superiores para realizar entregas, siempre cortas, de forma frecuente, siendo éstas funcionales. Ésto es adecuado al tener el tiempo total acotado, por lo que previene que transcurra mucho tiempo y la tecnología cambie. - El desarrollo es iterativo e incremental. - Todos los cambios pueden ser revertibles y son verificados durante todo el desarrollo. Roles Esta metodología define 15 roles para usuarios y desarrolladores, a continuación se describen los más destacados. ● Desarrollador y desarrollador senior (developer and senior developer) Son los únicos roles definidos para desarrolladores, por esto este rol incluye a todo el personal de desarrollo, sean diseñadores, analistas, programadores o testers. La diferencia entre desarrollador y desarrollador senior es que los segundos tienen gran experiencia en las tareas que realizan, por lo que suelen dirigir el equipo. ● Coordinador técnico (Technical coordinator) Responsable tanto de la calidad técnica como del control técnico del proyecto, por ejemplo el uso de software de gestión de configuración y el cumplimiento de estándares técnicos. Está encargado de mantener la arquitectura. ● Usuario embajador (Ambassador user). 4
  • 5. Equivale al on-site customer de XP. El usuario embajador debe ser miembro del grupo de usuarios, que espera utilizar el sistema, pues este rol tiene como función aportar el conocimiento de este grupo al proyecto y difundir información de los avances del proyecto al resto de usuarios. De esta forma se asegura una correcta retroalimentación de los usuarios. se ofrece conocimiento del negocio y define los requisitos del software. ● Asesor de usuario (Adviser user). Consejero del usuario embajador. Este rol se emplea cuando el rol de usuario embajador no es suficiente para expresar todas las opiniones o puntos de vista importantes de los usuarios sobre un punto del proyecto. ● Visionario (Visionary). El trabajo del visionario es el encargado de asegurar que se satisfacen las necesidades de negocio, es decir, que desde el principio, los requisitos esenciales se encuentran y que el proyecto sigue la dirección correcta para cumplir dichos requisitos. Es el rol con la visión más precisa sobre los objetivos del negocio del sistema y del proyecto y probablemente aquel que tiene la idea inicial de la construcción del sistema. ● Patrocinador ejecutivo (Executive sponsor). Es el rol de la organización de usuario que tiene la autoridad y responsabilidad financiera relacionada al proyecto, por lo tanto tiene el máximo poder en la toma de decisiones. ● Director de proyecto (Project Manager). Es responsable de entregar los productos acordados de forma exitosa, al acordado standar de calidad, a tiempo y dentro del presupuesto. Además de ser capaz de entregar los beneficios estipulados en el PID. El director del proyecto puede venir de IT o de la comunidad de usuarios, e informa a la Junta del Proyecto. Artefactos Podemos describir los artefactos obtenidos mediante la metodología DSDM a través de las distintas fases que lo forman. Fase 1. Estudio de viabilidad. - Informe de viabilidad. Análisis de viabilidad del proyecto - Esbozo del plan para el desarrollo. Planteamiento del desarrollo del proyecto a grandes rasgos. - Listado de riesgos. Lista con los riesgos que puede ofrecer el sistema. - Prototipo rápido. Es un artefacto opcional, sólo aparecerá si no se conoce lo suficiente el negocio o tecnología. Fase 2. Estudio de la empresa. - Descripción de los procesos de negocio y especificación de casos de uso. La identificación de los casos de uso ayuda a involucrar al cliente. 5
  • 6. - Documento de Especificación de Requerimientos de Software (SRS). Descripciones a alto nivel de los requisitos que se presentan en formato correcto diagramas ER, modelos de negocio objetivos, etc. - Definición de la arquitectura del sistema. Es un primer borrador de la arquitectura que puede cambiar durante el desarrollo del proyecto. - Esbozo del plan de prototipado. Debe declarar la estrategia de prototipado para las siguientes fases y un plan para la configuración de la administración. Fase 3. Iteración del modelo funcional. - Modelo funcional. Contiene el código prototipo y los modelos de análisis - Casos de prueba. Pruebas a realizar a código. - Funciones prioritarias. Lista de prioridades de las funciones que se entregan al final de la iteración. - Resumen de los documentos de prototipos funcionales. Recoge los comentarios de los usuarios sobre el incremento actual, servirá de artefacto de entrada para las siguientes iteraciones. - Requisitos no funcionales. Lista de requisitos que se tratarán en la siguiente fase. - Análisis de riesgos de desarrollo superior. Documento de gran importancia en esta fase, pues, a partir de la siguiente fase, los errores encontrados serán más difíciles de ubicar y dirigir. Fase 4. Diseño e iteración de la estructura. - Sistema probado. Debe cumplir al menos los requisitos mínimos acordados. Fase 5. Implementación. - Sistema entregado. Sistema finalizado y entregado al cliente. - Manual de usuario. Instrucciones de uso del sistema. - Informe de revisión de proyecto. Resume el resultado del proyecto. Según los resultados, se establece el curso del desarrollo adicional. Prácticas Dado el enfoque hacia proyectos de características RAD, la ideología de la metodología DSDM se define en nueve principios: 1. Involucrar al usuario es la base para obtener un proyecto eficiente y efectivo. Cliente y desarrolladores comparten entorno de trabajo para mejorar la precisión de las decisiones. 2. Los equipos de DSDM deben tener poder de toma de decisiones. Es importante que se puedan tomar decisiones para el desarrollo del proyecto sin esperar la aprobación de superiores 3. El foco está puesto en la entrega frecuente de productos. Esto permite una verificación y revisión continua del producto desde el principio. 4. La conformidad con los propósitos del negocio es el criterio esencial para la aceptación de los entregables. 6
  • 7. DSDM se centra en las funcionalidades críticas del proyecto, no en todas sus posibles necesidades. 5. El desarrollo iterativo e incremental es necesario para converger hacia una correcta solución del negocio. Se basa en la retroalimentación de os usuarios para dirigirse hacia una solución precisa. 6. Todos los cambios durante el desarrollo son reversibles. Saber dónde estamos en cada momento para tener la posibilidad de deshacer y probar otro camino si el elegido no funciona. 7. Los requerimientos están especificados a un alto nivel. Alcance de alto nivel y requisitos deben ser „base-lined‟ desde el inicio del proyecto. 8. El testing es integrado a través del ciclo de vida. Durante todo el ciclo de vida se realizan pruebas para evitar costes extraordinarios en mantenimiento y arreglos del sistema. 9. Un enfoque colaborativo y cooperativo entre todos los interesados es esencial. La colaboración y cooperación entre el equipo, usuarios y stakeholders es esencial para un correcto desarrollo del proyecto. Aparte de estos principios, DSDM también se basa en una serie de consideraciones muy importantes: ● Ningún sistema es construido a la perfección en el primer intento. ● La entrega del proyecto deberá ser a tiempo, respetando presupuesto y asegurando la calidad. ● DSDM solo requiere que se complete cada paso que forma una iteración con la funcionalidad suficiente como para que inicie el siguiente paso de la siguiente iteración. ● DSDM puede utilizarse en proyectos de ampliación de sistemas TI pero también podría utilizarse para proyectos de cambio de algún sistema aunque no sea TI. ● La evaluación de riesgo debe estar enfocada en entregar funcionalidad de negocio y no en el proceso de desarrollo. ● La estimación debe estar basada en funcionalidad del negocio no en líneas de código. ● La gestión recompensa la entrega continua de productos antes que la consecución de tareas. Proceso DSDM reconoce que los proyectos son limitados por el tiempo y los recursos, y los planes según las necesidades de la empresa. Para alcanzar sus metas, DSDM favorece el uso del RAD con el consecuente riesgo de que demasiadas partes estén sin definir correctamente y esto lleve a errores. DSDM aplica algunos principios, roles, y técnicas en las 5 fases en las que define la construcción de un sistema: 1. Estudio de viabilidad: Estudia la factibilidad del proyecto en una pequeña fase que propone DSDM para determinar si la metodología se ajusta éste. se realiza un estudio de los requisitos humanos materiales y financieros y los problemas de la empresa o el cliente. 7
  • 8. 2. Estudio de la empresa: Durante el estudio del negocio se involucra al cliente para tratar de entender la operatoria que el sistema deberá automatizar. Este estudio sienta las bases para iniciar el desarrollo, definiendo las características de alto nivel que deberá contener el software, es decir, planifica la base de las actividades de la empresa. 3. Iteración del modelo funcional: Se inician las iteraciones en las que se describirán en detalle las características definidas en la fase anterior, planteando un modelo previo que de solución aceptable a la problemática. Esta es la etapa de diseño. 4. Diseño e iteración de la estructura: Se realizará el diseño de los mismos codificando el modelo diseñado, se construirán los componentes de software, se prueba paralelamente la calidad del producto y se documenta el manual de usuario y técnico. 5. Implementación: Entrega del producto al cliente o usuario final. Cuando éste de su aprobación se implantará el sistema en producción. La primera y segunda fase son secuenciales y, por lo tanto, realizadas una única vez al principio del proyecto para analizar la factibilidad desde el punto de vista del negocio del desarrollo, las demás fases presentan las características del modelo iterativo e incremental ya tratado. Imagen 2. Diagrama de procesos de DSDM DSDM aproxima las iteraciones como “timeboxes”. Una “timebox” dura un periodo predefinido de tiempo y la iteración debe finalizar dentro de la “timebox” que suele durar desde unos días hasta unas pocas semanas. 8
  • 9. Sin embargo, lo que diferencia a DSDM de otros modelos son los principios alrededor de los cuales se estructura, tratados en el apartado anterior, y que hacen énfasis en los equipos de desarrollo, en el feedback con el cliente y en las entregas frecuentes de productos. Posibles integraciones Es posible integrar DSDM con otros métodos para complementar el desarrollo del proyecto. Entre ellos tenemos el Proceso Unificado de Rational (RUP), Programación Extrema (XP), y Proyectos en ambientes controlados (PRINCE2), Otro método ágil que tiene semejanzas proceso y concepto con DSDM es Scrum. Entre DSDM y RUP se puede crear una fuerte unión, RUP podría considerarse una implementación de DSDM. RUP está más orientado a la arquitectura y a la calidad y DSDM tiene como objetivo el desarrollo rápido de aplicaciones, sin embargo, esto no impide combinarlos, incluso se pueden relacionar todas las fases y artefactos de RUP con los de DSDM. Al combinarse podemos obtener un sistema con una arquitectura fuertemente definida en un tiempo récord. 9
  • 10. FDD: Feature Driven development Es un proceso ágil diseñado por Peter Coad, Eric Lefebvre y Jeff DeLuca. Se basa en un proceso iterativo con iteraciones cortas que producen un software funcional que el cliente y la dirección de la empresa pueden ver y monitorizar. Estas iteraciones se deciden en base a features o funcionalidades, que son pequeñas partes del software con significado para el cliente. A diferencia de otros procesos ágiles no cubre todo el ciclo de vida sino sólo las fases de diseño y construcción. No requiere un modelo específico de proceso y se complementa con otras metodologías. Enfatiza cuestiones de calidad y define claramente entregas tangibles y formas de evaluación del progreso. Características FDD consiste en cinco procesos secuenciales durante los cuales se diseña y construye el sistema. Cada fase del proceso tiene un criterio de entrada, tareas, pruebas y una salida. Desarrollo de un modelo general: Cuando comienza el desarrollo, los expertos de dominio están al tanto de la visón, el contexto y los requerimientos del sistema a construir. A esta altura se espera que existan requerimientos tales como casos de uso o especificaciones funcionales. Los expertos de dominio presentan un ensayo más en el que los miembros del equipo y el arquitecto jefe se informan de la descripción de alto nivel del sistema. El dominio general se subdivide en áreas más específicas y se define un ensayo más detallado para cada uno de los miembros del dominio. Luego, un equipo de desarrollo trabaja en pequeños grupos para producir modelos de objetos de cada área de dominio. Simultáneamente, se construye un gran modelo general para todo el sistema. Construcción de la lista de rasgos: Los ensayos, modelos de objeto y documentación de requerimientos proporcionan la base para construir una amplia lista de rasgos. Estos rasgos son pequeños ítems útiles a los ojos del cliente. La lista de rasgos es revisada por los usuarios y patrocinadores para asegurar su validez y exhaustividad, los rasgos que requieran de más de diez días se descomponen en otros más pequeños. Planeamiento por rasgos: Incluye la creación de un plan de alto nivel, en el que los conjuntos de rasgos se ponen en secuencia conforme a su prioridad y dependencia, y se asigna a los programadores jefes. Diseño por rasgos y Construcción por rasgos: Se selecciona un pequeño conjunto de rasgos del conjunto, y los propietarios de clases seleccionan los correspondientes equipos dispuestos por rasgos. Se procede luego iterativamente hasta que se producen los rasgos seleccionados. Una iteración puede tomar de unos pocos días un máximo de dos semanas. El proceso iterativo incluye inspección de diseño, codificación, pruebas unitarias, integración e inspección de código. 10
  • 11. Miremos una representación gráfica del proceso iterativo que involucran estas dos últimas fases: Imagen 3. Flujo de los procesos en FDD Roles Key Roles / Roles claves ○ Project Manager / Director del Proyecto: Es el líder administrativo y financiero del proyecto. También protege al equipo de situaciones externas. ○ Chief Architect / Arquitecto jefe: Se encarga del diseño global del sistema y de la ejecución de todas las etapas. ○ Development Manager / Director de desarrollo: Lleva diariamente las actividades de desarrollo, resuelve conflictos en el equipo y resuelve problemas referentes a recursos. ○ Chief Programmer / Programador Jefe: Analiza los requerimientos, diseña el proyecto y selecciona las funcionalidades a desarrollar de la última fase del FDD. ○ Class Owner / Propietario de clases: Responsable del desarrollo de las clases que se le asignaron como propias. Participa en la decisión de que clase será incluida en la lista de funcionalidades de la próxima iteración. ○ Expertos de dominio: Puede ser un usuario, un cliente, analista o una mezcla de estos. También poseen el conocimiento de los requerimientos del sistema. Y pasa el conocimiento a los desarrolladores para que se asegure la entrega de un sistema completo. Supporting Roles / Roles de soporte ○ Domain Manager: Lidera al grupo de expertos del dominio y resuelve sus diferencias de opinión concernientes a los requerimientos del sistema. 11
  • 12. Release Manager: Controla el avance del proceso mediante la revisión de los reportes del Chief Programmer. Y reporta resultados obtenidos semanalmente al gerente, al cliente donde incluye el porcentaje de avance de cada feature. ○ Language Lawyer / Guru del Lenguaje: Es el responsable de poseer un vasto conocimiento en, por ejemplo, un lenguaje específico de programación o tecnología. Este rol es fundamental cuando se trabaja una nueva tecnología. ○ Build Engineer / Ingeniero de construcción: Es el responsable de preparar, mantener y correr el proceso de construcción. También realiza el mantenimiento de las versiones y la publicación de la documentación. ○ Toolsmith / Herramentista: Construye herramientas específicas para el desarrollo, conversión de datos y testeo. Puede trabajar en la preparación y mantenimiento tanto de bases de datos o sitios web destinados al proyecto. ○ System Administrator / Administrador del sistema: Configura, administra y repara los servidores, estaciones de trabajo y equipos de desarrollo y testeo utilizados por el equipo. Additional Roles / Roles adicionales ○ Tester: Verifica que el sistema recién creado cumpla con los requerimientos del cliente. Y puede llegar a ser una persona independiente del equipo del proyecto. ○ Deployer: Es el encargado de convertir la información existente requerida por el nuevo sistema. Participa en el lanzamiento de los nuevos productos. ○ Technical Writer / Escritor de documentos técnicos: Prepara documentación para los usuarios, que pueden formar parte o no del equipo del proyecto. Artefactos El Release Manager se reúne con los Chief Programmers para que éstos reporten como es el avance de las tareas. En esta reunión, que tiene una duración de 30 minutos o menos, cada Chief Programmer informa de manera verbal el avance de sus features. Hacer esto de forma verbal es bueno para que cada uno de los Chief Programmers se tome el tiempo de escuchar a los otros y saber dónde están situados los demás en el proceso de desarrollo. Al final de la entrevista, el release manager anota los resultados, actualiza la base de datos y genera los reportes. El release manager reporta los resultados obtenidos semanalmente, tanto para el equipo, para el cliente y para el Project Manager. Para los clientes y los gerentes, el reporte debe incluir el porcentaje de avance de cada feature. Para el equipo se informa cual es el desempeño del mismo. Prácticas FDD consiste en establecer "mejores prácticas" y los desarrolladores del método argumentan que a pesar de que las prácticas seleccionadas no son nuevas, la mezcla específica de estos ingredientes hacen a los cinco procesos FDD únicos para cada caso. Palmer y Felsing también argumentan que todas las prácticas disponibles deben ser utilizadas para obtener el mayor beneficio del método y no que una única práctica domine todo el proceso (2002). FDD consiste en las siguientes prácticas: 12
  • 13. Dominio de modelado de objetos: exploración y explicación del dominio del problema. Los resultados se dan en un marco donde las características se añaden. ● El desarrollo por función: El cliente valora las funciones, desarrollando y siguiendo los progresos a través de una lista de pequeñas funcionalidades descompuestas. ● Propiedad de clase individual (código): Cada clase tiene una sola persona elegida para ser la responsable de la consistencia, rendimiento e integridad conceptual de la clase. ● Características de los equipos: Se refiere a pequeños equipos formados dinámicamente. ● Inspección: Se refiere a la utilización de los mecanismos de detección de defectos más conocidos. ● Construcciones regulares: se refiere a asegurar que siempre hay un sistema en funcionamiento, demostrable y disponible. Las construcciones regulares forman la línea base a la que se añaden nuevas funciones. ● Gestión de la configuración: Permite la identificación y el seguimiento histórico de las últimas versiones de cada archivo de código fuente completo. ● Los informes de progreso: Se informa del progreso basado en el trabajo completado a todos los niveles organizativos necesarios. El equipo del proyecto debe poner todas las prácticas anteriores en uso con el fin de cumplir con las normas de desarrollo del FDD. Sin embargo, al equipo se le permite adaptarlas de acuerdo a su nivel de experiencia. 13
  • 14. Crystal: (Crystal Clear) Crystal es una metodología de desarrollo de software ágil, aunque más bien se la considera un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que forman parte del equipo y en la reducción al máximo del número de artefactos producidos. El equipo de desarrollo se considera un factor clave en esta metodología, por lo que se deben invertir esfuerzos en mejorar las habilidades y destrezas, así como tener políticas de trabajo en equipo bien definidas. Estas políticas dependerán del número de personas que formen el equipo, estableciéndose una clasificación por colores, por ejemplo Crystal Clear (3 a 8 personas, es decir proyectos pequeños) y Crystal Orange (25 a 50 personas). En este trabajo se hablará en concreto de Crystal Clear. Características Las seis características o propiedades de Crystal Clear son las siguientes: 1. Entrega frecuente. Se trata de entregar software a los clientes de forma frecuente, no solamente cuando el proyecto está acabado. La frecuencia dependerá del proyecto, puede ser diaria, semanal o mensual. Lo importante es mantener informado al cliente del estado del sistema. 2. Comunicación osmótica. Todos los miembros del proyecto deben estar juntos en la misma habitación. 3. Mejora reflexiva. Disponer de un tiempo breve (unas pocas horas cada ciertas semanas o una vez al mes) para observar bien el progreso, cotejar ideas y notas, reflexionar y discutir. 4. Seguridad personal. Cuando hay alguna inquietud o problema en el equipo, hablarlo para solucionarlo. 5. Foco. Siempre se debe tener claro lo que se está haciendo en cada momento del proyecto, tener el tiempo y la tranquilidad necesaria para llevarlo a cabo. 6. Fácil acceso a usuarios expertos. Disponer de ayuda y consejo de desarrolladores expertos y con experiencia en proyectos similares. Roles y artefactos ● El patrocinador se encarga de conseguir recursos y de definir el proyecto general. Produce un sólo artefacto: la Misión con Prioridades de Compromiso. ● El equipo como Grupo es responsable de producir dos artefactos: ○ Estructura y los Convenios del Equipo ○ Resultados del Taller de Reflexión ● El coordinador, junto con el equipo, es responsable de la producción de: ○ Mapa de proyecto. ○ Plan de Lanzamiento ○ Estado del proyecto ○ Lista de riesgos 14
  • 15. ○ Plan de Iteración y Estado ○ Visualización del Calendario ● El experto en negocios y el usuario experto; el primero debe conocer las reglas y políticas de la empresa; el segundo debe familiarizarse con el uso del software, sugerir mejoras e ideas, en definitiva, implementar una buena interfaz de cara a los usuarios finales. Juntos son responsables de producir los siguientes artefactos: ○ Lista de Actores-Objetivos ○ Archivos de Casos de Uso y Requerimientos ○ Modelo del Rol de Usuario ● El diseñador jefe es el responsable de producir la Descripción de la Arquitectura. ● El diseñador-programador, junto con el diseñador jefe, son los responsables de los siguientes artefactos: ○ Borradores de Pantallas ○ Modelo Común de Dominio ○ Bocetos de Diseño y Notas ○ Código Fuente ○ Código de Migraciones ○ Pruebas ○ Empaquetación del Sistema Como curiosidad, en la metodología Crystal Clear no tiene cabida un diseñador que no programe. ● El verificador (tester) se encargará de producir Informes de Errores de última hora. ● Por último, el escritor producirá el Manual de Ayuda para el Usuario. Proceso En lugar de la interpretación lineal de los modelos clásicos, que es interpretada en muchos casos como inconvenientes, Cristal Clear enfatiza el proceso como un conjunto de ciclos anidados. En la mayoría de los proyectos se perciben siete ciclos: 1. El proyecto en sí. 2. El ciclo de entrega de una unidad. 3. La iteración (nótese que CC requiere múltiples entregas por proyecto pero no muchas iteraciones por entrega). 4. La semana laboral. 5. El período de integración, de 30 minutos a tres días. 6. El día de trabajo. 7. El fragmento de desarrollo de una sección de código, de pocos minutos a pocas horas. 15
  • 16. Imagen 4. Ciclos anidados de Crystal Clear Prácticas En cuanto a las prácticas o técnicas que se favorecen dentro de esta metodología, podemos mencionar las siguientes: 1. Entrevistas de proyectos. Es costumbre entrevistar a más de un responsable para tener visiones más enriquecedoras y variadas. 2. Talleres de reflexión. El equipo debe descansar de treinta minutos a una hora para reflexionar, discutir sobre posibles problemas y mejoras y organizarse de cara a la siguiente etapa. 3. Planeamiento „Blitz‟. Técnica equivalente al Juego de Planeamiento de XP. Se ponen tarjetas enumeradas en la mesa, con una historia de usuario o función visible en cada una. El grupo simula que no hay dependencias entre ellas, y se alinean en secuencias de desarrollo preferidas. Los programadores escriben en cada tarjeta el tiempo estimado para desarrollar cada función. El patrocinador escribe el orden de prioridades, teniendo en cuenta los tiempos y el valor de negocio de cada función. Las tarjetas se agrupan en iteraciones que se agrupan a su vez en entregas, normalmente no más largas de tres meses. 4. Estimación Delphi con estimaciones de pericia. Se reúnen los expertos y proponen el tamaño del sistema, su tiempo de ejecución, la fecha de entregas y equilibrarlas entregas en paquetes de igual tamaño. 5. Encuentros diarios de pie. Deben ser muy breves, de 5 a 10 minutos. Se trata únicamente de identificar problemas y no de debatir. 6. Miniatura de procesos. Para que así la gente pueda disfrutar de esta metodología sin que les resulte muy pesada. 7. Gráficos de quemado. Se usan también en Scrum. Es una técnica de graficación para descubrir retardos y problemas en el proceso a tiempo, evitando que se descubran demasiado tarde o cuando ya no tengan solución. Para ello se hace una estimación del tiempo que falta para programar lo que queda al ritmo actual. Esta técnica se asocia con la Lista Témpana, llamada así porque se refiere al agregado de tareas u objetos de alta prioridad al principio de las listas de trabajos pendientes, esperando que los demás se hundan debajo de la línea de flotación; los elementos 16
  • 17. que están sobre la línea se entregarán en la iteración siguiente, los que están por debajo en las restantes. Los gráficos de quemado muestran gráficamente la velocidad del proceso. 8. Programación lado a lado. Crystal Clear establece proximidad con los miembros del equipo. Cada persona se enfoca a su propia tarea asignada pero echando un ojo a lo que hace su compañero. Es una ampliación de la Comunicación Osmótica al contexto de la programación, y un contraste a la presión extrema que muchos consideran a la programación en pares de XP. 17
  • 18. AUP: Agile Unified Process Características Es un enfoque al desarrollo de software basado en el Rational Unified Process (RUP) de IBM. El ciclo de vida de AUP es en serie a lo grande e iterativo en lo pequeño, liberando artefactos incrementales en el tiempo. El AUP consta de 7 flujos de trabajo o disciplinas: Modelado, Implementación, Prueba, Despliegue, Gestión de configuración, Gestión de proyectos y Ambiente. - Modelado: Tiene como objetivo entender el negocio, entender cuál es el problema que se va a abordar e identificar las posibles soluciones viables para dicho problema. - Implementación: El objetivo de esta disciplina es transformar el modelo en código y realizar pruebas básicas sobre él. - Prueba: Tiene como meta evaluar una evaluación de los objetivos y encontrar defectos para mejorar la calidad. Se encarga también de verificar si el sistema funciona correctamente. - Despliegue: Su objetivo es ejecutar un plan para que el sistema esté a disposición de los usuarios. - Administración de la configuración: Su meta es administrar el acceso a los artefactos del proyecto. Lleva un registro de las versiones del producto y controla los cambios que ocurran. - Administración del proyecto: Tiene el objetivo de administrar los riesgos, la asignación de tareas, el seguimiento de los procesos y coordinar con las personas fuera del proyecto para facilitar que acabe a tiempo y sin pasar el presupuesto. - Entorno: Apoya los esfuerzos para garantizar la disponibilidad de los procesos, normas y herramientas cuando sea necesario. También consta de 4 fases del ciclo de desarrollo: - Inicio: se trata de identificar el alcance y dimensión del proyecto, su arquitectura y el presupuesto junto con su aprobación por parte de aquellos que pertenecen al proyecto. Como hito de esta fase obtenemos los objetivos de ciclo de vida. - Elaboración: en esta fase se prueba y se confirma la arquitectura del sistema. Como hito obtenemos la arquitectura del ciclo de vida. - Construcción: esta fase consiste en la construcción del software sobre la base incremental siguiendo unas prioridades impuestas por los implicados en el proyecto o por los propios usuarios. Como hito obtenemos la capacidad operacional inicial. - Transición: esta fase tiene el objetivo de validar e implantar el sistema en el entorno de producción. Como hito tenemos la liberación del producto. 18
  • 19. Roles - Administrador de bases de datos: trabaja con los miembros del equipo del proyecto para diseñar, probar y dar soporte a los esquemas de datos. Trabaja dentro de la disciplina de implementación. - Modelador: se encarga de crear modelos (dibujos, archivos, etc) de manera colaborativa y evolutiva. Trabaja dentro de las disciplinas de modelado e implementación. - Administrador de la configuración: se encarga de la infraestructura del medio donde trabaja el equipo de desarrollo. Forma parte de la disciplina de administración de configuración. - Implementador: es el encargado de poner el software a punto para la preproducción. Su parte se desarrolla dentro de la disciplina de desarrollo. - Desarrollador: escribe el código, lo prueba y construye el software. Trabaja en las disciplinas de modelado, implementación y desarrollo. - Especialista del proceso: desarrolla, adapta y apoya el material de los procesos de organización. Trabaja en la disciplina de entorno. - Administrador del proyecto: se encarga de administrar los miembros de los equipos de trabajo, maneja las interacciones entre los involucrados en el proyecto y también se encarga de administrar los recursos y las prioridades. Trabaja dentro de las disciplinas de modelado, pruebas, desarrollo y administración del proyecto. - Examinador: es el miembro que se encarga de someter a evaluación los productos del proyecto. Su trabajo forma parte de la disciplina de pruebas. - Documentador técnico: se encarga de la documentación sobre los materiales, operaciones, mantenimiento y del usuario. Forma parte de la disciplina de desarrollo. - Administrador de pruebas: se encarga de que las pruebas a las que se somete el producto tengan éxito. Forma parte de la disciplina de pruebas. - Equipo de pruebas: son los miembros que se encargan de ejecutar las pruebas y documentar las. Pertenecen a la disciplina de pruebas. - Especialista en herramientas: son los responsables de la elección, adquisición, configuración y mantenimiento de los equipos que se utilizaran durante el proceso. Forma parte de la disciplina de entorno. Artefactos - Sistema: el sistema es el software, hardware y documentación que será liberado a la producción. - Código fuente: es el código de programación para los sistemas. 19
  • 20. - Suite de pruebas de regresión: son casos de prueba con sus respectivos códigos listos para ser ejecutados en un orden predefinido. - Scripts de instalación: código necesario para instalar el sistema en el entorno de preproducción. - Documentación del sistema: es la documentación que fluye junto con el sistema para ayudar a los desarrolladores a mantenerlo actualizado. Contiene las operaciones, soportes y documentación general del sistema. - Notas: son resúmenes que se pasan sobre aquellas modificaciones que se realizan en el proceso de construcción. - Modelado de requerimientos: contiene los requisitos a cumplir, junto con pruebas de aceptación, automatización, modelos de procesos de negocio, reglas, modelos de dominio y organización, glosarios, requisitos técnicos y modelos de UI. - Modelo de diseño: es una descripción del diseño del sistema que contiene modelos de despliegue, objetos, datos físicos y seguridad, así como un resumen del sistema y un modelo de UI. 20
  • 21. Análisis comparativo Similitudes y diferencias Las metodologías ágiles pueden seguir una guía rígida y concreta de la que no hay que salirse, con técnicas muy específicas, como sucede con las metodologías FDD y XP, o por el contrario, seguir una guía flexible y abstracta, con métodos que nos ayudan a obtener el mismo resultado de una manera más eficiente, como es el caso de Crystal. Una de las similitudes que comparten prácticamente todas las metodologías ágiles es que presentan guías ajustables y adaptables ante cambios una vez empezado el proyecto. Crystal es la única excepción. En cuanto a los roles que intervienen en las diferentes metodologías comentadas en los anteriores apartados, se puede decir que no difieren prácticamente, y que en su mayoría los mismos papeles se repiten en todas. Siempre hay un representante del cliente, que normalmente es el que se encarga de comprobar que se van cumpliendo todos los requisitos; un experto en la metodología para guiar al equipo; un gestor del proyecto; y el equipo de desarrolladores (con mayor o menor grado de subdivisiones dentro de esta unidad). En conclusión podemos decir que la asignación de los roles es independiente de la metodología y que tan sólo se van adaptando según el estilo que tenga cada una. Las herramientas usadas por las metodologías ágiles son en general muy comunes, XP es de las pocas que se desvían de esta norma y han introducido novedades, especialmente en lo que se refiere a herramientas en las fases de pruebas (aunque en este trabajo no se habla de XP). La familia de las metodologías Crystal es la única que sugiere explícitamente principios del método de diseño para permitir la adaptación en función del tamaño del proyecto y la criticidad. DSDM se diferencia por usar prototipos y presenta algunos roles no considerados por el resto: ambassador, visionary y advisor (representan diferentes puntos de vista del cliente). FDD no cubre las primeras fases de un proyecto, pues presupone que se ha realizado trabajo anteriormente Ventajas y desventajas DSDM une técnicas de desarrollo y gestión del proyecto en una misma metodología que se centra en conseguir un producto que funcione correctamente en los casos más críticos, por lo que crea un producto en un plazo corto que sólo cubre casos de uso básicos. El equipo de desarrollo toma decisiones sin depender de autorizaciones de sus superiores evitando tiempos de espera y su consecuente pérdida de tiempo, en el 21
  • 22. desarrollo al esperar una aprobación. Sobre todo teniendo en cuenta que los plazos de desarrollo y las iteraciones son cortos períodos de tiempo, punto que tiene la ventaja de prevenir que transcurra mucho tiempo y la tecnología cambie, además de permitir una revisión continua del producto a través de entregas frecuentes de productos. Llegados aquí, gracias a que los cambios son revertibles y verificados es posible volver a un punto anterior y corregir errores detectados. Otra ventaja es la continua realimentación (feedback) entre cliente y desarrolladores que ayuda a obtener un proyecto eficiente y efectivo aunque el desarrollo sea rápido y en tiempo reducido. Como ventajas, FDD tiene que es una metodología de desarrollo ágil, que disminuye el riesgo de los proyectos, pues gracias a sus entregas tangibles cada dos semanas y al constante monitoreo de su calidad, se asegura el firme avance del mismo. Esta metodología utiliza pequeños bloques que contienen la funcionalidad del sistema, llamados features. Estos bloques, que están relacionados entre sí, son organizados en una lista llamada feature set. También permite dejar satisfechos a los desarrolladores, gerentes y clientes sin afectar el proyecto. Esto gracias a un buen manejo de las actividades, a la disminución del riesgo del proyecto y al aseguramiento de la calidad del mismo, respectivamente. FDD presenta su talón de Aquiles en la necesidad de tener en el equipo miembros con experiencia que marquen el camino a seguir desde el principio, con la elaboración del modelo global, puesto que no es tan ágil como otras metodologías. Algunos “agilistas” sienten que FDD es demasiado jerárquico para ser un método ágil, porque demanda un programador jefe, quien dirige a los propietarios de clases, quienes dirigen equipos de rasgos. Otros críticos sienten que la ausencia de procedimientos detallados de prueba en FDD es llamativa e impropia. Los promotores del método aducen que las empresas ya tienen implementadas sus herramientas de prueba, pero subsiste el problema de su adecuación. En cuanto a Crystal Clear podríamos meter en el saco de ventajas que es una de las metodologías más ágiles y flexibles, con gran énfasis en la comunicación (de hecho es lo más importante y crucial) y a los individuos que forman parte del proyecto. Otro punto que se puede considerar ventaja es que se dispone de la figura del “usuario real”, que realiza validaciones sobre la interfaz de usuario, propone ideas para una mejor implementación de cara a los usuarios finales de primera mano y participa en la definición de requerimientos funcionales y no funcionales del software, lo cual implica que se consigue un sistema totalmente preparado y adaptado a los usuarios finales. Este hecho muchas metodologías no lo integran. Como inconveniente podríamos decir que es una metodología que no se puede aplicar a grandes proyectos donde absolutamente todo se debe controlar y donde se deben seguir 22
  • 23. por necesidad instrucciones más disciplinadas y concretas, Crystal Clear es demasiado ágil y abstracta en sus métodos, lo que hace que esta metodología por sí sola sea aplicable en la práctica en casos muy concretos. Adecuación para distinto tipo de aplicaciones DSDM es excelente para proyectos de sistemas de la información con presupuestos limitados y agendas muy ocupadas y apretadas. Puede usarse en proyectos de ampliación de sistemas TI pero también podría utilizarse para proyectos de cambio de algún sistema aunque no sea TI. Proyectos interactivos con funcionalidad visible en la interfaz de usuario FDD se utilizó por primera vez en grandes aplicaciones bancarias a fines de la década de 1990. Los autores sugieren su uso para proyectos nuevos o actualizaciones de sistemas existentes y recomiendan adoptarlo en forma gradual. Un rasgo llamativo de FDD es que no exige la presencia del cliente. Crystal Clear al darle más importancia a los individuos y basarse fundamentalmente el éxito del proyecto en la comunicación cara a cara, es una metodología que únicamente se puede aplicar a proyectos pequeños, de equipos reducidos y menos a 10 personas, pues en proyectos más ambiciosos es fácil que se pase algo por algo, lo que puede ser fatal. En cambio en proyectos menores, donde la gente se conoce más y todos están apoyados unos en otros, es posible llegar a buen puerto con este método tan flexible y menos estresante en comparación con otras metodologías. Esto último en proyectos más grandes y de más importancia es necesario que así sean para poder controlar, por ejemplo, los riesgos críticos a los que se debe enfrentar, algo que Crystal Clear no contempla. Más bien Crystal Clear está pensada para combinarse junto a otras metodologías como XP o Scum. AUP es un método ágil entre XP y RUP que incluye las actividades y herramientas tradicionales. El AUP resulta ser un proceso muy pesado pero en comparación con el RUP es muy simple. 23
  • 24. Bibliografía Introducción Diseño de una Metodología Ágil de Desarrollo de Software - Marcelo Schenone Desarrollo ágil de software - Wikipedia [Imagen 1] DSDM: Dynamic Systems Development Method Método de desarrollo de sistemas dinámicos - Wikipedia Metodología ágil DSDM - Bitácora de Audieman [Imagen 2] Diseño de una Metodología Ágil de Desarrollo de Software - Marcelo Schenone Agile Software Development Methods: Review and Analysis - Abrahamsson, Pekka; Salo, Outi; Ronkainen, Jussi; Warsta, Juhani (PDF/ENG) FDD: Feature Driven development FDD - Wikipedia(Traducido) Presentación FDD (PPT) Procesos ágiles (MSWord) Metodología FDD - Luis Calabria (cátedra) Diseño de una Metodología Ágil de Desarrollo de Software - Marcelo Schenone Agile Software Development Methods: Review and Analysis - Abrahamsson, Pekka; Salo, Outi; Ronkainen, Jussi; Warsta, Juhani (PDF/ENG) Crystal: (Crystal Clear) Diseño de una Metodología Ágil de Desarrollo de Software - Marcelo Schenone Documento sobre la metodología Crystal Crystal Clear Roles and Work Products (ENG) Metodologías ágiles [Imagen 4] Presentación sobre Crystal Clear AUP: Agile Unified Process Gestion de proyectos ágil: Conceptos básicos (PDF) http://www.ecured.cu/index.php/Agile_Unified_Process http://www.ambysoft.com/unifiedprocess/agileUP.html http://wikis.uca.es/wikiCE/index.php/Agile_unified_process http://www.ambysoft.com/downloads/agileUP.zip http://www.adolfo.mex.tl/images/18149/METODOLOGIAS%20AGILES.pdf Análisis comparativo Metodologías ágiles, tesis de master 24