SlideShare una empresa de Scribd logo
1 de 29
FDD: Feature Driven Development
  Desarrollo Basado en
    Funcionalidades

       Sarah Gutiérrez
       Hernán Zapata
      Juan Pablo Arias
      Cristian Zambrano
FDD
 Es un proceso ágil para el desarrollo de
  sistemas.
 Fue diseñado por Peter Coad, Eric Lefebvre y
  Jeff DeLuca.
 No hace énfasis en la obtención de los
  requerimientos sino en como se realizan las
  fases de diseño y construcción.
 Se preocupa por la calidad, por lo que incluye
  un monitoreo constante del proyecto.
FDD
 Ayuda a contrarrestar situaciones como el
  exceso en el presupuesto, fallas en el
  programa o el hecho de entregar menos
  de lo deseado.
 Propone tener etapas de cierre cada dos
  semanas.
 Se obtienen resultado periódicos y
  tangibles.
FDD
 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
  monitoriar.
 Define claramente entregas tangibles y
  formas de evaluación del progreso del
  proyecto.
Proceso
 El proceso consiste de cinco pasos
 secuénciales durante los cuales se diseña
 y se construye el sistema:
    Desarrollo de un modelo global.
    Construcción de una lista de funcionalidades.
    Planeación por funcionalidad.
    Diseño por funcionalidad.
    Construcción por funcionalidad.
Proceso
Descripción del Proceso(1)
 Desarrollo de un modelo global:
    Cuando comienza el desarrollo, los expertos del
     dominio están al tanto de la visión, el contexto y
     los requerimientos del sistema a construir.
    Se divide el dominio global en áreas que son
     analizadas detalladamente.
    Los desarrolladores construyen un diagrama de
     clases o de objetos por cada área.
    Se construye un modelo global del sistema.
Descripción del Proceso(2)
 Construcción de una lista de funcionalidades:
   Una funcionalidad es un ítem útil a los ojos del
    cliente.
      Se elabora una lista de funcionalidades que resuma la
       funcionalidad general del sistema.
      La lista es elaborada por los desarrolladores y es evaluada
       por el cliente.
      Se divide la lista en subconjuntos según la afinidad y la
       dependencia de las funcionalidades.
      La lista es finalmente revisada por los usuarios y los
       responsables para su validación y aprobación.
Descripción del Proceso(3)

Planeación por funcionalidad:
   En este punto se procede a
    ordenar los conjuntos de
    funcionalidades conforme a su
    prioridad y dependencia, y se
    asigna a los programadores jefes.
Descripción del Proceso(4)
 Diseño por funcionalidades y
 Construcción por funcionalidades:
    Se selecciona un conjunto de funcionalidades de
      la lista.
    Se procede a diseñar y construir la funcionalidad
      mediante un proceso iterativo.
     Una iteración puede tomar de unos pocos días a

      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.

    Miremos una representación gráfica del proceso
      iterativo que involuclan estas dos últimas fases:
Roles y Responsabilidades
Categorías

 Key Roles / Roles claves


 Supporting Roles / Roles de soporte


 Additional Roles / Roles adicionales
Key Roles / Roles claves
 Project
        Manager / Director del
 Proyecto:
 * Lider administrativo y financiero del proyecto.
 * Protege al equipo de situaciones externas.
 Chief   Architect / Arquitecto jefe:
 * Diseño global del sistema.
 * Ejecución de todas las etapas.
 Development        Manager / Director de
 desarrollo
 * Lleva diariamente las actividades de desarrollo.
* Resuelve conflictos en el equipo.
 * Resuelve problemas referentes a recursos.
 Chief   Programmer / Programador Jefe
 * Analiza los requerimientos.
 * Diseña el proyecto.
 * Selecciona las funcionalidades a desarrollar de la
 ultima 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.
 * Poseen el conocimiento de los requerimientos del
 sistema.
 * 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.
 * Resuelve sus diferencias de opinión concernientes a
 los requerimientos del sistema.
 Release    Manager
 * Controla el avance del proceso mediante la revisión
 de los reportes del Chief Programmer.
 * Reporta resultados obtenidos semanalmente al
 gerente, al cliente donde incluye el porcentaje de
 avance de cada feature.
 Language     Lawyer / Guru del Lenguaje
 * Responsable de poseer un vasto conocimiento en,
 por ejemplo, un lenguaje específico de programación
 o tecnología.
 * Es muy importante cuando se trabaja una nueva
 tecnología.
 Build
      Engineer / Ingeniero de
 construcción
 * Responsable de preparar, mantener y correr el
 proceso de construcción.
 * Realiza el mantenimiento de las versiones y la
 publicación de la documentación.
 Toolsmith    / Herramentista
 * Rol para la construcción de 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.
 * 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 / Escritores de documentos
 tecnicos
 * Prepara la documentación para los usuarios, que pueden
 formar parte o no del equipo del proyecto.
Comparación
Puesto que todos los procesos se
centran en la producción de
software   es    deseable   una
comparación, no en su conjunto,
sino según los medios que
emplean y sus resultados.
Realizamos una comparación
entre FDD, RUP y XP.
   Tamaño de los equipos : RUP esta pensado para
    proyectos y equipos grandes, en cuanto a tamaño y
    duración. FDD y XP se implementan mejor para
    proyectos cortos y equipos más pequeños, siendo
    quizás FDD más escalable que XP.
   Obtención de requisitos: RUP y XP crean como
    base UseCases y UserStories, por lo contrario FDD no
    define explícitamente esa parte del proyecto sobre la
    adquisición de requisitos.
   Evaluación del estado del proyecto: FDD es
    posiblemente el proceso más adecuado para definir
    métricas que definan el estado del proyecto, puesto que
    al dividirlos en unidades pequeñas es bastante sencillo
    hacer un seguimiento de las mismas.
XP también define esos componentes pequeños. RUP
    por su parte, es tan grande y complejo en este sentido
    como en el resto, por lo que manejar el volumen de
    información que puede generar requiere mucho tiempo.
   Carga de trabajo : XP es un proceso ligero, esto
    es, que los creadores del proceso han tenido cuidado de
    no poner demasiadas tareas organizativas sobre los
    desarrolladores. RUP es un proceso pesado, basado
    mucho en la documentación, en la que no son deseables
    todos esos cambios volátiles. FDD es por su parte un
    proceso intermedio, en el sentido de que genera más
    documentación que XP pero menos que RUP.
   Relación con el cliente: Con RUP se presentarán al
    cliente los artefactos del final de una fase, en
    contrapartida, la aseguración de la calidad en XP y FDD
    no se basa en formalismos en la documentación, si no
    en controles propios y una comunicación fluida con el
    cliente.
   Conocimiento sobre la arquitectura: En RUP se
    intentará reducir la complejidad del software a producir a
    través de una planificación intensiva. En XP se
    conseguirá a través de la programación a pares que ya
    en la creación del código se puedan evitar errores y
    malos diseños. En FDD sin embargo se usan las
    sesiones de trabajo conjuntas en fase de diseño para
    conseguir una arquitectura sencilla y sin errores
    Puntos flacos:
1.   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 podría serlo XP.
2.   Para el desarrollo de software por medio de equipos
     pequeños (hasta unas diez personas) es RUP
     definitivamente muy grande y practicamente
     inalcanzable. Se deben repartir 31 roles y generar más
     de 100 artefactos distintos.
3.   XP es un proceso muy orientado a la implementación.
     Lo que es muy poco deseable en XP es el hecho de
     evitar cualquier tipo de documentación fuera del
     código fuente (UML juega un papel prácticamente
     nulo, por ejemplo).
Conclusiones
 FDD, es una metodología de desarrollo ágil, que
  disminuye el riesgo de los proyectos, pues
  gracias a sus entregas tangibles y a el constante
  monitoreo de su calidad, se asegura el firme
  avance del mismo.
 FDD, 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.
 En conclusión FDD:
    Ayuda al equipo a producir resultados periódicos y
     tangibles.
    Esta metodología utiliza pequeños bloques llamados
     features, los cuales contienen la funcionalidad del
     sistema.
    Organiza los bloques que están relacionados entre
     sí, en una lista llamada feature set.
    Hace énfasis en la obtención de resultados cada
     dos semanas.
    Asegura en gran parte la calidad del software
     entregado.
    Es adaptativo, pues permite realizar cambios de
     último momento debido a nuevos requerimientos y
     a las necesidades del negocio.

Más contenido relacionado

La actualidad más candente

Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoCoesi Consultoria
 
Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrolloitsarellano
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de softwaremonik1002
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de SoftwareGustavo Bazan Maal
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp deborahgal
 
Métricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de softwareMétricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de softwareLorena Quiñónez
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareantonio
 
Cuadro comparativo metodos
Cuadro comparativo metodosCuadro comparativo metodos
Cuadro comparativo metodosivansierra20
 
Análisis y especificación de requerimientos
Análisis y especificación de requerimientosAnálisis y especificación de requerimientos
Análisis y especificación de requerimientosFranklin Parrales Bravo
 
Ejemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdenciesEjemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdenciesMICProductivity
 
Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareEvelinBermeo
 
Fundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresFundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresLuis Eduardo Pelaez Valencia
 

La actualidad más candente (20)

Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
 
Tabla comparativa- metodologías de desarrollo
Tabla comparativa-  metodologías de desarrolloTabla comparativa-  metodologías de desarrollo
Tabla comparativa- metodologías de desarrollo
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Metodología Clásica
Metodología ClásicaMetodología Clásica
Metodología Clásica
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 
Diferencias entre scrum y xp
Diferencias entre scrum y xp Diferencias entre scrum y xp
Diferencias entre scrum y xp
 
Modelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiralModelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiral
 
Métricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de softwareMétricas de Proceso y proyecto de software
Métricas de Proceso y proyecto de software
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
Cuadro comparativo metodos
Cuadro comparativo metodosCuadro comparativo metodos
Cuadro comparativo metodos
 
Análisis y especificación de requerimientos
Análisis y especificación de requerimientosAnálisis y especificación de requerimientos
Análisis y especificación de requerimientos
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Ieee 1074
Ieee 1074Ieee 1074
Ieee 1074
 
Ejemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdenciesEjemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdencies
 
Modelos Prescriptivos de Proceso
Modelos Prescriptivos de ProcesoModelos Prescriptivos de Proceso
Modelos Prescriptivos de Proceso
 
Rup (iteraciones)
Rup (iteraciones)Rup (iteraciones)
Rup (iteraciones)
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de Software
 
Fundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y EstándaresFundamentos de Calidad del Software - Modelos y Estándares
Fundamentos de Calidad del Software - Modelos y Estándares
 

Similar a Presentacion fdd

Similar a Presentacion fdd (20)

Desarrollo guiado por caracteristicas ingenieria de software
Desarrollo guiado por caracteristicas ingenieria de softwareDesarrollo guiado por caracteristicas ingenieria de software
Desarrollo guiado por caracteristicas ingenieria de software
 
Apuntes
ApuntesApuntes
Apuntes
 
Investigación de modelos
Investigación de modelos Investigación de modelos
Investigación de modelos
 
RUP
RUPRUP
RUP
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Rup vs. xp
Rup vs. xpRup vs. xp
Rup vs. xp
 
Comparación de dos Metodologias
Comparación de dos MetodologiasComparación de dos Metodologias
Comparación de dos Metodologias
 
METODOLOGIAS AGILES
METODOLOGIAS AGILESMETODOLOGIAS AGILES
METODOLOGIAS AGILES
 
Fundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdfFundamentos de ingenieria de software - metodologias.pdf
Fundamentos de ingenieria de software - metodologias.pdf
 
Sesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de softwareSesión 3: Modelos prescriptivos de proceso de software
Sesión 3: Modelos prescriptivos de proceso de software
 
Presentacion grupo8
Presentacion grupo8Presentacion grupo8
Presentacion grupo8
 
Proceso desarrollo software
Proceso desarrollo softwareProceso desarrollo software
Proceso desarrollo software
 
prueva
pruevaprueva
prueva
 
Principios del RUP
Principios del RUPPrincipios del RUP
Principios del RUP
 
1. ciclo de_vida_de_software
1. ciclo de_vida_de_software1. ciclo de_vida_de_software
1. ciclo de_vida_de_software
 
Rup
RupRup
Rup
 
Rup entrega final
Rup entrega finalRup entrega final
Rup entrega final
 
Rup entrega final
Rup entrega finalRup entrega final
Rup entrega final
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 

Presentacion fdd

  • 1. FDD: Feature Driven Development Desarrollo Basado en Funcionalidades Sarah Gutiérrez Hernán Zapata Juan Pablo Arias Cristian Zambrano
  • 2. FDD  Es un proceso ágil para el desarrollo de sistemas.  Fue diseñado por Peter Coad, Eric Lefebvre y Jeff DeLuca.  No hace énfasis en la obtención de los requerimientos sino en como se realizan las fases de diseño y construcción.  Se preocupa por la calidad, por lo que incluye un monitoreo constante del proyecto.
  • 3. FDD  Ayuda a contrarrestar situaciones como el exceso en el presupuesto, fallas en el programa o el hecho de entregar menos de lo deseado.  Propone tener etapas de cierre cada dos semanas.  Se obtienen resultado periódicos y tangibles.
  • 4. FDD  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 monitoriar.  Define claramente entregas tangibles y formas de evaluación del progreso del proyecto.
  • 5. Proceso  El proceso consiste de cinco pasos secuénciales durante los cuales se diseña y se construye el sistema: Desarrollo de un modelo global. Construcción de una lista de funcionalidades. Planeación por funcionalidad. Diseño por funcionalidad. Construcción por funcionalidad.
  • 7. Descripción del Proceso(1)  Desarrollo de un modelo global: Cuando comienza el desarrollo, los expertos del dominio están al tanto de la visión, el contexto y los requerimientos del sistema a construir. Se divide el dominio global en áreas que son analizadas detalladamente. Los desarrolladores construyen un diagrama de clases o de objetos por cada área. Se construye un modelo global del sistema.
  • 8. Descripción del Proceso(2)  Construcción de una lista de funcionalidades:  Una funcionalidad es un ítem útil a los ojos del cliente.  Se elabora una lista de funcionalidades que resuma la funcionalidad general del sistema.  La lista es elaborada por los desarrolladores y es evaluada por el cliente.  Se divide la lista en subconjuntos según la afinidad y la dependencia de las funcionalidades.  La lista es finalmente revisada por los usuarios y los responsables para su validación y aprobación.
  • 9. Descripción del Proceso(3) Planeación por funcionalidad: En este punto se procede a ordenar los conjuntos de funcionalidades conforme a su prioridad y dependencia, y se asigna a los programadores jefes.
  • 10. Descripción del Proceso(4)  Diseño por funcionalidades y Construcción por funcionalidades: Se selecciona un conjunto de funcionalidades de la lista. Se procede a diseñar y construir la funcionalidad mediante un proceso iterativo.  Una iteración puede tomar de unos pocos días a 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. Miremos una representación gráfica del proceso iterativo que involuclan estas dos últimas fases:
  • 11.
  • 12.
  • 13.
  • 15. Categorías  Key Roles / Roles claves  Supporting Roles / Roles de soporte  Additional Roles / Roles adicionales
  • 16. Key Roles / Roles claves  Project Manager / Director del Proyecto: * Lider administrativo y financiero del proyecto. * Protege al equipo de situaciones externas.  Chief Architect / Arquitecto jefe: * Diseño global del sistema. * Ejecución de todas las etapas.  Development Manager / Director de desarrollo * Lleva diariamente las actividades de desarrollo.
  • 17. * Resuelve conflictos en el equipo. * Resuelve problemas referentes a recursos.  Chief Programmer / Programador Jefe * Analiza los requerimientos. * Diseña el proyecto. * Selecciona las funcionalidades a desarrollar de la ultima 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.
  • 18.  Expertos de dominio * Puede ser un usuario, un cliente, analista o una mezcla de estos. * Poseen el conocimiento de los requerimientos del sistema. * Pasa el conocimiento a los desarrolladores para que se asegure la entrega de un sistema completo.
  • 19. Supporting roles / Roles de soporte  Domain Manager * Lidera al grupo de expertos del dominio. * Resuelve sus diferencias de opinión concernientes a los requerimientos del sistema.  Release Manager * Controla el avance del proceso mediante la revisión de los reportes del Chief Programmer. * Reporta resultados obtenidos semanalmente al gerente, al cliente donde incluye el porcentaje de avance de cada feature.
  • 20.  Language Lawyer / Guru del Lenguaje * Responsable de poseer un vasto conocimiento en, por ejemplo, un lenguaje específico de programación o tecnología. * Es muy importante cuando se trabaja una nueva tecnología.  Build Engineer / Ingeniero de construcción * Responsable de preparar, mantener y correr el proceso de construcción. * Realiza el mantenimiento de las versiones y la publicación de la documentación.
  • 21.  Toolsmith / Herramentista * Rol para la construcción de 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.
  • 22. Additional roles / Roles adicionales  Tester * Verifica que el sistema recién creado cumpla con los requerimientos del cliente. * 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 / Escritores de documentos tecnicos * Prepara la documentación para los usuarios, que pueden formar parte o no del equipo del proyecto.
  • 23. Comparación Puesto que todos los procesos se centran en la producción de software es deseable una comparación, no en su conjunto, sino según los medios que emplean y sus resultados. Realizamos una comparación entre FDD, RUP y XP.
  • 24. Tamaño de los equipos : RUP esta pensado para proyectos y equipos grandes, en cuanto a tamaño y duración. FDD y XP se implementan mejor para proyectos cortos y equipos más pequeños, siendo quizás FDD más escalable que XP.  Obtención de requisitos: RUP y XP crean como base UseCases y UserStories, por lo contrario FDD no define explícitamente esa parte del proyecto sobre la adquisición de requisitos.  Evaluación del estado del proyecto: FDD es posiblemente el proceso más adecuado para definir métricas que definan el estado del proyecto, puesto que al dividirlos en unidades pequeñas es bastante sencillo hacer un seguimiento de las mismas.
  • 25. XP también define esos componentes pequeños. RUP por su parte, es tan grande y complejo en este sentido como en el resto, por lo que manejar el volumen de información que puede generar requiere mucho tiempo.  Carga de trabajo : XP es un proceso ligero, esto es, que los creadores del proceso han tenido cuidado de no poner demasiadas tareas organizativas sobre los desarrolladores. RUP es un proceso pesado, basado mucho en la documentación, en la que no son deseables todos esos cambios volátiles. FDD es por su parte un proceso intermedio, en el sentido de que genera más documentación que XP pero menos que RUP.
  • 26. Relación con el cliente: Con RUP se presentarán al cliente los artefactos del final de una fase, en contrapartida, la aseguración de la calidad en XP y FDD no se basa en formalismos en la documentación, si no en controles propios y una comunicación fluida con el cliente.  Conocimiento sobre la arquitectura: En RUP se intentará reducir la complejidad del software a producir a través de una planificación intensiva. En XP se conseguirá a través de la programación a pares que ya en la creación del código se puedan evitar errores y malos diseños. En FDD sin embargo se usan las sesiones de trabajo conjuntas en fase de diseño para conseguir una arquitectura sencilla y sin errores
  • 27. Puntos flacos: 1. 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 podría serlo XP. 2. Para el desarrollo de software por medio de equipos pequeños (hasta unas diez personas) es RUP definitivamente muy grande y practicamente inalcanzable. Se deben repartir 31 roles y generar más de 100 artefactos distintos. 3. XP es un proceso muy orientado a la implementación. Lo que es muy poco deseable en XP es el hecho de evitar cualquier tipo de documentación fuera del código fuente (UML juega un papel prácticamente nulo, por ejemplo).
  • 28. Conclusiones  FDD, es una metodología de desarrollo ágil, que disminuye el riesgo de los proyectos, pues gracias a sus entregas tangibles y a el constante monitoreo de su calidad, se asegura el firme avance del mismo.  FDD, 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.
  • 29.  En conclusión FDD: Ayuda al equipo a producir resultados periódicos y tangibles. Esta metodología utiliza pequeños bloques llamados features, los cuales contienen la funcionalidad del sistema. Organiza los bloques que están relacionados entre sí, en una lista llamada feature set. Hace énfasis en la obtención de resultados cada dos semanas. Asegura en gran parte la calidad del software entregado. Es adaptativo, pues permite realizar cambios de último momento debido a nuevos requerimientos y a las necesidades del negocio.