Eh bien, la réponse directe à votre question serait Mu, je le crains - il n'y a tout simplement pas assez de détails pour faire une supposition éclairée si vous devez ou non arrêter d'essayer.
La seule chose que je suis assez positive, c'est que le niveau d'agilité devrait être déterminé par les besoins des clients / du marché (dont vous n'avez donné aucune information).
- Par exemple, en tant qu'utilisateur d'IDE, je suis parfaitement heureux de passer à la nouvelle version une ou peut-être deux fois par an et je ne suis jamais pressé de le faire. C'est-à-dire que si leur cycle de sortie est de 3 mois ( 12 semaines ), j'en suis parfaitement satisfait.
D'un autre côté, je peux facilement imaginer, disons, une société de négoce financier faire faillite s'il faut plus d'un mois pour que son logiciel s'adapte aux changements du marché - un cycle de test de 12 semaines dans ce cas serait une route vers l'enfer. Maintenant - quels sont vos besoins en matière de produits à cet égard?
Une autre chose à considérer est le niveau de qualité requis pour répondre aux besoins de votre client / marché.
- Exemple: dans une entreprise où j'ai travaillé, nous avons constaté que nous avions besoin d'une nouvelle fonctionnalité dans un produit sous licence d'un fournisseur de logiciels. Sans cette fonctionnalité, nous avons souffert assez fortement, alors oui, nous voulions vraiment qu'ils soient agiles et fournissent une mise à jour dans un délai d'un mois.
Et oui, ils semblaient être agiles et oui, ils ont publié cette mise à jour en un mois (si leur cycle d'assurance qualité est de 12 semaines, ils l'ont probablement sauté). Et notre fonctionnalité a parfaitement fonctionné - devinez-vous que nous aurions dû être parfaitement heureux? non! nous avons découvert un bogue de régression showstopper dans certaines fonctionnalités qui fonctionnaient très bien auparavant - nous avons donc dû nous en tenir à l'ancienne version.
Un autre mois s'est écoulé - ils ont sorti une autre nouvelle version: notre fonctionnalitéétait là mais le même bug de régression était là aussi: encore une fois, nous n'avons pas mis à niveau. Et encore un mois et un autre.
En fin de compte, nous n'avons pu mettre à niveau que six mois plus tard, tant pour leur agilité.
Maintenant, regardons de plus près ces 12 semaines que vous mentionnez.
Quelles options avez-vous envisagées pour raccourcir le cycle d'AQ? comme vous pouvez le voir dans l'exemple ci-dessus, le sauter simplement ne vous donnera peut-être pas ce que vous attendez donc vous feriez mieux d'être, eh bien, agile et d'envisager différentes façons de le résoudre.
Par exemple, avez-vous envisagé des moyens d'améliorer la testabilité de votre produit?
Ou, avez-vous envisagé une solution de force brute pour simplement embaucher plus d'AQ? Aussi simple que cela puisse paraître, dans certains cas, c'est effectivement la voie à suivre. J'ai vu la direction inexpérimentée essayer de résoudre les problèmes de qualité des produits en embauchant aveuglément de plus en plus de développeurs seniors, où une paire de testeurs professionnels moyens suffirait. Assez pathétique.
Le dernier mais non le moindre - je pense que l'on devrait être agile quant à l'application même des principes agiles. Je veux dire, si les exigences du projet ne sont pas agiles (stables ou changent lentement), alors pourquoi s'embêter? J'ai vu une fois la direction forcer Scrum dans des projets qui se passaient parfaitement bien sans. Quel gaspillage c'était. Non seulement il n'y a eu aucune amélioration dans leur livraison, mais pire, les développeurs et les testeurs sont tous devenus mécontents.
mise à jour basée sur les clarifications fournies dans les commentaires
Pour moi, l'une des parties les plus importantes d'Agile est d'avoir une version livrable à la fin de chaque sprint. Cela implique plusieurs choses. Tout d'abord, un niveau de test doit être effectué pour garantir l'absence de bogues spectaculaires si vous pensez que vous pourriez publier la version à un client ...
Version livrable je vois. Hm. Hmmm. Pensez à ajouter une dose ou deux de Lean dans votre cocktail Agile. Je veux dire, si ce n'est pas un besoin client / marché, cela signifierait seulement un gaspillage de ressources (de test).
Pour ma part, je ne vois rien de criminel en traitant Sprint-end-release comme un simple point de contrôle qui satisfait l'équipe.
- dev: oui celui-là a l'air assez bon pour passer aux testeurs; QA: oui, celui-ci semble assez bon pour le cas si d'autres tests d'expédition sont nécessaires - des trucs comme ça. L'équipe (dev + QA) est satisfaite, c'est tout.
... Le point le plus important que vous avez soulevé était à la fin de votre réponse en termes de non-application d'agile si les exigences ne sont pas agiles. Je pense que c'est parfait. Lorsque nous avons commencé à faire de l'agilité, nous l'avons fait composer et les circonstances avaient du sens. Mais depuis lors, les choses ont radicalement changé et nous nous accrochons au processus où cela pourrait ne plus avoir de sens.
Vous avez parfaitement compris. De ce que vous décrivez, il semble également que vous soyez arrivé à l'état (maturité équipe / gestion et relation client) vous permettant d'utiliser le développement de modèles itératifs régulier au lieu de Scrum. Si oui , alors vous pourriez être également intéressé de savoir que par mon expérience dans des cas comme celui itérative régulier ressenti plus productif que Scrum. Beaucoup plus productif - il y avait tout simplement tellement moins de frais généraux, c'était tellement plus facile de se concentrer sur le développement (pour que l'AQ se concentre respectivement sur les tests).
- Je pense généralement à cela en termes de Ferrari (comme itération régulière) vs Landrover (comme Scrum).
Lorsque vous conduisez sur une autoroute (et votre projet semble avoir atteint cette autoroute ), Ferrari bat l'enfer de Landrover.
C'est le tout-terrain où l'on a besoin d'une jeep et non d'une voiture de sport - je veux dire si vos besoins sont irréguliers et / ou si le travail d'équipe et l'expérience de gestion ne sont pas si bons, vous devrez choisir Scrum - simplement parce qu'essayer régulièrement vous coincé - comme Ferrari restera coincé hors route.
Notre produit complet est vraiment composé de nombreuses petites pièces qui peuvent toutes être mises à niveau indépendamment. Je pense que nos clients sont très disposés à mettre à niveau ces composants plus petits beaucoup plus fréquemment. Il me semble que nous devrions peut-être plutôt nous concentrer sur la libération et l'assurance qualité de ces petits composants à la fin des sprints ...
Ci-dessus sonne comme un bon plan. J'ai travaillé une fois sur un tel projet. Nous avons expédié des versions mensuelles avec des mises à jour localisées dans de petits composants à faible risque et l'approbation de l'assurance qualité pour ces derniers était aussi simple que possible.
- Une chose à garder à l'esprit pour cette stratégie est d'avoir une vérification testable que le changement est localisé là où on l'attend. Même si cela va jusqu'à la comparaison de fichiers bit par bit pour les composants qui n'ont pas changé, allez-y ou vous ne le recevrez pas. Le fait est que c'est le QA qui est responsable de la qualité des versions, pas nous les développeurs.
C'est le casse-tête du testeur de s'assurer que des changements inattendus ne passent pas - parce que franchement, en tant que développeur, j'ai suffisamment d'autres choses à craindre qui sont plus importantes pour moi. Et à cause de cela, ils (les testeurs) ont vraiment vraiment besoin d' une preuve solide que les choses sont sous contrôle avec la version qu'ils testent pour expédier.