Comment s’épanouir en tant que développeur sur une mission longue durée en ESN
Expert Java, Irako Fitahiantsoa Andrianatoandro rejoint MARGO en décembre 2019. Quatre ans plus tard, il vient à peine de terminer sa première mission en tant que développeur back-end Java pour une grande banque actrice de la finance de marché. Retour d’expérience sur cette mission « hors norme ».
Intégré au sein de l’équipe Custom Indices, la mission d’Irako consistait à développer et à maintenir les fonctionnalités d’une application qui gère le cycle de vie des indices customs. Majoritairement dédiée à un usage interne, l’app a pour but de faciliter la publication quotidienne du prix et la performance de l’indice au sein des différents systèmes utilisés par les structurers et les traders. À la clé : permettre à chaque utilisateur de disposer des mêmes informations à jour.
Irako a notamment travaillé sur le changement de composition d’un indice et mis en place les différentes étapes de ce process. À cette fin, il a évolué au sein d’un environnement technique composé de : Java, Spring, Spring Boot, Spring Cloud, JSP, Javascript, Angular, SQL Server, Gradle.
Les clés pour s’épanouir dans une mission « longue durée »
On n’aborde pas une mission de près de 4 ans comme une mission classique. La 1re année doit ici servir de période d’adaptation et d’apprentissage. Objectif : apprendre à connaître l’équipe, l’entreprise, le secteur, les méthodes de travail, la manière de coder, les relations avec les métiers… Une fois cette étape franchie, la 2e année est alors celle qui permet de s’imposer et de créer de la confiance avec le client. Enfin, à partir de la 3e année, le développeur a acquis suffisamment de connaissances et de légitimité pour être force de proposition.
« C’était ma 1re expérience dans la finance et dans une équipe en mode agile. Donc j’ai pris le temps de comprendre mon environnement et de voir comment m’y intégrer. C’est en s’intégrant qu’il sera possible de montrer sa plus-value. Le développeur ne peut pas arriver dans la mission et coder directement. C’est à lui de s’adapter à l’écosystème en place. Il doit saisir cette occasion pour se mettre à niveau techniquement et maîtriser les aspects fonctionnels. Cette étape de préparation est nécessaire pour identifier ses lacunes, devenir autonome et s’affirmer dans sa manière de coder. La mission m’a fait grandir. Elle m’a apporté davantage de confiance technique et permis de prendre conscience des compétences que je devais acquérir. »
Maintenir le cap tout au long de la mission
Un autre risque durant une mission longue est de perdre le fil en laissant les points de blocage s’accumuler et ralentir le projet jusqu’au point d’arrêt. Pour éviter cet écueil, l’équipe Custom Indices a mis en place un système de rôles, chaque membre étant amené à alterner entre chacun d’eux. Irako a ainsi été amené à endosser tour à tour le rôle de :
1.Développeur
2.Participation aux revues de code
3.Testeur
4.Support
5.Release manager
« Ce dernier rôle de release manager est particulièrement important car il consiste à effectuer le suivi des différents Jira, et à s’assurer auprès des développeurs que leur fonctionnalité peut être intégrée dans la release hebdomadaire ou s’ils rencontrent des points de blocage. Cette organisation permet d’avancer progressivement et permet à chacun d’avoir une vision globale sur les tâches à réaliser. »
Se fixer ses propres objectifs pour monter en compétences
En tant que développeur, l’un des intérêts de changer de client repose sur les opportunités de montée en compétences que peut offrir la diversité des missions. Comment faire alors pour évoluer techniquement lorsque l’on reste aussi longtemps au sein de la même équipe ? Premièrement, en consolidant ses connaissances. « La 1re étape n’est pas d’apprendre une nouveauté mais de bien comprendre ses connaissances actuelles. Si dans mon code, je veux chercher l’efficacité, je dois comprendre pourquoi je l’ai écrit tel quel. »
Ensuite, il importe de consulter la documentation existante, à commencer par les vidéos qui permettent d’appréhender la vision globale d’un cas d’usage, d’une fonctionnalité ou d’un outil, à l’image de certaines chaînes YouTube : « Instrumenter vos applications Java avec OpenTelemetry ». Enfin, pour aller plus loin, seule la lecture d’ouvrages spécialisés permet d’appréhender un sujet de façon détaillée. Et si aucun livre ne traite le sujet, il est toujours possible de consulter directement la documentation en ligne, comme c’est le cas pour OpenTelemetry.
Pour Irako, également animateur de la communauté Java, référent technique Java et coach Java chez MARGO, sa mission lui a ainsi donné l’opportunité, pour la 1re fois, de se concentrer exclusivement sur le langage Java.
« J’ai pu voir comment les membres de l’équipe percevaient mon code et ainsi déterminer mes axes de progression pour me mettre à leur niveau en back-end. J’ai notamment pu en observer tous les aspects, tels que les architectures microservices, l’utilisation des design patterns, etc. J’ai aussi pu tester différentes manières de faire dans le code et en proposer de nouvelles, en utilisant CompletableFuture (multithreading) par exemple ou en utilisant ANTLR pour fournir une nouvelle manière de filtrer des données métiers. »
Les soft skills du développeur « mission longue »
Les objectifs techniques ne sont pas les seuls que le développeur doit se fixer. Pour progresser, il doit aussi faire preuve de qualités humaines. Parmi lesquelles : la capacité d’adaptation et l’écoute.
« J’essaie toujours de comprendre leur manière de coder et de la reproduire. Je ne vais pas tout de suite implémenter ma propre vision du code. Je demande à chacun comment il fait, pourquoi il le fait de cette manière et je le reproduis pour que mon code s’intègre bien dans la méthode en place. Avant de proposer mes idées, j’essaie de comprendre l’existant et de m’y intégrer. Je ne crée pas, je m’inspire de ce que font les autres pour enrichir ma propre manière de coder. »
Le conseil d’Irako
Un dernier conseil à adresser aux développeurs amenés eux aussi à évoluer sur une mission longue ? « Toujours essayer de profiter des opportunités offertes et de chercher par soi-même comment apprécier la mission. On attend beaucoup de nous mais, en tant que développeur, on attend aussi beaucoup de la mission. À nous d’être pragmatique, de déclencher les choses et de ne pas attendre que tout vienne à nous. »