¿Qué es el desarrollo basado en funciones fdd?
El desarrollo basado en funciones FDD, es una metodología basada en funciones que permite generar desarrollos funcionales y evita la duplicidad de código, aporta simplicidad al código y escalamiento ordenado de la aplicación.
Beneficios que ofrece el desarrollo basado en funciones fdd.
- ✔ Tener identificado las características del producto con sus funciones y clases.
✔ Tener priorizado las características del producto por su valor de negocio y complejidad.
✔ Tener un plan para desarrollar las características del producto de forma independiente soportado por un plan de escritura de código para facilitar la integración de las características de forma incremental.
Buenas prácticas para la implementación.
- ✔ Construir el modelo de objetos de dominio a partir de diagramas de clases.
✔ Segregar las funciones en partes mas pequeñas para facilitar su mantenimiento.
✔ Asignar cada clase a un propietario para garantizar su simplicidad, entendimiento y mantenimiento.
✔ Agrupar las clases por funciones para trazar una ruta en la conformación del equipo que diseñará e implementará la función.
✔ Realizar inspecciones para garantizar la calidad de las clases, las funciones, el escalamiento y mantenimiento.
✔ Identificar el código fuente de todas las funciones y proceder con la documentación.
✔ Establecer un cronograma de lanzamiento y control de versiones para mostrar la operatividad de la aplicación al cliente.
✔ Generar informes y radiadores de información.
Pre-Condiciones y Post-Condiciones.
Este cuadro expone los pasos previos y posteriores que se deben ejecutar para aplicar correctamente las buenas prácticas enunciadas.
| Paso | Acción clave | Condición |
|---|---|---|
| 1. El pensamiento Lean. | Eliminar desperdicios en tiempo y materiales para optimizar los procesos y procedimientos. | Pre. |
| 2. El six sigma. | Reducir la variabilidad en los procesos y reducir los defectos en los procedimientos y el producto. | Pre. |
| 3. El scrum empresarial. | Implementar correctamente los valores, principios, prácticas, herramientas y técnicas del agilismo en toda la organización. | Pre. |
| 4. El modelo operativo ágil y flujos de valor. | Desarrollo del producto de forma iterativa, centrando el esfuerzo en la automatización de pruebas y calidad en las entregas. | Pre. |
| 5. La familia crystal. | Ajustar las prácticas agiles e innovación a la medida de las necesidades del proyecto o producto. | Pre. |
| 6. El scrum a gran escala. | Amplificación del marco de trabajo scrum para coordinar varios equipos que trabajan en diferentes proyectos y programas que hacen parte de un mismo portafolio. | Pre. |
| 7. El marco de trabajo scrum. | Atender los cambios del proyecto y acelerar la entrega de resultados asegurando la alineación del producto en desarrollo con las necesidades actuales del cliente. | Pre. |
| 8. El método de desarrollo de sistemas dinámicos DSDM. | Gestionar la restricción que existe entre funcionalidad - tiempo - presupuesto. | Pre. |
| 9. La disciplina ágil. | Priorizar las necesidades de las personas y ajustar los procesos a la medida del proyecto. | Pre. |
| 10. El desarrollo basado en funciones FDD. | Ver el contenido de la presente guía. | |
| 11. El proceso unificado ágil AUP. | Relacionar las prácticas claves de desarrollo con las fases de desarrollo con el fin de eliminar al máximo el desperdicio de tiempo y recurso. | Post. |
| 12. La programación XP. | Resolver problemas complejos eliminando desperdicios de tiempo y recurso. | Post. |
| 13. El tailoring. | Identificar el estado inicial, actual y futuro para el equipo, proyecto y cultura organizacional con el fin de generar planes de acción que apoyen al éxito del proyecto. | Post. |
| 14. El design thinking. | Diseñar soluciones centrando los procesos, procedimientos y producto en el ser humano. | Post. |
| 15. El design sprint. | Resolver problemas concretos en un tiempo no mayor a 5 días. | Post. |
| 16. El event storming. | Descubrir el comportamiento de un negocio y sus requerimientos. | Post. |
| 17. La metodología kanban. | Visualizar, gestionar y controlar los flujos de trabajo. | Post. |
| 18. La gestión del cambio. | Liderar el cambio desde el lado humano para obtener resultados positivos a nivel organizacional y por colaborador. | Post. |
| 19. El coaching. | Identificar las habilidades y competencias del individuo u organización y potencializarlo para incrementar los resultados actuales. | Post. |
| 20. El método Kaizen. | Centrar el esfuerzo en lograr mejoras pequeñas en el corto plazo para obtener beneficios acumulados en el mediano y largo plazo. | Post. |
Relaciones lógicas.
Este cuadro expone las prácticas para resolver un problema con el desarrollo basado en funciones fdd , aplicando las siguientes relaciones lógicas:
| Práctica | Relación | Práctica |
|---|---|---|
| Modelado de objetos de dominio | Final-Inicio | Desarrollo por función |
| Desarrollo por función | Final-Inicio | Propiedad de clase individual |
| Propiedad de clase individual | Final-Inicio | Equipos de funciones |
| Equipos de funciones | Final-Inicio | Inspecciones de funciones y clases |
| Inspecciones de funciones y clases | Final-Inicio | Administración de configuración de funciones y clases |
| Administración de configuración de funciones y clases | Final-Inicio | Cronograma de compilación |
| Cronograma de compilación | Final-Inicio | Informes de progreso |
¿Quiénes son responsables?
El responsable del desarrollo basado en funciones fdd es el arquitecto de aplicación, quien hace parte de la dirección de ti.
Ejemplo.
Este ejemplo es un flujo que se construyo durante el proceso de preparación para presentar los exámenes y obtener las certificaciones CAMP, PMP y PMI-ACP del PMI. Adicionalmente las certificaciones SMAC, STMAC y SPOAC del Scrum Institute.


Pregunta tipo examen.
Pregunta: La definición que mejor se ajusta para el desarrollo basado en funciones fdd. ¿Debe ser?
A) Es un método donde se toma los recursos de la(s) persona(s) que será(n) entrenada(s) para potencializar el uso de los mismos o lograr una meta que cumpla objetivos estratégicos de la organización u objetivos personales que ayudan a materializar la mejor versión de uno mismo.
B) Es un marco de trabajo para el desarrollo ágil de proyectos muy utilizado en entornos cambiantes en donde se necesita obtener un resultado rápido para ajustar y alinear el producto a las necesidades del cliente reduciendo desperdicios y aprovechando las oportunidades del entorno.
C) Es una técnica utilizada para descubrir el comportamiento de un negocio y los requerimientos funcionales y no funcionales del mismo.
D) Es una metodología basada en funciones que permite generar desarrollos funcionales y evita la duplicidad de código, aporta simplicidad al código y escalamiento ordenado de la aplicación.
Si deseas validar el nivel de conocimiento con relación a: el desarrollo basado en funciones fdd Inicia el simulador
Sobre el autor.
Juan David López Pava: profesional en administración de empresas y desarrollo de software con certificaciones del PMI y Scrum Institute, apasionado por la transformación digital y la dirección de proyectos de tecnología.