Analyse commerciale - Gestion des exigences

La collecte des exigences logicielles est la base de tout le projet de développement logiciel. Solliciter et rassembler les besoins de l'entreprise est une première étape essentielle pour chaque projet. Afin de combler le fossé entre les exigences commerciales et techniques, les analystes commerciaux doivent bien comprendre les besoins commerciaux dans le contexte donné, aligner ces besoins sur les objectifs commerciaux et communiquer correctement les besoins aux parties prenantes et à l'équipe de développement.

Les principaux intervenants souhaitent que quelqu'un puisse expliquer les exigences des clients / clients dans un anglais simple. Cela leur permettra-t-il de comprendre la valeur à un niveau élevé? Ce sera le domaine principal, car ils essaieront de cartographier la documentation avec les exigences et la façon dont BA pourrait communiquer de la meilleure façon possible.

Pourquoi les projets échouent

Il existe de nombreuses raisons pour lesquelles les projets échouent, mais certains des domaines communs incluent les éléments ci-dessous:

  • Échec du marché et de la stratégie
  • Échecs d'organisation et de planification
  • Échecs de qualité
  • Échecs de leadership et de gouvernance
  • Échecs de compétences, de connaissances et de compétences
  • Engagement, travail d'équipe et échecs de communication

Au cœur du problème est que les projets sont de plus en plus complexes, que des changements se produisent et que la communication est difficile.

Pourquoi les équipes performantes font la gestion des exigences

La gestion des exigences consiste à garder votre équipe in-sync et fournir visibility à ce qui se passe dans un projet.

Il est essentiel pour la réussite de vos projets que toute votre équipe comprenne ce que vous construisez et pourquoi - c'est ainsi que nous définissons la gestion des exigences. Le «pourquoi» est important car il fournit un contexte aux objectifs, aux commentaires et aux décisions prises concernant les exigences.

Cela augmente la prévisibilité du succès futur et des problèmes potentiels, permettant à votre équipe de corriger rapidement tout problème et de mener à bien votre projet dans les délais et dans les limites du budget. Comme point de départ, il est important pour toutes les personnes impliquées d'avoir une compréhension de base de ce que sont les exigences et de la façon de les gérer.

Commençons par les bases

Une exigence est une condition ou une capacité dont une partie prenante a besoin pour résoudre un problème ou atteindre un objectif. Une condition ou une capacité qui doit être satisfaite ou possédée par un système ou un système. Composant pour satisfaire un contrat, une norme, une spécification ou d'autres documents formellement imposés.

Une exigence peut être exprimée par du texte, des croquis, des maquettes ou des modèles détaillés, quelles que soient les informations qui communiquent le mieux à un ingénieur ce qu'il faut construire et à un responsable QA ce qu'il doit tester. En fonction de votre processus de développement, vous pouvez utiliser une terminologie différente pour capturer les exigences.

Les exigences de haut niveau sont parfois appelées simplement needs ou goals. Dans les pratiques de développement de logiciels, les exigences peuvent être appelées «cas d'utilisation», «fonctionnalités» ou «exigences fonctionnelles». Encore plus spécifiquement dans les méthodologies de développement agile, les exigences sont souvent capturées commeepics et stories.

Indépendamment de ce que votre équipe les appelle ou du processus que vous utilisez; les exigences sont essentielles au développement de tous les produits. Sans définir clairement les exigences, vous pourriez produire un produit incomplet ou défectueux. Tout au long du processus, de nombreuses personnes peuvent être impliquées dans la définition des exigences.

Une partie prenante peut demander une fonctionnalité décrivant comment le produit apportera de la valeur pour résoudre un problème. Un concepteur peut définir une exigence en fonction de l'apparence ou des performances du produit final du point de vue de la convivialité ou de l'interface utilisateur.

Un analyste commercial peut créer une exigence système qui adhère à des contraintes techniques ou organisationnelles spécifiques. Pour les produits et applications logicielles sophistiqués d'aujourd'hui en cours de construction, il faut souvent des centaines ou des milliers d'exigences pour définir suffisamment la portée d'un projet ou d'une version. Il est donc impératif que l'équipe puisse accéder, collaborer, mettre à jour et tester chaque exigence jusqu'à son achèvement, car les exigences changent et évoluent naturellement au fil du temps au cours du processus de développement.

Maintenant que nous avons défini la valeur de la gestion des exigences à un niveau élevé, approfondissons les quatre principes fondamentaux que chaque membre de l'équipe et chaque partie prenante peuvent bénéficier d'une compréhension -

  • Planifier de bonnes exigences: «Que diable construisons-nous?»
  • Collaboration et adhésion: "Il suffit d'approuver les spécifications, déjà!"
  • Traçabilité et gestion du changement: "Attendez, les développeurs savent-ils que cela a changé?"
  • Assurance qualité: "Bonjour, est-ce que quelqu'un a testé cette chose?"

Est-ce que tout le monde sait ce que nous construisons et pourquoi? C'est la valeur de la gestion des exigences.

Collaboration et adhésion des parties prenantes

Tout le monde est-il au courant? Avons-nous une approbation sur les exigences pour aller de l'avant? Ces questions se posent au cours des cycles de développement. Ce serait formidable si tout le monde pouvait s'entendre sur les exigences, mais pour les grands projets avec de nombreuses parties prenantes, cela ne se produit généralement pas. Essayer de mettre tout le monde d'accord peut retarder ou, pire, ne pas prendre des décisions. Obtenir un consensus sur chaque décision n'est pas toujours facile.

En pratique, vous ne voulez pas nécessairement un «consensus», vous voulez «l'adhésion» du groupe et l'approbation de ceux qui contrôlent afin que vous puissiez faire avancer le projet. Avec le consensus, vous essayez d'amener tout le monde à faire des compromis et à s'entendre sur la décision. Avec l'adhésion, vous essayez d'amener les gens à soutenir la meilleure solution, à prendre une décision intelligente et à faire ce qui est nécessaire pour aller de l'avant.

Vous n'avez pas besoin que tout le monde convienne que la décision est la meilleure. Vous avez besoin de tout le monde pour soutenir la décision. La collaboration d'équipe peut aider à recevoir un soutien sur les décisions et à planifier de bonnes exigences.

Les équipes collaboratives travaillent dur pour s'assurer que tout le monde a un intérêt dans les projets et fournit des commentaires. Les équipes collaboratives partagent en permanence des idées, ont généralement une meilleure communication et ont tendance à soutenir les décisions prises car il y a un sentiment partagé d'engagement et de compréhension des objectifs du projet.

C'est lorsque les développeurs, les testeurs ou d'autres parties prenantes se sentent «hors de la boucle» que les problèmes de communication surviennent, les gens sont frustrés et les projets sont retardés. Une fois que tout le monde a adhéré à la portée du travail, il est impératif que les exigences soient claires et bien documentées. Garder une trace de toutes les exigences est là où les choses se compliquent.

Imaginez avoir une liste de tâches d'un kilomètre de long qui implique de collaborer avec plusieurs personnes. Comment garderiez-vous tous ces éléments en ordre? Comment suivriez-vous comment une modification apportée à un élément affecterait le reste du projet? C'est là que la traçabilité et la gestion du changement ajoutent de la valeur.