Meetic
Arrivé en tant que développeur, j’ai contribué aux évolutions produit de Meetic au sein d’une équipe SCRUM.
Ensuite, j’ai intégré l’équipe CORE pour participer à la refonte de l’architecture du site, notamment pour promouvoir des pratiques de développement moderne et des outils d’industrialisation. Il était alors question de créer de nouvelles API, de promouvoir et mettre en place le TDD, ainsi que des outils de CI/CD.
J’ai aussi activement participé à la formation des équipes.
Développeur produit
Premièrement, j’ai intégré Meetic en tant que développeur dans une équipe SCRUM. J’ai participé au développement de nouvelles fonctionnalités et à l’amélioration d’autres.
- php4 sur interpréteur php4 !
- Méthodologie SCRUM
- Développement en équipe (testeur, intégrateur, Scrum Master et développeurs)
Développeur CORE
Ensuite, j’ai rapidement intégré le CORE. J’ai participé activement à l’élaboration des nouveaux processus de développement liés à la nouvelle architecture.
La nouvelle architecture choisie est le SOA (Service Oriented Application). L’objectif était de rendre l’ensemble du site modulaire et réutilisable, en partant d’une application monolithique de type PHP4 qu’il fallait refondre pour la fiabiliser.
J’ai participé aux POC qui ont permis de définir le socle technique à utiliser, notamment Symfony2 qui a été le choix final parmis trois candidats : Silex, Syfmony2 ou Zend Framework 2.
J’ai le formateur des équipes françaises aux patterns de conception orientée objet et aux nouvelles méthodologies de codage. La formation se déroulait sous forme de stage pratique de 3 semaines appliqué à Meetic.
- Conception en ammon
- Diagramme UML avec Astah
- Définition du contrat REST
- Méthodologie Test Driven Development (TDD)
- Design patterns usuels à Symfony (notamment l’injection de dépendances)
- Pédagogie
En parallèle, j’ai également mis en place l’industrialisation à Meetic. Bamboo a été la première brique pour gérer la nouvelle chaîne de déploiement et l’intégration continue. Jenkins est venu compléter les lacunes de Bamboo.
Développeur qualité & industrialisation
J’ai ensuite intégré le service « Qualité & Industrialisation » créé pour l’occasion. J’étais responsable de la mise en place des outils permettant de mieux connaître les points forts et faibles de notre code, ainsi que d’aider les développeurs dans leurs tâches à travers la diffusion d’informations et la création/gestion de communauté technique interne.
Dans ce cadre, j’ai donc mis en place :
- Jenkins
- Bamboo
- GitLab
- Docker pour les tests
- Les méthodologies TDD et BDD
- Les outils tels que PHPUnit, Behat, Protractor pour les tests
Lead Développeur
Enfin, j’ai endossé le rôle de Lead Développeur où j’ai dirigé une équipe de développement. Cette équipe était à cheval entre une équipe de développement produit et technique, un peu à l’image de ce que représentait le CORE (maintenant dissous).
Nous avons continué des projets de fond et de refonte, ainsi que lancé de nouveaux projets produits.
Résumé
Pour résumer, voici tout ce que je retiens de mon expérience chez Meetic (par ordre d’importance) :
- Aventure humaine exceptionnelle
- PHP > * Phing
- PHPUnit
- PHP CodeSniffer (phpcs), PHP Mess Detector (phpmd), PHP Copy/Paste Detector (phpcpd), PHP Metrics (phpmetrics), …
- Symfony2
- Web services REST
- Formation & transmission de savoir
- UML (Diagramme de classe, séquence, …)
- Intégration continue et livraison continue
- Bamboo
- Jenkins
- Git
- Capistrano