Qu'est-ce que le développement piloté par les fonctionnalités?
Tout développement logiciel nécessite une gestion de projet et une gestion de cycle de vie du système (SDLC). Ce sont les techniques et processus utilisés pour gérer efficacement le processus de développement d'une application logicielle. Le développement piloté par les fonctionnalités est une technique basée sur des cycles de développement rapides. Il offre aux entreprises des fonctionnalités plus rapides que les techniques classiques de SLDC.
Dans le marché concurrentiel actuel, il est important que les organisations réagissent rapidement aux tendances et aux climats changeants du marché. Les technologies de l'information ont tenté de faire évoluer le développement logiciel en un processus plus agile, capable d'anticiper les besoins concurrentiels d'une organisation. Le développement piloté par les fonctionnalités est une technique de développement logiciel qui tente d'implémenter les fonctionnalités d'une application de manière itérative en fonction des priorités d'une entreprise.
Le développement piloté par les fonctionnalités est considéré comme un processus de développement itératif. En effet, le code est développé et déployé sous forme d'itérations de fonctionnalités plutôt qu'en tant qu'application complète. Il a été créé par Jeff De Luca en 1997 en tant que technique rapide de fourniture d'applications logicielles. Ce processus agile tente de fournir plus rapidement des fonctionnalités prioritaires à un client.
Le processus de développement piloté par les fonctionnalités est basé sur des modèles et des cycles de développement courts. Ceci est similaire aux techniques de développement utilisées dans la programmation extrême (XP). Chaque projet est divisé en petites fonctionnalités pouvant être codées, testées et déployées en moins de deux semaines. Ce cycle de deux semaines fournit à l'entreprise un système riche en fonctionnalités plus rapidement, car il évolue continuellement.
Il existe quatre domaines principaux de développement basé sur les fonctionnalités. Il s’agit du modèle de domaine, de la liste des fonctionnalités, de la planification par fonctionnalité et enfin de la création et du déploiement par fonctionnalité. Ces quatre domaines ont des exigences et des techniques spécifiques qui en font un succès.
Le modèle de domaine est une vue d'ensemble et une conception de haut niveau de l'ensemble de l'application. C'est le schéma directeur de ce qui sera construit pendant le processus d'itération. Il s’agit de la première étape du processus axé sur les fonctionnalités et vise à donner à l’équipe de développement une feuille de route de l’application complète.
Une fois le modèle de domaine terminé, une liste de fonctionnalités doit être créée. La liste des fonctionnalités inclura toutes les fonctionnalités requises de l'application. Chaque fonctionnalité doit être conçue avec des détails spécifiques pour que cela fonctionne. Un exemple de fonctionnalité pour une application bancaire pourrait être «calculer le solde bancaire disponible total».
La priorisation est la prochaine étape du développement piloté par les fonctionnalités. Une fois la liste complète des fonctionnalités créée, les utilisateurs professionnels doivent en hiérarchiser les priorités. Cette hiérarchisation doit être basée sur l’importance de la fonctionnalité pour l’organisation.
La phase finale du développement piloté par les fonctionnalités est basée sur la création et le déploiement de fonctionnalités basées sur la liste des fonctionnalités hiérarchisées. Chaque fonctionnalité sera codée, testée et déployée par incréments de deux semaines. Cette approche itérative rapide donne à l'entreprise l'occasion d'utiliser l'application avant la fin.