Je travaille comme une analyste d'entreprise dans un S/W Firm Firm. Lors d'une société antérieure, j'étais un BA dans la gestion des actifs, et le BAS Il y avait plus d'affaires (c'est-à-dire moins techniquement incliné).
Nous construisons actuellement une application Web et j'utilise Jira pour écrire les histoires d'utilisateurs, les critères d'acceptation, etc. pour les exigences fonctionnelles.
J'écris des histoires d'utilisateurs pour décrire les exigences fonctionnelles:
Par exemple:
En tant qu'utilisateur client, je souhaite envoyer un courrier électronique de confirmation une fois que j'ai enregistré un compte, de sorte que j'ai une confirmation que mon enregistrement a été terminé.
Critères d'acceptation:
Certains développeurs qui pensent que je dois aussi écrire les billets API associés, et il y a d'autres développeurs qui pensent que ce n'est pas le rôle du BA.
La chose est que pendant que je l'ai étudié, je n'ai jamais étudié les API en détail ni que j'ai déjà travaillé comme développeur professionnel. Je suis entré dans une analyse de l'entreprise directement.
Est-ce le rôle d'un BA d'écrire des billets API dans un projet de développement de logiciels? Ou est-ce le rôle du développeur d'écrire les billets API associés en tant que sous-tâches des histoires que j'écris?
Tous les sites BA que j'ai visités uniquement sur conversation des exigences fonctionnelles/non fonctionnelles lors de la rédaction d'histoires d'utilisateurs (comme l'exemple que j'ai fourni) et non des billets d'API.
Merci!
IMHO Le point clé, qui a déjà été mentionné dans les commentaires, est si l'API est une exigence externe (car votre système offre aux tiers une possibilité d'y accéder par programme) ou s'il s'agit d'un détail de mise en œuvre interne.
Pour la situation antérieure, il peut être judicieux de voir l'API dans le cadre des besoins en entreprise, alors quelque chose qu'un BA serait responsable de. Pour ce dernier, il est souvent plus logique de laisser l'API être sous la responsabilité des développeurs de l'équipe.
Remarque Ceci est juste un "modèle par le livre": si vous voulez que la séparation entre le "rôle de développement typique" et "le rôle typique de BA" dans votre organisation soit aussi stricte à vous et à votre équipe. Une équipe vraiment agile devrait distribuer les responsabilités de la manière qui fonctionne mieux entre elles, et non la façon dont certains modèles théoriques les définissent.
La première chose d'abord .... Si vous êtes un BA qui est une entreprise inclinée, vous êtes un Analyste de processus métier. Si vous êtes un BA qui est techniquement incliné (et la plupart des temps, vous venez d'un fond de développement), vous êtes un Analyst Systems Systems. Il est grand temps que l'industrie ait une distinction claire entre ces deux types d'analystes d'affaires.
Sur la base de votre description ci-dessus, si vous n'étiez jamais un développeur ni de comprendre comment les systèmes communiquent via des API, vous êtes un analyste de processus métier. Le rôle que vous occupez nécessite une personne qui était un développeur et que je dis cela parce que je travaille actuellement comme analyste des systèmes d'affaires et mon arrière-plan est dans le développement Web C # .NET.
Si vous êtes censé travailler en tant qu'analyste d'entreprise sur un projet de développement de logiciels (Analyste de Systems Business Systems), il est clair que votre responsabilité de définir la spécification de l'API, pour le produit que vous développez et certains des détails attendus de vous seraient les en-têtes, Paramètres de requête à analyser, les types de données logiques, les longueurs de champ, etc.
La spécification de l'API n'est pas nécessairement la "Comment" du système (par conséquent, je suis en désaccord avec ce que Daniel a dit dans son commentaire), c'est en fait une partie de la "quel" du système en ce qu'il décrit "quelles" informations à envoyer à Le programme de messagerie et le type de données logique (pas le type de données physique).
Vous devez dire au développeur quelles informations envoyer à travers le programme de messagerie. Si j'étais le développeur de votre projet, je vous poserais la même question. Une simple analogie serait si vous me demandez de vous construire un véhicule. Vous devriez me dire ce que vous utiliseriez le véhicule, combien de passagers transporteriez-vous, seraient-ils utilisés pour des droits lourds ou non, etc., en fonction de votre réponse à ces questions, je serais en mesure de déterminer si Construisez-vous une voiture, une moto, un camion, un tracteur ou un 4x4. Par conséquent, pour le courrier électronique, je serais également intéressé à connaître le nombre de bénéficiaires, il y aurait un CC ou BCC, si le courrier électronique doit-il être mobile optimisé?, Devrait-il s'agir de texte clair ou de code HTML, existe-t-il des besoins de cryptage ou d'anonymisation lors de l'envoi L'email, etc ....... Un exemple de "Comment" pour cette histoire est quel protocole à utiliser pour envoyer l'e-mail, c'est-à-dire SMTP et que ceci est au développeur ..... J'espère que cela aide.
PS: dans le scénario décrit, car la spécification de l'API est de définir les informations à échanger entre les deux systèmes, je l'écrirais dans le cadre de mes critères de réussite pour l'histoire de l'utilisateur non comme une histoire séparée, mais c'est moi. La chose la plus importante est que l'information est documentée.
Je ne comprends pas non plus pourquoi tout le monde demande si votre API doit être consommée à l'intérieur ou à l'extérieur ..... Je pense que votre histoire d'utilisateur dit tout .... Vous construisez un formulaire d'inscription dans le cadre d'une application Web et Vous avez besoin de l'application Web pour interfacer avec un programme de messagerie (éventuellement votre programme de messagerie de votre organisation). Les gars, la réponse est dans l'histoire de l'utilisateur !!!
TL; dr; vous ne devriez pas écrire des histoires d'utilisateurs d'API (dans votre contexte), mais tous les éléments d'arriétrie sont des histoires utilisateur.
Dans les commentaires, vous dites que l'API fait partie de votre architecture. Ce n'est pas lui-même un produit que l'utilisateur consomme (par opposition à des produits tels que AWS ayant une API que les utilisateurs puissent exploiter leurs services). Il est impossible d'écrire une histoire d'utilisateur (du point de vue de l'utilisateur) pour l'API. N'oubliez pas que des histoires d'utilisateur à l'origine ont été réellement écrites par les utilisateurs.
De plus, l'API dans ce cas est la manière dont je, en tant que développeur, fournirait une autre histoire utilisateur, pas la ce qui est livré. Pour utiliser votre exemple, c'est la confirmation de courrier électronique et appeler l'API à l'API est la manière dont l'équipe implémente cette capacité, de sorte que de manière proprement la catégorie des tâches.
Bien entendu, les histoires d'utilisateurs ne sont pas nécessaires pour Scrum. "Ajouter un appel de courrier électronique de confirmation à REST API" peut être un élément d'arriéré - ce n'est tout simplement pas une histoire d'utilisateur. Il y a de nombreuses raisons pour lesquelles je recommanderais d'utiliser des histoires d'utilisateurs au lieu d'éléments d'arriéré comme celui-ci , mais si vous vous trouvez dans une situation où vous en avez besoin, il n'est pas intrinsèquement anti-Scrum d'en avoir un (vous pourriez enfreindre l'autonomie de l'équipe Dev autour de la mise en œuvre, mais c'est un autre sujet).
Enfin, tout le monde peut écrire des articles dans l'arriéré. Scrum dit simplement que le propriétaire du produit est responsable de la priorisation et de la santé de l'arriéré. Si l'équipe voit la nécessité d'une autre histoire utilisateur ou d'un autre type d'article d'arriétrie, ils sont autorisés à l'écrire.
Je crois que quiconque peut écrire des exigences de l'API tant qu'ils sont familiarisés avec le domaine, les API, les tests API et ont du bon sens. Mais, j'ai vu des analystes et des gestionnaires de produits d'affaires écrivant des histoires d'API sans détails de base et essentiels, rendant ainsi les histoires inutiles aux développeurs et aux testeurs. Par conséquent, les développeurs et les testeurs doivent comprendre les exigences eux-mêmes.
Par exemple, j'ai vu des histoires d'API qui ne mentionnent pas les en-têtes, les paramètres de requête, les réponses des échantillons, etc. Certaines API ont des champs tels que la date, le pourcentage, etc., mais les formats attendus de ces champs sont manquants. (Format de date des États-Unis ou du Royaume-Uni?, Pourcentage avec 1 ou 2 décimales? Est-ce qu'un BA ou PM a-t-il vraiment besoin d'un degré de fantaisie pour poser des questions simples comme celles-ci?) . Dans toutes les histoires, la réponse de différents sentiers de trajectoire ou d'utilisation normale n'est jamais mentionnée.
Comme Doc Brown mentionnait à juste titre, les exigences en matière d'écriture peuvent être la responsabilité de l'ensemble de l'équipe et non seulement BA ou PM. Mais si votre BA ou PM n'est pas suffisamment qualifié et suffisamment intelligent pour le faire, les développeurs et les QA devraient prendre cette responsabilité.
Non. Une API est une interface entre deux (ou plusieurs) pièces de logiciel (par exemple le code côté client et le code côté serveur). En tant que tel, je pense qu'il est généralement préférable que la nature de l'API soit négociée entre les développeurs ou les équipes, responsable de la construction et de la maintien de ces deux logiciels.
Je ne pense pas qu'il y a une réponse claire à cela. Cela dépend de ce que votre équipe a besoin et votre solution. Laissez-moi expliquer:
De manière générale à Agile, notre objectif est de fournir une valeur utilisateur finale. Il existe un risque avec l'API ou d'autres histoires technologiques pour créer quelque chose qui n'en est pas de valeur, ni au moins hors de contexte. Imaginez une histoire comme dans "Je veux l'API XZY de récupérer le champ d'adresse". Cela peut être techniquement correct, mais pourquoi le faisons-nous? En fait, vous pouvez même vous proscrire à la mise en œuvre qui est discutable.
Donc, ce que nous devrions faire est d'écrire des histoires qui sont confrontées à l'utilisateur final.
Cela dit, j'ai écrit des histoires d'API dans un certain nombre de cas: - Si votre API est du public, vous avez un utilisateur, que vous soyez l'homme ou le système avec un intérêt direct non seulement dans la partie fonctionnelle mais non fonctionnelle de la API (par exemple, "nombre minimal d'appels"). Dans ce cas, il peut très bien être justifié d'écrire des histoires d'API. - En outre, et peut-être plus controversé, si vous imister un système avec un certain nombre de services qui utilisent tous un service de configuration interne dans le cadre de leur prestation de services, vous pouvez avoir des équipes qui possèdent des services individuels. Dans ce cas, il peut être logique d'écrire des histoires d'API pour communiquer entre les équipes. Cela dit, il y a un risque que vous puissiez travailler dans des silos et ma question serait la suivante: pourquoi une équipe ne fait-elle pas la fin complète?
Un excellent livre (indépendant de savoir si vous travaillez avec des microservices ou non) qui s'adresse à ce que Sam Newman's Building Building Microservices où il discute de divers modèles à ce sujet: https://samnewman.io/talks/principles-of- microservices /
En outre, le podcast agile le brûlage aura un épisode sur exactement cela en mai :)