Nous naviguerons à travers la petite histoire de notre pratique Agile chez PMCtire.com , et comment nous sommes arrivés à passer d’une mise en production à tous les 6 mois à livrer de la valeur aux clients plusieurs fois par semaine. Nous aborderons notre pratique à travers différents axes: l’équipe, la gestion de projet, le code et les tests, l’infrastructure, etc.
Venez entendre comment nos principes itératifs, l’intégration continue et le déploiement continus nous ont permis d’accélérer et de mieux contrôler nos mises en production. Nous expliquerons comment Gitlab (un outil Open Source) nous aide à supporter notre pratique. À travers notre retour d’expérience, nous poserons un regard pragmatique et critique sur les pratiques Agile et Scrum. Intéressant peu importe l’outil que vous utilisez!
Gérer l'inconnu avec peu de moyens par le développement itératif - L'agilité chez pmctire.com
1. Gérer l’inconnu avec peu de
moyens par le développement
itératif
L’Agilité chez PMCtire.com
2. Qui ?
Benoit - VP Technologies (aka CTO)
- depuis fév 2016
Frédéric - Développeur Full-Stack
(aka Nostrada Fred) - depuis mai
2016
3. Notre plan
● On fait quoi chez PMCtire.com
● L’histoire du développement
● Les différents axes de notre
pratique
● Nos facilitants
● L’équipe au jour le jour
12. Le passé ( 2008 - 2014)
● On part de RIEN
● Consultants externes
● CMS - eCommerce Open Cart -> Magento
● Peu de ressources, besoin = solution
● Just DO IT - le code est un prétexte
15. ● Cycle de livraison aux 6 mois (minimum)
○ Confiance basse - longue stabilisation
○ Dates de livraison incertaines et repoussées
● Déploiement laborieux et manuel
● Bogues critiques - colmatage
Problèmes ?
19. Au tout début (2016)
● “On est “T’à Gilles” ”
● Sprints sur une semaine orientés sur thèmes
● Gestion de priorités avec Trello (À faire, En cours, Done)
○ Responding to change over following a plan
● Livraison et déploiement 1 fois par sprint minimum
● Engagement, pas d’”estimation”
Oui, mais …
● Peu de capacité
● Peu d’outils
24. Gestion des environnements
● Pour permettre et faciliter le développement
● Pour avoir une infra de support extensible
Comment ?
● Gestionnaire de configurations (SaltStack)
○ Auto-documenté -> configuration en code
● Hyperviseur Proxmox (VM et containers)
● Environnement locaux de dev avec Vagrant
● Environnement de build avec Docker
26. Développement avec itération rapide
● Pour gagner de la vélocité
● Tout part du code
● Working software over comprehensive documentation
Comment ?
● Environnement de dev fidèle à la prod (bd, configs, etc.)
● Capacité de débogguer localement
29. Boucle de livraison de valeur
● Découplage
○ En services et en modules -
Self Contained
○ En dépôts Git
● Tests unitaires - filet et
régression
● Code review - XP
● Acquisition de maturité
● Utiliser Git - KISS
○ Travailler en feature
branches
○ Livrer la branche master (Git
trunk based)
● Builds et déploiement
automatisés
○ CI généré par projet - code
based
○ One-click deployment (basé
sur tags Git)
31. Nos pratiques
● Processus léger - pas “by the book”
○ Individuals and interactions over processes and tools
● Vendredi “lousse”
● On se donne le droit de ne pas tout figurer
33. Gitlab
“unifies issues, code review, CI and CD into a single UI” https://about.gitlab.com/ -
Open Source - Dogfooding
● Gestion par projets
○ Software as discussion
■ Issues
■ Milestones
● Gestion du code source
○ Dépôts Gits - Branches - Merge Requests
● Gestion du build et des déploiements
○ Environnements - Pipelines
41. ● Travail sur thèmes - mandats
● Itérations d’une semaine - du mercredi au mardi
● Daily Meetings sur les mandats - pas les personnes
○ On veut pas savoir si tu as travaillé fort
● Démo aux stakeholders
● Rétrospective hebdomadaire
● Travail sérieux et intense - et pas sérieux aussi
L’équipe au jour le jour