Le développement ou la gestion sont-ils agiles?

9

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?

Ashkan Kh. Nazary
la source

Réponses:

19

C'est une erreur courante de penser que Scrum est égal à Agile.

Être Agile, c'est suivre les quatre principes du Manifeste Agile . Scrum est un processus de gestion de projet conforme à ces principes, mais il n'est pas, en soi, Agile. XP (TDD, programmation par paires) est un processus de développement, également conforme à ces principes et cohérent avec Scrum, mais il n'est pas agile. Intégration continue, livraison continue, DevOps, tous conformes aux principes Agile.

Suivez d'abord les principes. Toutes ces phrases à la mode ne sont que des méthodologies que les gens ont trouvées avec succès les aident à suivre les principes. Mais l'essentiel "d'être Agile" est de pouvoir ajuster vos processus à volonté là où ils ne suivent pas les principes d'Agile.

pdr
la source
3
agilemanifesto.org/principles.html développe le manifeste.
1
@ ashy_32bit: Ce n'est pas une question à laquelle tout le monde peut répondre sans connaître l'équipe et le projet. Toutes les équipes ou tous les projets ne bénéficieraient pas de l'agilité. Cependant, j'ai travaillé sur une équipe qui faisait Scrum et CI et rien d'autre (à partir de la boîte à astuces Agile) et cela a mieux fonctionné dans ce cas que de ne faire aucune de ces choses. Mais nous avons cherché à améliorer notre agilité au fil du temps.
pdr
1
+1 Merci pdr, cela me frustre sans fin que tout le monde dise agile et signifie mêlée, ce qui finit par obscurcir le bien des principes agiles réels parce que tout le monde pense que l'agile signifie des standups et des sprints quotidiens et ne découvre jamais le manifeste.
Jimmy Hoffa
1
@ ashy_32bit Je dirais que le Scrum Master aidera l'équipe à devenir plus rigoureuse et affective en suivant un bon processus, mais l'entraîneur vétéran XP aidera l'équipe à devenir plus rigoureuse et affective en écrivant un bon code. Sur la base de votre description de l'équipe, je suppose qu'ils pourraient utiliser de l'aide pour écrire un meilleur code s'ils n'avaient jamais écrit de tests auparavant. Ils n'écrivent probablement pas de code couplé de manière très lâche ou ne prêtent pas attention aux principes de conception, etc. dans ce cas. Certes, votre équipe hypothétique est également clairement mauvaise au processus.
Jimmy Hoffa
1
Suis-je le seul qui ne pense pas que "agile" devrait avoir une lettre majuscule? Je ne suis pas seulement un pédant grammatical - c'est important. Comprendre l'agilité comme une qualité: si votre équipe est agile, elle est flexible, adaptable, méthodique. Je trouve toujours que la confusion commence quand ils parlent de "Agile" comme si c'était le nom d'un modèle ou d'un processus standard auquel ils doivent adhérer.
Tim
6

Scrum est-il indépendant de savoir si les développeurs appliquent des pratiques agiles?

Scrum est un ensemble de directives qui encouragent une équipe à être agile.

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?

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.

Tim
la source
Court et doux!
Kris Van Bael
5

Alistair Cockburn (l'un des initiateurs du mouvement Agile) dit ceci à propos de Crystal Clear (une facette de sa méthodologie Agile):

Crystal Clear peut être décrit par un auditeur de niveau 3 dans les mots suivants:

«Mettez 4 à 6 personnes dans une pièce avec postes de travail et tableaux blancs et accès aux utilisateurs. Demandez-leur de fournir aux utilisateurs des logiciels en cours d'exécution et testés tous les un ou deux mois, et sinon laissez-les tranquilles.

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:

Interrogé sur XP et les cinq niveaux du «modèle de maturité des capacités» du Software Engineering Institute, il a répondu avec les trois niveaux de maturité de XP:

  1. Faites tout comme écrit.

  2. Après avoir fait cela, expérimentez les variations des règles.

  3. Finalement, ne vous souciez pas si vous faites XP ou non.

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 .

gbjbaanb
la source
HAHA ce piège au fond est hilarant et tellement vrai. Merci pour le rire. De plus, je ne peux pas être plus d'accord. Malheureusement, toute la technique prescrite ici repose entièrement sur le fait d'avoir de bons développeurs (ou ceux qui veulent être bons au moins) pour commencer. Beaucoup d'ingénieurs n'ont aucun intérêt à être bons quand il est plus facile d'être mauvais. En fait, cela s'applique probablement à beaucoup de gens, pas seulement aux ingénieurs.
Jimmy Hoffa
0

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.

Ryathal
la source
0

Le développement ou la gestion sont-ils agiles?

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 :

Le développement logiciel agile est un groupe de méthodes de développement logiciel basées sur le développement itératif et incrémentiel, où les exigences et les solutions évoluent grâce à la collaboration entre des équipes auto-organisées et interfonctionnelles. Il favorise la planification adaptative, le développement et la livraison évolutifs, une approche itérative à durée déterminée, et encourage une réponse rapide et flexible au changement. Il s'agit d'un cadre conceptuel qui favorise les interactions prévues tout au long du cycle de développement.

entrez la description de l'image ici

Yusubov
la source
0

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.

Rense
la source
-2

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.

str8killinit
la source
1
S'il vous plaît, n'utilisez pas de termes comme "Scrum / Agile", ce sont très loin des termes interchangeables, je pense que vous le savez, mais vous perpétuez toujours l'idée qu'ils le sont lorsque vous les utilisez de cette manière.
Jimmy Hoffa
Scrum est agile. Avec un «a» minuscule. Agile est un adjectif, pas le nom d'une chose. En dehors de cela, je pense que cette réponse est logique.
Tim
2
@Tim agile le mot est un adjectif, mais dans ce cas Agile fait référence au titre "Agile Software Development" tel que défini sur agilemanifesto.org et en tant que tel ce n'est pas un adjectif, mais un nom. Ceci est ma plainte à propos de personnes se référant à Scrum comme agile, les gens pensent que "Scrum est agile" et ne connaissent jamais le manifeste agile qui est à l'origine de tout ce mot à la mode "Agile", et la vraie définition de "Agile" . Faire référence à des choses aussi agiles par l'adjectif est juste ambigu, le manifeste n'est pas ambigu, il est fondé sur des principes et spécifique.
Jimmy Hoffa