Dans mon entreprise, nous travaillons avec succès avec des pratiques agiles - mais sans utiliser d'itérations. La raison principale est que nous ne pouvons pas trouver un moyen propre d'intégrer l'AQ dans un cycle d'itération.
Nous considérons l'AQ comme un élément de vérification supplémentaire pour une certaine version (version candidate) avant que cette version ne soit déployée chez le client. Le but est d'éviter qu'un seul commit malveillant endommage la version entière. Puisque vous ne savez jamais de laquelle il s'agit, QA doit attendre que toutes les fonctionnalités / validations de la version soient dans la version. (Aucun dernier mot célèbre "Ce n'était qu'un petit changement" autorisé.)
Si QA trouve des bogues dans une version candidate, les développeurs corrigent ces bogues dans la branche de publication respective (et la fusionnent dans le tronc). Lorsque tous les bogues sont corrigés, une nouvelle version est déployée pour que QA puisse tester à nouveau. Ce n'est que lorsqu'aucun bogue n'est trouvé dans une certaine version candidate, qu'il est proposé au client pour vérification.
Cela prend généralement environ deux à trois candidats, environ une semaine, par version. Le temps pour écrire les correctifs est généralement beaucoup plus court que les efforts de test. Donc, afin de garder les développeurs occupés, ils travaillent sur la version N + 1 tandis que QA travaille sur N.
Sans utiliser d'itérations, ce n'est pas un problème car nous pouvons chevaucher le travail pour les versions N et N + 1. Cependant, d'après ce que je comprends, ce n'est pas compatible avec les approches basées sur des itérations comme Scrum ou XP. Ils exigent qu'une itération soit libérable à sa fin, tous les efforts de test devant être incorporés dans l'itération.
Je trouve que cela conduit nécessairement à l'un des résultats indésirables suivants:
(A) Les développeurs sont inactifs à la fin d'une itération car le contrôle qualité a besoin de temps pour vérifier une version candidate et le travail de correction de bogues n'occupe pas complètement les développeurs.
(B) Le contrôle qualité commence déjà à fonctionner avant que la première version candidate ne soit prête. C'est ce qui est principalement recommandé sur Stack Exchange. Mais ce n'est pas ce que mon entreprise comprend comme QA car il n'y a pas de version spécifique testée. Et le "petit changement" qui rompt tout peut encore passer inaperçu.
(C) Les bogues sont reportés à la prochaine itération. Ceci est également recommandé sur Stack Exchange. Je ne pense pas que ce soit une solution du tout. Cela signifie essentiellement que nous n'obtenons jamais de version vérifiée car chaque fois que des corrections de bogues sont apportées, de nouvelles validations non vérifiées sont également ajoutées à la même branche.
Y a-t-il un moyen de sortir de ce dilemme?