Todo el desarrollo de software requiere la gestión de proyectos y la gestión del ciclo de vida del desarrollo del sistema (SDLC). Estas son las técnicas y procesos que se utilizan para gestionar eficazmente el proceso de desarrollo de una aplicación de software. El desarrollo impulsado por características es una técnica que se basa en ciclos de desarrollo rápidos. Proporciona a la empresa una funcionalidad más rápida que las técnicas SLDC estándar típicas.
En el competitivo mercado actual, es importante que las organizaciones reaccionen rápidamente a las tendencias cambiantes y los climas del mercado. La tecnología de la información ha intentado convertir el desarrollo de software en un proceso más ágil que pueda anticipar las necesidades competitivas de una organización. El desarrollo impulsado por características es una técnica de desarrollo de software que intenta implementar características de la aplicación de manera iterativa en función de las prioridades de una empresa.
El desarrollo impulsado por características se considera un proceso de desarrollo iterativo. Esto se debe a que el código se desarrolla e implementa en iteraciones de funcionalidad en lugar de como una aplicación completa. Fue creado por Jeff De Luca en 1997 como una técnica rápida para entregar aplicaciones de software. Este proceso ágil intenta entregar funciones priorizadas a un cliente más rápidamente.
El proceso de desarrollo impulsado por funciones se basa en modelos y ciclos de desarrollo cortos. Esto es similar a las técnicas de desarrollo utilizadas en Extreme Programming (XP). Cada proyecto se divide en pequeñas funciones que se pueden codificar, probar e implementar en menos de dos semanas. Este ciclo de dos semanas proporciona a la empresa un sistema rico en funciones más rápido porque está en continua evolución.
Hay cuatro áreas principales de desarrollo impulsado por funciones. Estos son el modelo de dominio, la lista de funciones, el plan por función y, finalmente, la construcción y la implementación por función. Estas cuatro áreas tienen requisitos y técnicas específicas que las hacen exitosas.
El modelo de dominio es una descripción general y un diseño de alto nivel de toda la aplicación. Es el modelo esquemático de lo que se construirá durante el proceso de iteración. Este es el primer paso del proceso impulsado por funciones y está destinado a brindar al equipo de desarrollo una hoja de ruta de toda la aplicación.
Una vez que el modelo de dominio está completo, es necesario crear una lista de características. La lista de funciones incluirá todas las funciones necesarias de la aplicación. Cada característica debe diseñarse con detalles específicos para que funcione. Un ejemplo de una función para una aplicación bancaria podría ser «calcular el saldo bancario total disponible».
La priorización es el siguiente paso en el desarrollo impulsado por funciones. Una vez creada la lista completa de funciones, los usuarios comerciales deben priorizarla. Esta priorización debe basarse en la importancia de la funcionalidad para la organización.
La fase final del desarrollo impulsado por funciones se basa en la creación e implementación de funciones basadas en la lista de funciones priorizadas. Cada función se codificará, probará e implementará en incrementos de dos semanas. Este enfoque iterativo rápido brinda a la empresa la oportunidad de utilizar la aplicación antes de que esté completamente terminada.