miércoles, 14 de noviembre de 2012

5 Preguntas y respuestas sobre el Feature Driven Development (FDD)

Imagen de: Picasa Web Albums
El Feature Driven Development (FDD) o “Desarrollo Enfocado por Funcionalidades”, es un método de desarrollo de software iterativo e incremental, que cuenta con comunidades de seguidores al igual que otros métodos como RUP, Scrum, XP, entre otros. En este artículo, describimos el método FDD, incluyendo Que es, cuáles son sus orígenes, si es considerado un método ágil de software, en que se diferencia de otros métodos y en qué actividades consiste.


Presentamos a continuación las 5 preguntas y respuestas sobre el FDD:

¿Qué es el Feature Driven Development (FDD)?

Es un enfoque de desarrollo de software de la familia de métodos iterativo e incrementales, comprendido por varias prácticas que están enfocadas desde la perspectiva de funcionalidades (Features) que poseen valor para el cliente. El enfoque del FDD está en entregar funcionalidades al usuario, en tiempos previamente establecidos, que pueden ser desde cuestión de horas hasta un máximo de dos semanas.

¿Cuáles son sus orígenes?

El método fue desarrollado por Jeff De Luca en el año de 1997, mientras participaba en un proyecto de desarrollo de software, con 15 meses de duración y 50 personas en un país del sureste asiático.

En 1999 el método fue descrito en el capítulo 6 del libro “Java Modeling in color with UML”, del cual Jeff De Luca fe coator junto con Peter Coad y Eric Lefebvre.

En 2002 fue descrito en el libro titulado “A Practical Guide to Feature-Driven Development” (publicado en 2002).

¿Es el FDD considerado un método de desarrollo ágil de software?

Si, de hecho, FDD forma parte de las técnicas de desarrollo ágil reconocidas por el Agile Alliance (http://www.agilealliance.org/).

¿En qué se diferencia el FDD de otras técnicas de desarrollo ágil?

Se ha dicho que enfoques de desarrollo ágil como Scrum y Extreme Programming (XP), tienen problemas para escalar a grandes equipos de proyectos. De hecho, se ha dicho que su hábitat natural son proyectos pequeños de desarrolladores talentosos y disciplinados. FDD es diferente, en el sentido que fue diseñado atendiendo las necesidades especificas de equipos de proyectos más grande.

Los proyectos con múltiples equipos y muchas personas representan el reto que no todos serán igual de talentosos y disciplinados, FDD incluye actividades especificas que ayudan a atender los retos comunicacionales y de coordinación de dichos proyectos.

Adicionalmente, la gran mayoría de los que han aplicado enfoques de desarrollo ágil están de acuerdo en que se necesita una “iteración 0”, que consiste en el período de tiempo necesario para establecer infraestructura, métodos de trabajo y levantamiento inicial de funcionalidades. A pesar de esta realidad, Scrum y XP no dicen mucho al respecto de una iteración 0.

En cambio, FDD hace mención específica de una iteración inicial, pues de los 5 procesos que lo comprenden, los primeros tres son secuenciales y los últimos dos son iterativos.

¿En qué consiste el método FDD?

Está compuesto por 5 actividades. El Flujograma se muestra en la figura adjunta. 




Comprende los siguientes pasos: 

  • Desarrollar modelo general: Definición del modelo de objetos de dominio, con la colaboración de expertos de dichos dominios.
  • Elaborar lista de funcionalidades: Se elaborar los listados de funcionalidades, tomando en consideración la información levantada en el modelo general y de las actividades de levantamiento de información y análisis de requerimientos. 
  • Planificar funcionalidades: Elaboración de un plan de alto nivel y se asignan responsabilidades. 
  • Diseñar y desarrollar funcionalidades: Se toman pequeños grupos de funcionalidades en iteraciones de diseño y construcción. Las cuales no deberían durar más de 2 semanas. De hecho, con frecuencia las iteraciones pueden ser más cortas, inclusive hasta cuestión de horas. Incluye las integraciones de código, generación de versiones (builds), pruebas unitarias, pruebas integrales y demás actividades del ciclo de desarrollo de software. 

Conclusión

¿Y qué opina usted del FDD?, ¿Ha aplicado el FDD?, ¿Cuáles han sido los resultados?, ¿Qué ventajas y desventajas considera que tiene el FDD respecto a otros métodos de desarrollo ágil como SCRUM y XP. Le invitamos a participar en el foro de discusión del blog de “La Oficina de Proyectos de Informática” (http://oficinaproyectosinformatica.blogspot.com) y a suscribirse al blog por los distintos canales, incluyendo lista de correo electrónico, al Twitter @PMOInformatica o al feed RSS del Blog.

¿Estás interesado en productos amazon sobre “Test Driven Development” (TDD)?




























Kanban
Autor: David J. Anderson
>> España (amazon.es)
>> Latinoamérica (amazon.com)
Código Limpio
Autor: Robert C. Martin
>> España (amazon.es)
>> Latinoamérica (amazon.com)
Métodos ágiles y Scrum
Autor: Alonso Alvarez García y otros
>> España (amazon.es)
>> Latinoamérica (amazon.com)
Feature Driven Development
Autor: Steve Palmer
>> España (amazon.es)
>> Latinoamérica (amazon.com)


25 de Octubre 2012: Los Productos de la semana. >>Ver Productos de la Semana
19 de Octubre 2012: Los Productos de la semana. >>Ver Productos de la Semana
Octubre 2012: Más buscados en desarrollo ágil. >>España >>Latinoamérica
Octubre 2012: Más buscados en gestión de proyectos. >>España >>Latinoamérica
Sección de productos Amazon. >>Visítala

Referencias

>> An Introduction to Feature-Driven Development. Agile Zone

>> Feature Driven Development. Wikipedia

Otros artículos en “La Oficina de Proyectos de Informática”

Desarrollo ágil, Scrum y Test Driven Development

>> Test Driven Development (TDD): 9 retos para su implementación y cómo hacerles frente

>> Plantillas Scrum: historias de usuario y criterios de aceptación

>> El “Test Driven Development” (TDD): Desarrollo y pruebas de software bajo Scrum

>> Scrum de Scrum: Desarrollo ágil para grandes proyectos

>> 5 métricas de desempeño para proyectos de desarrollo ágil y Scrum

>> Herramientas de software para gestión de proyectos de desarrollo ágil

>> El Desarrollo ágil en un entorno de fechas y presupuestos predefinidos

>> Los Programas de Certificación del Scrum Alliance

>> Preguntas y respuestas sobre Scrum Alliance

>> Gestión de Proyectos PMI y el Desarrollo Ágil: ¿Que tienen en común?

>> Metodologías de desarrollo ágil

Gestión de desarrollo de software

>> Errores comunes en el desarrollo de Bases de datos

>> 5 Herramientas para la automatización de pruebas de software

>>Errores comunes de programación: Segunda Parte

>>5 errores comunes de programación

>>10 actividades críticas a incluir en todo plan de desarrollo de un software

>> Los pasos para resolver incidentes en el período de estabilización de un desarrollo de software

>> Ambientes de pruebas integrales de software: Buenas prácticas

>> Ambientes de desarrollo de software: Buenas prácticas

>> Algunas prácticas de desarrollo de aplicaciones web para asegurar calidad, mantenibilidad, escalabilidad y seguridad

>> Herramientas de software para gestión de proyectos de desarrollo ágil

>> Acciones preventivas para evitar retraso y retrabajo en proyectos de tecnología de información (TI)

>> Las preguntas que debe hacer al encargarse de un proyecto de Tecnología de Información (TI) en ejecución

3 comentarios :

Pmoinformatica.com," La Oficina de Proyectos de Informática ", es un participante en el Programa de Servicios de Amazon Associates LLC, un programa de publicidad de afiliación diseñado para proporcionar un medio para que sitios web puedan ganar honorarios por la publicidad y enlaces a amazon.com y amazon.es.