Organiser les spécifications dans un plan de produit
Après avoir suffisamment analysé les spécifications de votre client pour comprendre ce que le produit doit faire, vous devez élaborer un plan pour implémenter le produit. Ou, pour un produit existant, vous devez élaborer les fonctionnalités manquantes et un plan permettant d'apporter les modifications nécessaires. Toutefois, les spécifications ne vous indiquent pas automatiquement ce que le plan doit être.
Cette rubrique présente une méthode qui permet d'obtenir un plan à partir d'un ensemble de spécifications. Ce n'est qu'une méthode parmi d'autres qui fonctionnent avec Visual Studio, et vous devez l'adapter à vos besoins.
Vous pouvez utiliser le backlog et les backlogs de portefeuille pour définir et mapper les spécifications et les fonctionnalités.
Spécifications et fonctionnalités
Il existe deux genres de spécifications dans cette méthode : les spécifications du client et les fonctionnalités. Les spécifications du client regroupent les informations que vous obtenez en analysant ce que le client attend du produit. Les fonctionnalités sont des éléments du plan de produit, qui correspondent à des petits sous-ensembles des spécifications du client. Chaque fonctionnalité peut inclure des sous-ensembles de spécifications du client provenant de différentes parties de l'expérience utilisateur et de différentes zones fonctionnelles.
Spécifications du client
Les discussions avec les utilisateurs potentiels et autres parties prenantes déterminent les spécifications du client.
Pour faciliter l'analyse de ces spécifications, vous créez généralement des plans conceptuels et des modèles, et vous décomposez les scénarios en étapes plus petites, formant ainsi une arborescence. Vous pouvez lier les éléments de modélisation tels que les cas d'usage et les activités à des éléments de travail de scénario.
Il existe deux types de spécifications du client :
Les scénarios, également appelés cas d'usage, représentent des séquences d'interactions entre les utilisateurs et le produit, dans la poursuite d'objectifs spécifiques. Un exemple de scénario peut avoir pour titre « L'utilisateur achète un livre ».
Les impératifs de qualité de service incluent les performances, la sécurité, l'usage et d'autres critères.
Vous pouvez représenter ces spécifications sous la forme d'éléments de travail de type spécification, en définissant le champ Type de spécification sur Scénario ou Qualité de service. Pour plus d'informations, consultez Spécifications de développement.
Ces éléments de travail Spécification doivent être liés à des tests système pour que vous puissiez vous assurer que toutes les spécifications sont testées. Consultez Planifier des tests manuels à l'aide de Team Web Access.
Affichez le backlog ou ouvrez la requête Spécification du client pour répertorier ces éléments de travail Spécification.
Utilisez le rapport Progression des spécifications, rapport (CMMI) pour déterminer les spécifications qui ont été satisfaites.
Fonctionnalités
Une fonctionnalité est un élément dans un plan de produit qui représente un groupe de tâches. Dans la planification du produit, les représentants de l'équipe de développement et les parties prenantes assignent des fonctionnalités aux itérations. Pour plus d'informations, consultez Planifier un projet (CMMI).
Entrez les fonctionnalités sous la forme d'éléments de travail Spécification en définissant le champ Type de spécification sur Fonctionnalité.
Le titre de la fonctionnalité indique, du point de vue des utilisateurs, ce que ces derniers pourront faire avec le produit, et qu'ils ne pouvaient pas faire dans les itérations précédentes. En règle générale, chaque élément du plan apporte de la valeur pour l'utilisateur.
Par exemple, cette séquence de fonctionnalités peut former un plan d'implémentation :
« Un acheteur peut choisir un livre dans la liste et l'ajouter à une liste de souhaits. »
« La liste de livres affiche les prix. Dans la liste de souhaits, le prix total s'affiche. »
« Les fournisseurs peuvent associer des balises aux livres. Les acheteurs peuvent filtrer la liste de livres par balise. »
Notez qu'aucune fonctionnalité n'affecte qu'une seule étape de l'expérience utilisateur et qu'aucune fonctionnalité n'implique qu'une seule partie de l'architecture du produit. Au lieu de cela, à mesure que les fonctionnalités sont implémentées, plusieurs fonctions sont revisitées et apportent de la valeur pour l'utilisateur.
Une fonctionnalité est assignée à une itération pendant la planification du produit. Toutes les tâches sous une fonctionnalité doivent être affectées à la même itération.
Une fonctionnalité décrit une réalisation partielle des spécifications du client. Il s'agit d'un sous-ensemble des spécifications du client, qui peut implémenter chaque spécification du client dans une certaine mesure.
Chaque fonctionnalité peut être liée à un ou plusieurs cas de test qui testent la partie des spécifications que représente cette fonctionnalité. Ces cas de test sont un sous-ensemble des tests système liés aux spécifications du client.
L'état de la fonctionnalité ne peut être marqué comme terminé qu'une fois que ses tests ont été complètement définis et passés avec succès.
Chaque fonctionnalité est un groupe de tâches de développement et de test. Il s'agit de la racine d'une arborescence de tâches. Les tâches de développement implémentent les spécifications partielles décrites par la fonctionnalité. Les tâches de test conçoivent et exécutent les cas de test appropriés.
La requête Spécifications du produit vous permet de répertorier les fonctionnalités.
Recherche de fonctionnalités
La subdivision des spécifications en fonctionnalités incrémentielles est une tâche créative qui doit impliquer développeurs, analystes et parties prenantes. Une fonctionnalité définit une partie des caractéristiques du produit qui peuvent raisonnablement être implémentées séparément des fonctions environnantes. L'architecture du système détermine donc en partie la constitution d'un ensemble exploitable de définitions de fonctionnalités et une organisation sous forme de plan.
Pour cette raison, la planification et la conception initiale du produit doivent fonctionner en parallèle, en particulier dans l'itération 0, où l'essentiel du plan est esquissé.
Décomposition des scénarios
Pour vous aider à organiser les spécifications en fonctionnalités, pensez à décomposer les scénarios en étapes.
Les plans conceptuels peuvent souvent s'avérer utiles à cette fin. Un plan conceptuel est une séquence d'images qui illustrent le scénario. Les diagrammes d'activités UML sont utiles pour indiquer d'autres chemins, tandis que les diagrammes de séquence UML peuvent vous aider à discuter des interactions entre plusieurs acteurs. Une fois que vous avez utilisé ces outils pour analyser un scénario, vous pouvez entrer les scénarios décomposés dans Team Explorer. Cela vous permet de lier des cas de test aux scénarios et de vous assurer ainsi que les spécifications ont été satisfaites. Pour plus d'informations, consultez Diagrammes d'activités UML : instructions et Diagrammes de séquence UML : indications.
Fonctionnalités : satisfaction des spécifications dans chaque itération
Une fonctionnalité est une spécification qui résume ce que les utilisateurs peuvent faire à la fin de chaque itération. Vous pouvez créer plusieurs fonctionnalités par itération. Entrez-les en tant qu'éléments de travail Spécification, en définissant Type de spécification sur Fonctionnalité.
Définissez les fonctionnalités à l'aide de vos assignations de scénarios aux éléments de travail. L'exemple de plan de fonctionnalité suivant est tiré des assignations de scénarios aux itérations dans la section précédente :
Itération 1
- Le client choisit des plats dans un menu, les ajoute à une commande et ajoute une adresse de livraison.
Itération 2
Les clients commencent par afficher une liste de restaurants, puis en choisissent un.
Quand le client effectue une commande, celle-ci s'affiche sur l'écran du restaurant choisi.
Les prix des plats et le prix total sont affichés dans la commande.
Itération 3
Le restaurant marque la commande comme terminée une fois que le repas préparé a été expédié. Le repas est enregistré par rapport au restaurant.
Chaque restaurant peut entrer et mettre à jour son menu.
Le client peut parcourir le menu de chaque restaurant avant d'en sélectionner un.
Itération 4
Le client entre les détails du paiement à la fin d'une commande. La carte du client est débitée quand le restaurant marque la commande comme terminée.
Le restaurant est payé pour les commandes qui sont marquées comme terminées.
Itération 5
- Les restaurants peuvent définir leur zone de livraison. Le client entre le code postal au début de la session. Le site web affiche uniquement les restaurants qui peuvent livrer dans la zone locale.
Scénarios partiellement implémentés
La décomposition des scénarios en petites étapes vous permet de séparer certaines étapes qui peuvent être implémentées plus tôt d'autres qui peuvent être implémentées ultérieurement.
Mais parfois vous pouvez séparer d'autres aspects des scénarios. Dans cet exemple, l'équipe peut implémenter une version de base de l'expérience utilisateur dans les premières itérations et l'améliorer ultérieurement. Vous pouvez donc ajouter la fonctionnalité suivante :
- Itération 6 : le restaurant peut choisir le modèle de couleurs et la police de son menu et télécharger son propre logo et des images de repas.
Ce type de fonctionnalité ne découle pas directement de la décomposition en étapes, mais généralement d'une discussion des plans conceptuels. Les fonctionnalités d'expérience utilisateur sont de bons candidats pour les itérations ultérieures.
Entrée et inspection des fonctionnalités
Créez des éléments de travail avec le type d'élément de travail de spécification et définissez le champ Type de spécification sur Fonctionnalité. Définissez le titre de la fonctionnalité sur la description courte.
Liaison des fonctionnalités aux spécifications
Vous pouvez lier les fonctionnalités aux spécifications comme suit :
Liez les éléments de travail de fonctionnalité aux spécifications de scénario à feuilles de leurs itérations. Vous devez les lier à l'aide de liens Éléments connexes, car les scénarios à feuilles ont déjà des parents.
Liez les éléments de travail de cas de test aux scénarios et impératifs de qualité de service qu'ils testent. Lier les fonctionnalités au sous-ensemble de cas de test à valider une fois la fonctionnalité développée. De cette manière, les cas de test font office de lien entre les fonctionnalités et les spécifications du client.
Fonctionnalités de qualité de service
Les impératifs de qualité de service sont généralement très présents en matière de conception de logiciels. Par exemple, les conditions de sécurité ne sont généralement pas liées à une tâche de développement en particulier.
Néanmoins, pour chaque impératif de qualité de service, vous devez créer un élément de travail de fonctionnalité dont les enfants testent principalement des tâches qui vérifient qu'un critère de qualité de service est respecté. Ces éléments de travail sont appelés fonctionnalités de qualité de service.
Certaines fonctionnalités de qualité de service peuvent comporter des tâches de développement. Par exemple, dans une itération initiale, vous pouvez implémenter une version du système qui peut gérer quelques utilisateurs uniquement, comme preuve de concept. Pour une itération ultérieure, vous pouvez ajouter une fonctionnalité qui spécifie la capacité cible, comme indiqué dans les spécifications du client.
Planification de produit
Avant le début de chaque itération, organisez une réunion pour passer en revue le plan de produit. La première réunion sur la planification du produit consiste à créer le plan, tandis que les réunions suivantes portent sur sa révision en fonction des itérations antérieures. Pour plus d'informations, consultez Planifier un projet (CMMI).
Au cours de la révision du plan d'un produit, discutez des fonctionnalités avec les parties prenantes métier et soyez prêt à les hiérarchiser de nouveau et à les organiser dans des itérations différentes. La réunion doit inclure les parties prenantes d'entreprise et les représentants de l'équipe de développement.
La réunion présente l'ordre dans lequel les fonctionnalités seront développées. Pour ce faire, vous pouvez présenter la vue Office Excel de la requête Spécifications du produit (en la projetant ou en la diffusant par partage d'écran) et classer les fonctionnalités par itération.
Une autre technique consiste à placer les fonctionnalités dans un ordre spécifique et à évaluer ce qui peut être effectué dans chaque itération. Par exemple, les développeurs peuvent discuter si « Le client peut afficher les prix » doit être déplacé de l'itération 2 vers l'itération 3, sans le déplacer dans la séquence. Pour placer les éléments dans une séquence, ajoutez une colonne nommée Classement à la feuille de calcul et insérez des entiers qui indiquent la séquence. Classez la feuille de calcul en fonction de cette colonne. Les classements ne sont pas stockés dans Team Foundation Server, mais vous pouvez enregistrer la feuille de calcul. Quand vous rouvrez la feuille de calcul, cliquez sur une cellule dans le tableau des éléments de travail, puis cliquez sur Actualiser sous l'onglet Équipe.
La planification du produit tient compte des priorités des fonctionnalités et des coûts de développement. Les priorités proviennent des parties prenantes métier, avec quelques conseils sur les risques de la part des développeurs. Les estimations des coûts proviennent des développeurs. Pour obtenir une idée précise des coûts, l'équipe de développement doit avoir déjà travaillé sur l'architecture du produit et devra peut-être s'appuyer sur l'expérience acquise au cours des premières itérations. Pour cette raison, les estimations des coûts doivent être affinées à chaque révision du plan de produit.
Planification des itérations
Après la révision du plan de produit, planifiez l'itération. Le plan de produit détermine les fonctionnalités qui seront livrées avant la fin de l'itération. Le plan d'itération détermine le travail que l'équipe fera pour implémenter et tester les fonctionnalités.
Les activités suivantes font partie de la planification des itérations :
Créer des tâches de développement et de test, et les lier en tant qu'enfants aux spécifications de fonctionnalités.
Créer des cas de test pour les aspects des spécifications du client qui doivent être développés dans chaque fonctionnalité. Les cas de test doivent être liés aux spécifications du client pour que vous puissiez surveiller l'avancement des spécifications.
Vous pouvez également lier des cas de test aux fonctionnalités pour suivre la correspondance entre les fonctionnalités et les spécifications. La fonctionnalité ne doit pas être marquée comme terminée tant que les cas de test liés n'ont pas été passés avec succès.
Pour plus d'informations, consultez Planifier une itération (CMMI).