Méthodologie Agile et Scrum

Vidéo d’introduction sur la méthodologie Agile

La méthodologie agile (ou agilité) est une nouvelle façon de gérer des projets de développement logiciel. Elle a été élaborée par un groupe d’experts en développement logiciel qui voyaient un tas de lacunes aux méthodologies de développement traditionnelles.

Méthode agile vs les méthodes traditionnelles

Traditionnelle – Cascade, en V Agile
Cycle de vie Sans rétroaction possible. Phases séquentielles. Itératif et incrémental.
Documentation Quantité importante en support à la communication. Réduite au minimum au profit d’incréments fonctionnels pour obtenir les commentaires du client (feedback).
Qualité L’assurance qualité est souvent planifiée pour la fin du projet. Un contrôle qualité du début à la fin du projet.
Changement Réticence aux changements. Changements accueillis favorablement.
Équipe Dirigée par un chef de projet. Soutenue par un chef de projet.
Planification Prédictive. Adaptative.
Suivi de l’avancement Mesure de la conformité aux plans initiaux. Le nombre de fonctionnalités implémentés et le nombre de fonctionnalités restantes.
Succès du projet Respect des contrats en engagements. Coût, budget et calendrier respectés. Le client est satisfait et obtient un produit avec valeur ajoutée.

Le manifeste agile

Nous découvrons comment mieux développer des logiciels

par la pratique et en aidant les autres à le faire.

Ces expériences nous ont amenés à valoriser :

Les individus et leurs interactions

plus que les processus et les outils

Des logiciels opérationnels

plus qu’une documentation exhaustive

La collaboration avec les clients

plus que la négociation contractuelle

L’adaptation au changement

plus que le suivi d’un plan

Nous reconnaissons la valeur des seconds éléments,

mais privilégions les premiers.

Lien vers le manifeste Agile

Présentation Prezi de l’agilité

Excellente présentation préparée par Sylvie Monjal et Yannick Mazières du département d’informatique du Cégep de Sainte-foy.

https://prezi.com/8uj8xd6wgtyj/agilite/

Concepts importants de l’agilité

  • Le récit utilisateur ou user story.
  • L’évaluation de la taille d’un récit ou costing.
  • Les critères d’acceptation d’un récit utilisateur.
  • Le cycle de vie d’un récit utilisateur.
  • Le catalogue produit ou backlog.
  • Le catalogue produit d’un sprint ou sprint backlog.
  • La vélocité de l’équipe.
  • Les rencontres hebdomadaires (daily scrum).
  • Rétrospective de sprint.

 

  • Tests unitaires.
  • Tests d’intégration.
  • L’intégration continue.
  • Le Test driven development (TDD).
  • Revue de code.

http://referentiel.institut-agile.fr/stories.html

Scrum

Il est défini par ses créateurs comme un « cadre de travail permettant de répondre à des problèmes complexes et changeants, tout en livrant de manière productive et créative des produits de la plus grande valeur possible ». Scrum est considéré comme une méthode agile.

Voici donc les éléments importants de Scrum.

By Lakeworks – Own work, GFDL, https://commons.wikimedia.org/w/index.php?curid=3526338

By Dr ian mitchell – Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=44894952

Caractéristique d’un récit utilisateur (user story)

L’intégralité du travail à réaliser est découpée en incréments fonctionnels et les activités de développement s’organisent autour de ces incréments appelés récit utilisateur ou User Stories.

Syntaxe d’un récit utilisateur

En tant que [ROLE DE L’UTILISATEUR],

je veux [ACTION]

afin de [VALEUR AJOUTÉ].

Exemples de récits utilisateur

  • En tant que gestionnaire, je veux voir l’avancement des projets afin de prendre des décisions éclairées et de voir les projets en retard.
  • En tant qu’utilisateur anonyme, je veux créer mon compte utilisateur afin de pouvoir commenter les photographies des membres.

I N V E S T – truc mnémonique pour de meilleurs récits utilisateur

Lorsque vous élaborez un récit utilisateur, pensez aux lettres INVEST. Cette suite de lettres vous aidera à concevoir de meilleurs récits utilisateur.

Indépendant

Les récits sont indépendants, ils peuvent donc être réalisés dans l’ordre voulu.

Négociable

Tant qu’il n’est pas en cours de réalisation, il est possible de négocier l’ampleur du récit et d’y apporter des modifications.

Value

Le récit apporte une valeur ajoutée au client.

Estimable

Il est possible d’estimer la taille ou l’effort relatif pour la réalisation du récit utilisateur.

Small

Le récit est petit, il est possible de le compléter à l’intérieur d’un sprint. Si la taille du récit est trop grande, il devient aussi difficile de l’estimer.

Testable

Il est possible de tester la fonctionnalité développée. Le récit doit être accompagné de critères d’acceptation ils sont la base des tests à développer. Les tests sont automatisés.

 

Complément INVEST sur Wikipédia.

Le catalogue produit ou Backlog

Le catalogue produit ou backlog correspond à la liste de tous les récits utilisateur à développer. Ces récits sont priorisés en fonction de la valeur ajoutée pour le client.

Le catalogue produit du sprint ou Sprint Backlog

Il s’agit de la liste des récits utilisateur à réaliser à l’intérieur d’une période temps bien définie appelée sprint. Un sprint a souvent une durée de 2, 3 ou 4 semaines.

Estimer avec une séance de Poker Planning

L’équipe se rassemble afin d’estimer la taille des récits utilisateur.
Voici la procédure à suivre :

  • Le récit est raconté à toute l’équipe.
  • Une période de questions est possible pour lever les ambiguïtés sur le récit utilisateur.
  • Les équipiers évaluent mentalement la taille du récit. Un système de pointage (tel la suite de Fibonacci – 1, 2, 3, 5, 8 points) est utilisé pour indiquer la taille du récit.
  • À GO, tout le monde présente son évaluation, soit avec des cartes à jouer ou en présentant les doigts de la main.
  • Un duel survient lorsque l’écart du pointage entre deux membres de l’équipe est trop grand.
    • Ils expliquent ainsi le raisonnement derrière leur pointage.

Bureaux avec espaces ouverts pour favoriser la communication

La méthodologie agile favorise les espaces à aire ouverte afin de faciliter la communication.

Avantages

Facebook possède le plus grand bureau à aire ouverte du monde. D’une superficie de plusieurs milliers de pieds carrés, des centaines de personnes travaillent à développer la prochaine génération du réseau social mondial. Sans paravent ou sans porte, cette organisation des lieux doit favoriser la communication et les échanges dans l’équipe et ainsi augmenter la productivité.

Inconvénients

Il peut devenir difficile de se concentrer sur le travail à réaliser à cause du bruit de fond constant.

De plus en plus d’études démontrent qu’il n’est pas efficace d’être dérangé à tout instant. Pour réaliser un travail de qualité, il faut se concentrer de façon prolongée sans distraction.

A survey of over 40,000 workers found that “more than half of the occupants in open-plan cubicles… expressed dissatisfaction with the condition of sound privacy.

Lectures intéressantes sur le sujet

Article du Harvard Business Review
La collaboration en surcharge – Harvard Business Review

Overcoming Offices That Kill Productivity – Acompli

https://www.acompli.com/overcoming-offices-kill-productivity/

Logiciels de gestion de projet en mode agile

Voici la liste de quelques logiciels qui permettent la gestion d’un projet en mode agile.

Pivotal tracker

  • Un tableau de bord présente un aperçu de tous les projets.
  • Il est facile de créer un nouveau récit utilisateur et de le glisser-déplacer afin de définir sa priorité.
  • Plusieurs types de récits : Chore, Story, Release.
  • L’état des récits utilisateur évolue : Start, Finish, Deliver, Accept/Refuse, DONE.
  • Il est possible de joindre des fichiers aux récits.
  • Un pointage est associé à chaque récit utilisateur.
  • Communication par courriel intégrée.
  • Un moteur de recherche évolué : has:attachement

https://www.pivotaltracker.com/

Autre logiciels d’intérêt

 Conclusion

  • La méthodologie agile met les gens avant les processus.
  • La mesure de qualité d’un projet agile correspond à la valeur ajoutée pour le client et la satisfaction du client.
  • La qualité est un incontournable et des tests automatisés nous aident à assurer la qualité logicielle.
  • On favorise la communication face à face plutôt que par courriel.

Références

Scrum (software development) – Wikipedia, the free encyclopedia

https://en.wikipedia.org/wiki/Scrum_(software_development)

The Agile System Development Life Cycle (SDLC)

http://www.ambysoft.com/essays/agileLifecycle.html

Agile software development – Wikipedia, the free encyclopedia

https://en.wikipedia.org/wiki/Agile_software_development

Software development process – Wikipedia, the free encyclopedia

https://en.wikipedia.org/wiki/Software_development_process

Comments

comments