L'équipe Scrum
- 3 x développeurs
- 2 x testeurs
- 1 x Analyste de test d'automatisation
Nous ne sommes pas une équipe multifonctionnelle dans la mesure où les développeurs ne testent pas et les testeurs ne développent pas. Je pense que c'est la cause première du problème.
Nous faisons actuellement des sprints de deux semaines.
Au début du sprint, tout le monde est occupé, les développeurs commencent le travail de développement et les testeurs préparent leur test (rédaction de cas de test, etc.)
Une fois que les testeurs ont terminé leur préparation, ils attendent maintenant que le travail de développement soit terminé OU le travail de développement est terminé et les développeurs attendent des commentaires / bogues.
Les développeurs se démangent ici et commencent à travailler sur des éléments du backlog qui sont en dehors du sprint actuel. Cela a créé un effet étrange par lequel nous développons toujours le prochain travail de sprint dans le sprint actuel. Pour moi, cela ne me semble pas juste.
Du point de vue de la direction, ils préfèrent que les développeurs travaillent plutôt que de s'asseoir à leur bureau sans rien faire, mais en même temps, je pense que l'objectif de l'équipe Scrum et que l'accent devrait être uniquement sur le sprint actuel. Je souhaite que notre équipe soit multifonctionnelle mais malheureusement ce n'est pas réalisable. Les testeurs n'ont pas les compétences nécessaires pour effectuer des travaux de développement et la majorité des développeurs estiment que les tests sont en dessous d'eux.
Est-ce considéré comme un problème dans la mêlée? Y a-t-il une solution à cela? Scrum fonctionne-t-il uniquement avec des équipes multifonctionnelles?
J'aimerais connaître les expériences d'autres personnes avec cela si possible :)
Réponses:
C'est un problème assez courant, causé par le pipelining . L'équipe est multifonctionnelle, mais bien sûr, il existe des silos internes qui diminuent les performances.
Tout d'abord, je voudrais noter quelques points qui, à mon avis, sont importants:
Si vos développeurs effectuent une itération à l'avance, ils anticipent sur votre réunion de planification. Votre chef de produit et l'équipe doivent discuter correctement de ce qui est le plus précieux pour la prochaine itération. La priorisation ne doit pas être effectuée efficacement par les développeurs car ils n'ont rien de mieux à faire.
Peu importe comment vous divisez et organisez les itérations, vous ne pouvez pas vraiment occuper tout le monde tout le temps et avoir une seule équipe avec une seule réunion de planification tant que votre équipe a des spécialistes travaillant en silos. Même avec une approche en cascade pure, vous auriez toujours besoin de "jeter des trucs sur le mur" et d'attendre les commentaires.
Vous avez également le problème que souvent une seule histoire doit avoir une phase de développement, suivie d'une phase de test, suivie d'une phase de correction de bugs, suivie de ... cela peut vraiment rendre votre équipe inefficace - surtout si elle travaille à l'avance , car ils doivent changer de contexte.
Il est clair que cette situation a un coût très réel: l'équipe ne collabore pas. Je l'ai rencontré à chaque fois qu'une équipe d'assurance qualité était impliquée, j'ai donc eu un peu de temps pour expérimenter différentes solutions.
Ce qui a très bien fonctionné pour moi, ce sont ces deux outils:
Soulignez le principe selon lequel toute l'équipe est responsable de faire avancer les choses. Refusez les histoires "dev done", car elles sont un moyen pour les développeurs de dire "ce n'est plus mon problème", ce qui n'est ni constructif ni manifestement faux. Si une équipe ne livre pas une histoire qu'elle a acceptée, c'est toute l'équipe qui n'a pas livré.
Pour occuper le temps des développeurs et du contrôle qualité, associez-les . C'est de loin le meilleur moyen de partager l'expertise et la connaissance du domaine que vous pouvez choisir. Les développeurs peuvent aider les testeurs à automatiser leurs tâches. Les testeurs peuvent montrer aux développeurs où il est important de tester le code car il est fragile. Les deux collaborent et travaillent plus rapidement qu'improbable.
En utilisant ces deux techniques, l'équipe devrait être moins cloisonnée et plus performante. Bien qu'il soit très peu probable que les testeurs et les développeurs soient en mesure d'échanger des emplois, ils pourront travailler en équipe et résoudre le problème en interne, au lieu de se blâmer mutuellement.
la source
Il n'y a aucun problème avec la façon dont vous travaillez en rapport avec SCRUM et les sprints, à condition qu'il soit enregistré au moment de l'évaluation que le travail du développeur a été terminé en moins de temps (et combien de temps) que prévu. Cela permettra à l'équipe d'acquérir plus de points d'histoire pour le prochain sprint. Après tout, le but des sprints est de s'améliorer dans la planification. De toute évidence, vous pouvez encore vous améliorer.
Whoa! Ce n'est techniquement pas possible dans Scrum. Vous ne savez pas quels éléments de backlog seront dans le prochain sprint, qui doit être établi au début du prochain sprint dans une session de planification de sprint.
Il reste intéressant de découvrir de nouvelles façons créatives que les organisations inventent pour saboter Scrum.
la source
Scrum optimise pour l' équipe , pas pour l'individu. Le but de la mêlée est que l'équipe devienne efficace. Si les développeurs commencent à travailler sur des choses en dehors du sprint actuel, ils ne rendent pas service à l'équipe. Cela montre également que vous échouez quelque peu dans votre processus de planification, si vous ne planifiez pas suffisamment de travail pour remplir le printemps.
Si les développeurs n'ont plus de tâches de développement, ils doivent absolument intervenir et aider les testeurs ou les rédacteurs techniques ou les concepteurs - n'importe qui dans l'équipe. Ils ne doivent pas nécessairement écrire de tests réels (bien qu'ils le devraient ), mais ils peuvent toujours participer au processus de test. Ils peuvent écrire des scripts qui aident les testeurs à être plus efficaces, ou ils peuvent simplement discuter avec les testeurs de leurs défis et les aider à surmonter ces défis (par exemple: ajouter des attributs id aux éléments de la page Web, fournir des crochets ou des API que les testeurs peuvent utiliser dans leurs tests, etc.).
Je pense que le cœur du problème est que si vos développeurs ne travaillent pas toujours sur le sprint actuel, ils ne travaillent pas encore en équipe. Votre Scrum Master devrait en prendre note et s'efforcer de faire travailler l'équipe en tant qu'unité plutôt qu'en tant que groupe d'individus.
Je suggère également qu'il s'agit d'un problème de gestion. S'ils exercent une pression sur les développeurs pour qu'ils restent occupés, ils n'ont pas complètement adopté Scrum. C'est une autre chose avec laquelle le Scrum Master peut vous aider. Ils peuvent travailler avec la direction pour les aider à comprendre le fonctionnement de Scrum afin d'aider et d'encourager les équipes de développement plutôt que de les renverser.
la source
Je pense que le problème clé ici est le suivant:
La façon dont nous avons géré cela dans notre entreprise est que nous avons demandé aux développeurs comment ils pouvaient dire qu'ils avaient effectivement terminé leur travail s'ils ne pouvaient pas le prouver. Bien sûr, la seule façon de le prouver est de démontrer que le code qu'ils ont écrit fonctionne réellement, et cela se fait par le biais de tests. Il convient de leur faire remarquer que s'ils acceptent de participer aux tests, les tests seront effectués plus rapidement et ils auront plus de temps pour coder des fonctionnalités supplémentaires (qui devront également être testées).
Faites remarquer que tester votre code n'est pas en dessous du niveau des développeurs. Il fait partie intégrante du processus de développement. Il ne peut pas être séparé du simple codage. Tout le monde peut coder. Tout le monde ne peut pas coder et prouver que ce qu'il a codé fonctionne réellement.
Une autre façon de garder les développeurs occupés est de les faire travailler sur le codage de tests automatisés pour les fonctionnalités qu'ils ont développées dans le sprint. Ces tests pourraient ensuite être utilisés pour des tests de régression qui seraient exécutés périodiquement.
Quoi qu'il en soit, faire quelque chose qui n'était pas prévu au début du sprint est un gros non. Il vaut mieux ne rien faire, que de faire quelque chose qui n'était pas prévu. La fonctionnalité qu'ils écrivent dans ces cas ne répond probablement pas aux critères DoD (Definition of Done), car elle n'est probablement pas bien testée, car les testeurs étaient occupés à tester ce qui était initialement prévu. C'est une façon infaillible d'introduire des bogues et de détériorer la qualité du produit, ce qui envoie ensuite l'équipe dans une spirale descendante de problèmes de régression et de changement de contexte, ce qui entraîne du stress, une vitesse réduite et enfin, quitte l'équipe à cause de cela.
la source
En théorie, tous les membres d'une équipe SCRUM devraient avoir les mêmes connaissances, afin que chaque membre puisse prendre chaque tâche de chaque autre membre. Sinon, vous devez diffuser les connaissances.
Mais dans la pratique, il y a toujours une sorte de spécialisation. Le logiciel peut être complexe, les membres de l'équipe ont des compétences différentes, etc. La division de l'équipe en développeurs et testeurs n'est qu'un exemple (très courant) de spécialisation.
La diffusion des connaissances peut prendre plus de temps que la direction ne veut en accepter.
D'après mon expérience, vous pourriez faire plusieurs choses:
Ces suggestions peuvent ne pas être une théorie 100% SCRUM, mais vous devez d'abord continuer à travailler sur le développement. SCRUM n'est qu'une boîte à outils.
la source
Il semble que vous devez désychroniser votre équipe. Comme ça:
Si j'ai bien compris, les gars de l'automatisation des tests doivent commencer quelques jours plus tôt.
Mais je sens un problème dans votre équipe: j'ai un problème avec les développeurs qui ne testent pas leur propre code. Si les testeurs préparent le test sans revoir le code, ils ne font probablement que des tests de blackbox qui ne prennent pas en compte les points de décision du programme développé. Vous êtes satisfait de la qualité de votre logiciel?
la source