Témoignage d'un développeur Squash

Témoignage d'un développeur Squash : organisation, technologie et environnement de développement

Derrière le développement de Squash TM, on retrouve une équipe constituée de membres issus de différents domaines d’expertise. Aujourd’hui Benoît, membre de l’équipe Squash depuis 2010 et principal développeur du plugin Squash4Jenkins, nous raconte son parcours, l’organisation de Squash et des technologies sous-jacentes au développement de l’outil de gestion de patrimoine de test.

 

Bonjour Benoît. Pour commencer, peut-être peux-tu nous en dire un peu plus sur ta formation ?

Après un Master Recherche en informatique orienté Intelligence Artificielle, j’ai suivi quelques stages en robotique et en navigation autonome avant d’effectuer une thèse à Orsay, et devenir docteur de l’INRIA Saclay en neurosciences computationnelles.

Ce fut une période très enrichissante mais je ne souhaitais pas poursuivre plus loin. Je décidai alors de me reconvertir vers une filière plus portée vers l’ingénierie.

 

Comment as-tu mené cette reconversion ?

Je me suis lancé dans la recherche de formations en ingénierie. J’ai pris connaissance de différents sites proposant des formations et suis tombé sur la formation de 6 mois dispensée par l’AFCEPF. Le cursus proposé répondait à mes attentes et bénéficiait d’une bonne réputation. 

C’est par le biais de l’AFCEPF que j’ai ensuite été mis en contact avec Henix, pour finalement intégrer la société en novembre 2010.

 

Quelles sont tes premières missions dans la société ?

2010 est une période clé pour Henix, qui est en plein développement de sa nouvelle activité d’éditeur de logiciel. Squash TM, l’outil pour la gestion de patrimoine de tests n’est alors qu’un « mini-POC ». 

J’ai intégré l’équipe Squash, et les 5 premières années ont été exclusivement dédiées à la conception et au développement de Squash TM. Après quoi, d’autres tâches sont venues compléter le travail d’un développeur de l’équipe Squash et constituent aujourd’hui « mon quotidien ».

 

Peux-tu nous en dire un peu plus sur ces différentes missions qui te sont aujourd’hui assignées ? 

Parmi les tâches qui me sont confiées, je ne travaille plus uniquement à la conception / au développement. Je suis également mobilisé en tant que :

  • Consultant technique : pour des missions d’audit ou d’expertise répondant à des sollicitations des clients
  • Expert sur de la formation : pour aider les clients à développer leurs propres extensions pour Squash.

 

Actuellement, comment se compose l’équipe Squash ?

L’équipe de développement de Squash se constitue d’un Scrum Master, un Product Owner, 8 développeurs et un chargé de recette

Mais l’équipe Squash, ce n’est pas uniquement l’équipe de développement : nous sommes également appuyés par une équipe support, une entité Professional Services et une équipe dédiée au Marketing.

 

Et pour les développeurs, comment s’organise une journée type ?

Il y a 3 tâches principales qui nous occupent au quotidien :

  • Le développement 

Une nouvelle version de Squash TM est publiée de façon biannuelle. Nous travaillons quotidiennement sur les nouvelles fonctionnalités prévues sur la roadmap pour assurer l’amélioration de l’outil.

  • Le support

Un développeur peut être mobilisé de façon ponctuelle pour répondre aux demandes clients. Les actions support sont toujours prioritaires aux autres tâches.

  • Le Code review 

Le vendredi est consacré à l’audit du code de Squash par les pairs.

 

Comment s’organise l’équipe sur la partie développement ?

En temps normal, un développeur travaillera sur une nouvelle fonctionnalité. Evidemment, l’organisation dépend aussi de la charge de travail prévisionnelle pour le développement de la fonctionnalité.

Dans l’équipe, nous fonctionnons en mode agile : Retours fréquents entre la MOE et MOA, stand-up meetings pour faire le point sur l’avancée de chacun. Nous planifions nos tâches par sprint lorsque nous travaillons sur les nouvelles fonctionnalités, avec une livraison et des restitutions à la fin de chaque sprint.

Chaque développeur de l’équipe Squash est full stack : chacun est capable d’intervenir à n’importe quel niveau de l’application.  

 

Peux-tu nous dire quelques mots sur les technologies sous-jacentes et les environnements de développement utilisés ?

Pour Squash, nous travaillons sur IntelliJ, un IDE Java.

Sur les technologies utilisées, les principales à retenir sur la partie serveur sont Hibernate (un ORM), Spring (pour la couche web et intégration), JSP et Thymeleaf (pour la génération du HTML).

Le client est bâti sur JQuery et Backbone.

Nous hébergeons les sources sur Bitbucket, et versionnées avec Mercurial.

Comme plateforme d’intégration continue, nous utilisons Jenkins. SonarQube pour la qualimétrie et Maven comme technologie de build.

 

Un mot sur le prochain challenge de l’équipe ?

En ce moment, nous étudions le renforcement de l’intégration entre Squash et JIRA pour une meilleure coordination entre les équipes de développement et de qualification dans le cadre des projets agiles au sein des cellules de tests. Vous en découvrirez un peu plus dans la versoin 1.17 de Squash 

 

Merci à Benoît pour son retour d’expérience, nous attendons donc plus de précisions sur Roadmap de la version 1.17 de Squash TM.