Metodología FDD (Feature Driven Development)

     Es una metodología ágil para el desarrollo de sistemas, basado en la calidad del software, que incluye un monitoreo constante del proyecto.

     FDD fue desarrollado por Jeff De Luca y Peter Coad a mediados de los años 90. Esta metodología se enfoca en iteraciones cortas que permite entregas tangibles del producto en corto periodo de tiempo que como máximo son de dos semanas.

Características
  • 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.
  • 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 resultados periódicos y tangibles.
  • 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.
Procesos:

     El FDD tiene cinco procesos. Los primeros tres se hacen al principio del proyecto.
  • Desarrollar un modelo global: Al inicio del desarrollo se construye un modelo teniendo en cuenta la visión, el contesto y los requisitos que debe tener el sistema a construir. Este modelo se divide en áreas que se analizan detalladamente. Se construye un diagrama de clases por cada área.
  • Construir una lista de los rasgos: Se elabora una lista que resuma las funcionalidades que debe tener el sistema, cuya lista es evaluada por el cliente. Cada funcionalidad de la lista se divide en funcionalidades más pequeñas para un mejor entendimiento del sistema.
  • Planear por rasgo: Se procede a ordenar los conjuntos de funcionalidades conforme a su prioridad y dependencia, y se asigna a los programadores jefes.
  • Diseñar por rasgo: Se selecciona un conjunto de funcionalidades de la lista. Se procede a diseñar y construir la funcionalidad mediante un proceso iterativo, decidiendo que funcionalidad se van a realizar en cada iteración. Este proceso iterativo incluye inspección de diseño, codificación, pruebas unitarias, integración e inspección de código.
  • Construir por Rasgo: se procede a la construcción total del proyecto.
Roles y responsabilidades:

     El equipo de trabajo está estructurado en jerarquías, siempre debe haber un jefe de proyecto, y aunque es un proceso considerado ligero también incluye documentación (la mínima necesaria para que algún nuevo integrante pueda entender el desarrollo de inmediato).
  • Director del Proyecto: Líder administrativo y financiero del proyecto. Protege al equipo de situaciones externas.
  • Arquitecto jefe: Realiza el diseño global del sistema. Ejecución de todas las etapas.
  • Director de desarrollo: Lleva diariamente las actividades de desarrollo. Resuelve conflictos en el equipo. Resuelve problemas referentes a recursos.
  • Programador Jefe: Analiza los requerimientos. Diseña el proyecto. Selecciona las funcionalidades a desarrollar de la última fase del FDD.
  • 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.
Veamos un poco más sobre la metodología FDD:





Metodologías ágiles

Copyright @ 2013 Metodología de Desarrollo de Software. Designed by Templateism | MyBloggerLab Editado por: Georgelys Marcano

Síguenos

en las RRSS