La qualité logicielle chez Agicap : découvrez notre équipe Tech !

Reading time: 5

Notre équipe Tech a pour mission de développer le logiciel Agicap : en étroite collaboration avec l’équipe Produit, nous développons de nouvelles fonctionnalités pour qu’Agicap réponde toujours mieux aux besoins de nos utilisateurs. Nous mettons la qualité logicielle au cœur de nos pratiques dans notre quête constante de la satisfaction utilisateur.

La qualité logicielle chez Agicap

La qualité logicielle est capitale chez Agicap. Nous nous sommes efforcés depuis le départ de mettre en place cette culture de la qualité, en recrutant des développeurs seniors, adeptes du “craft” logiciel, et ayant des compétences poussées notamment en DDD et en tests logiciels.

Comment définissons-nous la “qualité logicielle” chez Agicap ?

Nous visons avant tout la satisfaction client. Pour ce faire, nous pensons "long-terme” pour chaque ligne de code que nous écrivons, en gardant constamment en tête les aspects de maintenabilité, scalabilité, sécurité et disponibilité : nous voulons qu’il soit facile de modifier une fonctionnalité dans 1 semaine, 1 an ou 10 ans, et que cette fonctionnalité puisse servir à 10 utilisateurs aussi bien qu’à 10 millions, le tout en garantissant le plus haut niveau de sécurité des données et le fait qu’Agicap soit disponible à toute heure du jour et de la nuit pour nos utilisateurs.

Pour garantir ces promesses ambitieuses, nous prêtons une attention particulière à nos méthodes de travail et à nos architectures logicielles. Le Clean Code nous paraît être la fondation essentielle. À cela s’ajoutent nos pratiques du DDD, du pair (ou mob) programming, des codes reviews, et du refactoring. Nous réservons 20% du temps de développement à du refacto technique pour nous assurer de conserver notre niveau de dette technique au minimum.

ambiance tech 2

Enfin, nous utilisons et appliquons les principes SOLID (Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle and Dependency Inversion Principle) pour augmenter la maintenabilité de notre application, la rendre plus fiable et plus robuste. Nous croyons fermement que les tests automatisés sont nécessaires pour garantir la qualité de nos produits et nos développeurs écrivent ces tests à tous les niveaux (tests unitaires, d’acceptance, d’intégration et end to end).

Collaboration intra et inter équipes

La collaboration au sein de l’équipe tech est permanente : la majorité de nos développeurs travaillant en ‘full remote’, nous passons donc de nombreuses heures quotidiennes en pair programming via Google Meet / TeamViewer, etc. Dans notre phase d'hyper croissance actuelle, le pair programming nous permet de faire monter en compétence les nouveaux arrivants et de confronter différentes approches pour élaborer la solution optimale.

La collaboration est également très forte avec les autres départements d’Agicap, notamment avec l’équipe Produit, qui crée et maintient notre roadmap produit. Cette équipe est composée de Product Managers et Product Designers, avec un ratio de 4 développeurs pour 1 PM + 1 PD. Ce ratio nous assure de pouvoir faire suffisamment de recueil de besoin auprès de nos utilisateurs et de construire des User Stories à destination de nos équipes de développement qui soient le reflet le plus précis possible des besoins de nos utilisateurs.

Nous travaillons également étroitement avec les services Customer Success et Sales. Ces équipes sont quotidiennement au contact de nos utilisateurs ou futurs utilisateurs, ce qui nous permet d’avoir les feedbacks les plus directs sur nos nouvelles fonctionnalités et bien de comprendre leurs principaux pain points, pour nous guider au mieux dans nos développements.

ambiance tech

Notre organisation

Bien qu’étant de plus en plus nombreux, nous restons une équipe soudée et nous nous entraidons en permanence pour que chacun puisse monter en compétence. Nos squads sont volontairement composées d’un nombre d’ingénieurs restreint pour permettre à chacun de contribuer et parvenir aux meilleures solutions pour l’équipe.

Ces squads sont constituées autour de périmètres métiers bien définis, et réunis en tribus quand cela s’y prête, sans aucune limite géographique puisque composées de développeurs travaillant aux 4 coins de la France. Chaque squad embarque un manager, un tech lead, et un Product Manager, ainsi que tous les profils nécessaires pour développer indépendamment de nouvelles fonctionnalités sur le périmètre métier de la squad (ingénieur Full Stack, ingénieur Front-End, ingénieur Ops).

team tech

Nos squads ont une grande liberté d’organisation et travaillent toutes aujourd’hui dans les grandes lignes de la méthode agile Scrum, avec les cérémonies agiles habituelles (sprint plannings, daily stand-ups, backlog groomings, sprint reviews et rétrospectives). Les sprint reviews que nous faisons avec nos équipes Sales et Customer Success nous permettent de rester le plus proche possible de nos utilisateurs. Les sessions de “backlog grooming” sont un autre moment clé pour tous les membres de l’équipe, lors duquel ils peuvent appréhender les évolutions à venir et challenger les équipes Produit pour aboutir aux meilleures spécifications.

Le processus de recrutement

Lors du recrutement, la culture de la qualité est également au centre de nos préoccupations. Nous testons évidemment les compétences techniques des candidats, mais les éléments qui nous intéressent davantage sont le mindset du candidat, sa capacité à raisonner “métier” et à placer l’utilisateur au centre de toutes ses décisions. Par-dessus tout, nous voulons nous assurer que le candidat corresponde à notre culture d’entreprise et d’équipe.

Nous débutons le processus de recrutement par une discussion théorique pour appréhender les bases du candidat en développement. Nous effectuons ensuite un exercice de code review dans lequel le candidat doit commenter plusieurs extraits de code pour en augmenter le niveau de qualité. La dernière partie technique consiste à coder un projet en direct devant des membres de l’équipe en justifiant son raisonnement et ses prises de décisions.

Nous apportons une attention particulière à laisser suffisamment de temps au candidat lors de nos différents échanges afin qu'il puisse poser toutes ses questions et ainsi se projeter dans la réalité d'Agicap.

L’onboarding chez Agicap

Tous les Agicapiens effectuent un onboarding global, indépendamment du pays auquel ils sont rattachés ou de leur équipe. Les deux premières matinées, chacun réalise un onboarding général puis rejoint son équipe pour le reste de la semaine. Au sein de l'équipe Tech, l’onboarding dure cinq semaines.

La première semaine au sein de l’équipe Tech commence par une présentation d’ensemble de notre stack et nos pratiques de code. Elle se poursuit par une session en commun de set-up de machine puis plusieurs présentations / mob-programming pour rentrer plus en détails dans nos applis, nos tests, notre CI. Nous prévoyons également une matinée de “shadow calls” avec l’équipe Customer Success afin d’être exposé très rapidement à nos utilisateurs. Enfin, chaque nouvel arrivant rencontre son “role-buddy” qui l’accompagnera pour les 4 prochaines semaines.

ambiance tech 3

Le role buddy est un développeur de niveau équivalent qui sera le point de contact privilégié du nouveau membre de l'équipe durant ses 4 premières semaines pour tout ce qui concerne la technique, les apps et la philosophie de code chez Agicap. Au cours de ces 4 semaines, les nouveaux arrivants rejoignent une, ou deux, squad(s) pour effectuer leurs deux premiers sprints, avant d’être finalement affectés à leur squad définitive lors de leur 6ème semaine.

Join us !

Nous recherchons des candidats qui visent l’excellence et veulent sortir des sentiers battus afin d’améliorer les méthodes de travail des équipes et de l’entreprise toute entière. Si tu souhaites prendre part à une aventure pleine de challenges et intégrer une équipe qui apporte quotidiennement des solutions aux enjeux de milliers d’entreprises, rejoins-nous ! Consulte toutes nos offres ici.