Aujourd'hui, nous avons essayé d'introduire BDD dans notre processus de développement logiciel en organisant un atelier de spécification.
Pour cet atelier, nous avions 2 développeurs, 1 testeur et 1 analyste commercial. L'atelier a duré 1h30 et à la fin de celui-ci, nous avons réussi à trouver quelques scénarios BDD pour notre nouvelle fonctionnalité. Nous avons essayé de nous concentrer sur la recherche des scénarios que nous pourrions manquer et des plus difficiles.
À la fin de l'atelier, certaines personnes n'étaient pas satisfaites de l'atelier.
Un développeur a estimé qu'il avait perdu son temps car il avait l'habitude de donner les scénarios directement à l'analyste commercial et de les examiner avec elle. L'analyste commerciale n'était pas sûre de la couverture de nos scénarios (avait le sentiment que nous aurions pu passer à côté d'autres choses importantes), mais plus important encore, estimait que cet atelier était également une perte de temps car elle aurait pu comprendre tous ces scénarios par elle-même. et dans un laps de temps plus court .
Cet atelier expérimental a duré 1h30, et à la fin de celui-ci, nous ne nous sentions pas assez confiants sur ce que nous avons fait ... bien sûr, nous aurions pu y consacrer plus de temps mais honnêtement, la plupart des gens sont épuisés après 1h30 de brainstorming pour aller chercher des affaires règles du cerveau BA.
Ma question est donc de savoir comment ce genre d'atelier peut réellement fonctionner. Dans la théorie, étant donné que vous avez une nouvelle fonctionnalité à développer, vous placez l'arbre `` amigos '' (dev / tester / ba) dans la même pièce afin qu'ils puissent collaborer ensemble pour écrire les différentes exigences pour la nouvelle fonctionnalité à l'aide d'exemples. Je peux voir tous les avantages de cela. Surtout en termes de partage des connaissances et de produit commun / objectif final / vision réalisée.
Notre conclusion de cette expérience était qu'il est en fait plus rentable d' avoir d'abord un BA pour travailler seul sur les exemples et ensuite seulement d'avoir les scénarios à réviser / retravailler par les 3 `` amigos ''. En ayant le BA pour travailler seul, nous sommes en fait plus confiants que nous allons moins manquer quelque chose + nous pouvons toujours revoir les scénarios par la suite pour revérifier. Nous ne pensons pas qu'une simple session de brainstorming / découverte délibérée soit réellement suffisante pour couvrir sérieusement toutes les exigences d'une nouvelle fonctionnalité. L'analyste d'affaires est en fait la meilleure personne pour ce genre de choses. La meilleure chose que nous puissions faire est de revoir ce qu'elle a écrit et de voir si nous avons une compréhension commune (ce qui pourrait alors conduire à réécrire certains de ses scénarios ou en ajouter de nouveaux qu'elle aurait pu manquer).
Alors, comment pouvez-vous faire en sorte que cela fonctionne efficacement dans la pratique ?
La durée de la réunion n'est pas votre problème. Il est normal que ces réunions durent longtemps. MAIS tout le monde devrait en sortir confiant. Qu'ils ne l'ont pas fait, c'est votre problème.
Je proposerais une brève réunion pour discuter d'une exigence. Planifiez une deuxième réunion quelques jours plus tard, afin que tout le monde sache qu'ils doivent être prêts d'ici là.
Ensuite, le BA et le testeur devraient chacun proposer leurs scénarios, car ils regardent tous deux les logiciels de manière très différente. Demandez-leur de les écrire sur des cartes et de les coller sur un tableau quelque part, au moins un jour avant la deuxième réunion, laissez chacun regarder à travers son propre temps et y réfléchir. Jetez tous les doublons, montrez tous les scénarios qui n'ont pas été pris en compte.
Ne jetez rien avec quoi vous n'êtes pas d'accord, mais marquez-le comme litigieux. Si une conversation très brève avec la personne qui l'a écrit vous aidera, faites-le, mais surtout enregistrez-le.
ALORS ayez votre réunion de planification / conception. Ayez un ordre du jour solide pour cette réunion (commencez par le tas de cartes, mettez les plus litigieuses en haut) et ne lui permettez pas de dévier. Assurez-vous de sortir de cette réunion avec tous les points de discorde résolus.
la source
Assurez-vous toujours que tout le monde dans une réunion est préparé pour le sujet de cette réunion!
N'utilisez jamais une réunion pour "réfléchir" à quelque chose ensemble. Cela fait perdre du temps à tout le monde.
Recette générale pour des réunions efficaces:
la source
À propos des plaintes ...
Commençons par ceux-ci:
C'est ce qu'il faisait dans l'atelier. Cela me semble donc être une mauvaise excuse de mauvaise humeur. Je soupçonne que ce développeur n'aime tout simplement pas (ou les deux) l'examen minutieux de l'atelier et ses contraintes de planification.
En quoi est-ce différent que lorsqu'elle le fait de son côté et le fait examiner par un développeur, à part le fait que plus de gens l'ont regardé? Je soupçonne que ce n'est que le résultat d'un atelier qui est peut-être un peu chaotique. Vous aurez l'assurance d'avoir suffisamment de tests en les mettant en œuvre et en les intégrant. Vous ne pouvez jamais être sûr d'avoir trouvé tous les bogues, et en ce qui concerne la couverture, la meilleure façon serait de les schématiser dans vos user stories.
Oui, et tout seul, dans son jardin clos et sans partage de connaissances. Alors qu'en faisant cela, les futurs ateliers pourraient être plus productifs car tous les participants ont acquis un peu de connaissances sur la façon d'aborder ces choses.
Peut-être que la réunion a été lente cette fois, cela ne veut pas dire que ce sera toujours le cas. Et en tant que personnel externe, j'aurais, avec une formation pour bien faire les choses, plus de confiance que la couverture était meilleure dans un atelier avec 3 participants avec des mentalités différentes qu'avec un seul dictateur.
De plus, si un développeur avait déjà besoin de revoir ces scénarios avec elle, je suis sûr que le va-et-vient est beaucoup plus rapide et efficace dans l'atelier que d'utiliser le "Je fais mes trucs seuls et je donne des trucs à vous, vous l'examinez seul et revenez vers moi et recommençons ".
Suggestions
Soyez positif et insistez sur le fait que si le processus est bon, vous vous améliorerez.
Essayez de rationaliser l'atelier et de le garder sur la bonne voie.
Peut-être donner de la place à l'analyse du «loup solitaire», en commençant l'atelier avec chacun qui conçoit quelques scénarios par lui-même (encore mieux, avant l'atelier), puis en les triant et en les fusionnant.
Et si vous ne pensez pas que faire ce remue-méninges est nécessaire, très bien: demandez au BA de travailler seul, mais faites ensuite l' examen en tant qu'atelier, au moins. Les globes oculaires plus le mieux, pour citer Eric S. Raymond 's Linus Law :
la source
Vous avez déjà de très bonnes réponses ici, donc je vais me concentrer sur un petit aspect qui a jusqu'à présent été ignoré. Le rôle de chacun des trois Amigo devrait être en mesure de s’acquitter de la session. Ils offrent chacun une valeur différente, ils comprennent chacun un ensemble différent de contraintes.
En général, le BA devrait être en mesure d'apporter le principal chemin heureux à la session, il devrait également être en mesure de fournir les principaux scénarios de défaillance d'un point de vue commercial. L'expertise de test doit être capable d'identifier les cas limites et les scénarios supplémentaires nécessaires pour prouver que le système fonctionne en toutes circonstances. Le travail du développeur n'est pas vraiment d'ajouter des scénarios, bien qu'ils le fassent souvent en cas de défaillance technique, leur travail lui aussi garantit de bien comprendre les exigences afin de transmettre les implications et de mettre en œuvre l'exigence avec le minimum de communication supplémentaire.
la source