J'interviens un peu tard dans la soirée, mais voici mon point de vue sur ce que vous avez écrit.
Or, Scrum est une méthodologie de gestion de projet, et non de développement. Mais il est essentiel, à mon avis, de mettre en place un processus de développement. Sans cela, vous passez la majorité de votre temps à Réagissant plutôt que de construire.
Je suis un gars qui teste d'abord. Dans mon processus de développement, je construis d'abord des tests pour faire respecter les exigences et les décisions de conception. Comment votre l'équipe qui les applique ? Le point que j'essaie de faire ici est que vous ne pouvez tout simplement pas "jeter des trucs par-dessus la clôture" et s'attendre à tout sauf à l'échec. Cet échec sera le fait de l'équipe de test (qui ne testera pas très bien et laissera donc passer les problèmes) ou des développeurs (qui ne construiront pas le produit qui résout le problème). Je ne dis pas que vous doit écrivez d'abord des tests - je ne suis pas un militant ou un évangéliste des tests d'abord - mais je dis qu'il faut doit disposer d'un processus permettant de produire un code de qualité, testé et prêt à être mis en production lorsque vous arrivez à la fin d'une itération.
J'ai été là où vous êtes dans cette méthodologie de développement que j'appelle le Méthode de la spirale de la mort . J'ai construit des logiciels pour le gouvernement (américain) pendant des années selon un tel modèle. Cela ne fonctionne pas bien, cela coûte BEAUCOUP d'argent, cela produit du code en retard, du code de mauvaise qualité, et cela ne fait rien pour le moral. Vous ne pouvez pas avancer quand vous passez tout votre temps à corriger des bogues que vous auriez pu éviter de créer en premier lieu. J'étais absolument abattu par cette affaire.
Vous ne voulez pas que l'AQ trouve vos problèmes. Vous voulez les mettre au chômage, vraiment. Mon but est de rendre le service d'assurance qualité stupéfait parce que tout fonctionne. D'accord, c'est un objectif. En pratique, ils trouveront des trucs. Je ne suis pas surhumain. Je fais des erreurs.
Retour à la programmation...
Dans mon travail actuel, nous faisons du Scrum, mais nous ne l'appelons pas ainsi. Nous n'aimons pas les étiquettes, mais nous voulons produire un code de qualité dans les délais. Tout le monde est à bord. Nous disons à l'AQ ce que nous allons avoir de prêt à tester et quand. S'ils viennent frapper à la porte deux semaines plus tôt, ils peuvent parler à la main. Tout le monde connaît le calendrier, tout le monde sait ce que contiendra la version et tout le monde sait que le produit doit fonctionner comme prévu avant d'être envoyé au service d'assurance qualité. Alors qu'est-ce que cela signifie ? Vous dites au service d'assurance qualité "ne vous embêtez pas à tester XYZ - il est cassé et ne sera pas corrigé avant la version C" et s'ils vont le tester, vous leur renvoyez à cette déclaration et leur dites de ne pas perdre leur temps. C'est peut-être dur, mais c'est parfois nécessaire. Il ne s'agit pas d'être impoli, mais chacun doit connaître "les règles" et savoir ce qui doit être testé et ce qui est un "problème connu".
Votre direction doit être d'accord. S'ils ne le sont pas, vous aurez des problèmes. L'AQ ne peut pas diriger le spectacle et le groupe de développement ne peut pas le diriger complètement non plus. Tous les groupes (même s'il ne s'agit que d'une personne par groupe ou d'une personne qui porte plusieurs casquettes) doivent être sur la même longueur d'onde : le client, l'équipe de test, les développeurs, la direction et tous les autres. Plus de la moitié de la bataille est la communication, typiquement.
Peut-être que vous en faites plus que ce que vous pouvez accomplir pendant un sprint. C'est peut-être le cas. Mais pourquoi faites-vous cela ? Pour respecter un calendrier ? Si c'est le cas, c'est là que la direction doit intervenir et résoudre le problème. Si vous donnez à l'AQ un code bogué, attendez-vous à ce qu'il le rejette. Il vaut mieux leur donner 3 choses qui fonctionnent que 8 choses qui ne sont pas terminées. L'objectif est de produire un ensemble de fonctionnalités qui sont complètement mises en œuvre à chaque itération, et non pas d'assembler un tas de choses à moitié faites.
J'espère que ce message est reçu comme il doit l'être - comme un encouragement et non comme une diatribe. Comme je l'ai mentionné, j'ai été là où vous êtes et ce n'est pas drôle. Mais il y a de l'espoir. Vous pouvez renverser la situation en un sprint, voire deux. Peut-être n'ajoutez-vous aucune nouvelle fonctionnalité lors du prochain sprint et réparez-vous simplement ce qui est cassé. C'est à vous d'en décider en équipe.
Encore une petite astuce pour écrire du code de test : Je me suis trouvé beaucoup plus détendu et beaucoup plus confiant dans mon produit depuis que j'ai adopté l'approche "écrire les tests d'abord". Lorsque tous mes tests réussissent, j'ai un niveau de confiance que je ne pouvais tout simplement pas avoir sans eux.
Bonne chance !