Pratiques agiles, coaching et amélioration continue

La croissance perpétuelle de la plateforme Bilendi, en terme de marchés, de client, de leurs besoins... amène à l'intégration d'une multitude de scénarios web différents, des nouvelles solutions et players de la toile etc.

Le challenge pour la team dev de Bilendi est d'en absorber les évolutions induites sur sa plateforme, en maintenant le niveau de qualité de celle-ci (stabilité, performance, flexibilité, potentiel technologique etc.).

Cette plateforme est gérée pour cela depuis pas mal d'années en pratiques de développement agiles (via des outils comme Redmine, Trelloles sprint, gitlab ...), avec un réel focus sur la capitalisation des retours d'expériences collectifs pour l'amélioration continue de ces pratiques.
NB : il n'y a ainsi pas de "religion qualité" chez Bilendi : les pratiques dites actuelles, comme Scrum... se combinent à de "bonnes vieilles pratiques", comme CMMI par exemple, du moment qu'elles apportent une valeur ajoutée !

Dans cet article nous décrivons brièvement comment l'équipe s'est organisée pour mutualiser la connaissance et les bonnes pratiques de la plateforme dans un principe d'amélioration continue, et comment elle a mis en place un mode coaching pour que ses membres puissent intégrer régulièrement les nouvelles pratiques.

La réalisation des tickets de bug fix et/ou l'évolution d'un sprint est divisée en différentes activités / phases :

  • Analyse/Solution (atelier métier...)
  • Technical design (framework Symfony / JS ...)
  • TDD (Test Driven Developpment)
  • Code review / merge request process
  • Solution demo / End user training/validation
  • Déploiement automatisés multi-environnement / intégration continue
  • Documentation / gestion et partage de connaissance

L'équipe fait vivre un document qui recense les diverses pratiques à valeur ajoutées, qui ont été expérimentées lors de ces phases telles que :

  • les pratiques assistées par des outils, d'analyse de l'historique de tickets, de merge requests et/ou logs (comme Kibana par exemple pour l'analyse de bugs ou encore le monitoring de volume d'activités de nos divers sites, et/ou de la popularité de leur features etc.),
  • ou encore des outils de navigation / recherches dans les bases de code git pour identifier efficacement les parties du code concernées (ou impactées) par des évolutions,
  • la gestion de guidelines d'implémentations sur les frameworks majeurs de la plateforme, via des collèges animés par des membres certifiés,
  • l'intégration collégiale d'IDE dans les phases de codage (phpstorm et/ou vim plugins ...),
  • l'intégration d'outils de tests automatisés et tests coverages (phpunit, corbertura...) => un sujet majeur de la Team Dev,
  • des recos de bonnes pratiques dans les échanges/démo avec les end users (s'approprier le vocabulaire métier...),
  • l'intégration des pratiques standardisées de développement collaboratif / gestion de branches et version (gestion de release candidate / version compatible semver),
  • l'intégration de pipelines automatisés de déploiement multi-environnement intégrant des test d'intégration continue,
  • l'intégration de solutions et processus dédiés à la gestion des contenus de connaissance induit par l'activité de la plateforme, et permettant la mise à niveau continue.

La mutualisation de pratiques sur ces divers thèmes se fait en petit atelier entre divers membres de la team et animés par les dev leads.

Chaque membre de la team peut ainsi contribuer à celles-ci selon ses propres retour d'expérience et centres d'intérêts.

Quant à la mise à niveau de l'ensemble de l'équipe sur ces pratiques, elle est directement intégrée dans le processus agile de sprint, lors desquels certains tickets sont sélectionnés pour s'approprier certaines pratiques, en les appliquant avec l'assistance d'un coach référant sur celles-ci.