Lors d'un débat sur ce qu'est Scrum, j'ai trouvé que j'avais peut-être totalement mal compris la chose agile. Il me semble que Scrum (qui est certainement considéré comme un processus Agile) est tout au sujet de la gestion des fonctionnalités et des sprints et des rôles et des trucs sans rien à voir avec TDD, la programmation par paires, l'IC, la refactorisation et d'autres techniques et pratiques centrées sur les développeurs que je pensais ( jusqu'à présent) sont au cœur de l'agilité. Maintenant, je fais face à une difficulté!
1) Scrum est-il indépendant de savoir si les développeurs appliquent des pratiques agiles?
2) Pouvez-vous implémenter Scrum dans une équipe qui n'utilise pas de tests automatisés? n'effectue pas de refactoring ou n'adhère pas aux pratiques de programmation agile?
Scrum est un ensemble de directives qui encouragent une équipe à être agile.
Très difficile, car à la fin de chaque sprint, vous devez avoir un produit fonctionnel. Si vous devez faire un test de régression manuel complet pour prouver qu'il fonctionne, cela risque d'être irréalisable.
la source
Alistair Cockburn (l'un des initiateurs du mouvement Agile) dit ceci à propos de Crystal Clear (une facette de sa méthodologie Agile):
C'est une définition de l'agilité, certes pour le personnel de développement expérimenté qui sait ce qu'il fait et à qui on peut faire confiance pour continuer et le faire. Cela signifie-t-il donc que vous devez utiliser CI et TDD et la programmation par paires et toutes les autres choses à la mode? En termes simples ... Non.
Agile ne consiste pas à suivre un ensemble de processus, mais à être efficace. Ce que cela signifie pour vous dépend de votre équipe et de son fonctionnement, de ce que vous trouvez utile pour vous. Si TDD ne vous aide pas à produire du code de travail, alors arrêtez d'écouter les petites lumières qui en crient sur le web et ne l'utilisez pas! Si la programmation en binôme aide vraiment votre équipe à se concentrer et à faire avancer les choses, alors ignorez tous ceux qui disent que c'est une perte de temps et organisez votre équipe comme une course à 3 jambes lors de la journée sportive de l'école.
J'ai fait de l'agilité il y a de nombreuses années, tellement nous ne savions même pas que nous faisions de l'agile - nous avons livré des itérations du produit chaque mois, et fait des cycles de correction de bugs et ajout de nouvelles fonctionnalités régulièrement. Nous n'avons fait absolument aucun test unitaire car de telles choses n'avaient pas été inventées et le livre de refactorisation n'avait pas été écrit. Alors oui, vous pouvez absolument faire de l'agile sans aucune des pratiques dites agiles.
Alistair dit également ceci de Kent Beck:
Finalement, peu importe si vous faites de l'XP ou pas ... des mots sages qui devraient vous rappeler de ne pas tomber dans ce piège .
la source
Scrum est une saveur d'agile qui suit un modèle spécifique pour atteindre les objectifs de la méthodologie de développement agile. Vous ne pouvez pas suivre Scrum et ne pas être agile, mais vous pouvez être agile et ne pas suivre Scrum.
Scrum n'a aucune incidence sur l'utilisation de tests automatisés, l'agile a tendance à les favoriser mais n'est en aucun cas requis. Le refactoring devrait être un objectif en agile et Scrum, mais son souvent ignoré. n'avoir aucune intention de refactoriser n'est pas vraiment agile.
la source
Agile est un ensemble de pratiques de développement logiciel pour répondre à la flexibilité et aux exigences du marché à changement de phase rapide - ou soi-disant livraison accélérée . Donc, dans une vue d'ensemble, il s'agit d'une approche flexible pour répondre aux exigences complexes changeantes du client en divisant le travail en petits morceaux et en fournissant des fonctionnalités en itérations rapides de 2 à 4 semaines.
Cependant, pour répondre à cette flexibilité, l'équipe de développement doit pratiquer les pratiques de programmation Agile .
Description de Wiki concernant le développement de logiciels Agile :
la source
En fait, vous pouvez utiliser Scrum dans des projets qui n'ont rien à voir avec le développement de logiciels. C'est une méthode de gestion de projet / gestion d'équipe.
la source
1) NON !!!! Scrum est Agile, ce qui signifie que les pratiques de développement agiles (TDD, programmation par paires, CI, refactoring, etc.) sont très importantes pour tous les aspects d'un projet Scrum. Il sera beaucoup plus difficile de déterminer le taux d'exécution de vos équipes, d'estimer le travail, de définir la taille de sprint appropriée, etc. si vous n'utilisez pas ces pratiques.
2) Oui, vous pouvez implémenter Scrum dans une équipe qui n'adhère pas aux pratiques agiles, mais je pense que cela limite vraiment le potentiel de l'équipe. Une grande partie des raisons pour lesquelles Scrum / Agile sont si réussies sont les gains de performance et de qualité que vous obtenez des pratiques de développement Agile qui sont essentielles pour fournir des fonctionnalités complètes d'avant en arrière à chaque sprint.
Si quelqu'un d'autre dans votre groupe essaie de vous convaincre que les pratiques de développement Agile sont une perte de temps, je pense que vous devriez passer un peu de temps à souligner pourquoi ces pratiques sont toujours stressées avec Scrum ainsi qu'avec Agile dans son ensemble. Ils font vraiment une différence.
la source