Post on 15-Aug-2015
27 au 29 mars 2013
Les bronzés font du dev
Ellène Dijoux SiberDéveloppeur Java Freelance
http://uneviededev.wordpress.com
@ElleneSiber
Histoire basée sur du vecu !
Cette histoire est une aggrégation de faits vécus. Si vous avez connu la même histoire, je suis navrée pour vous ...
Je vous présente Martin, fraîchement diplômé de l’école Epitruc. Après un stage d'un an en alternance dans la DSI de Général Electrique, il cherche un poste de développeur «Java J2EE». Après avoir publié son CV sur quelques sites bien connus par les recruteurs, il passe aujourd'hui des entretiens chez SSII Consulting.
Cela se passe à merveille avec la directrice des Ressources Humaines qui tient un discours très rassurant ...
Nous sommes à la pointe de la technologie !
Après 30 minutes de discussion sur les motivations de Martin, c’est l’heure de l’évaluation technique.
Vous avez 30 minutes
30 minutes pour répondre à un QCM de 100 questions ! Facile ! Martin a obtenu sa certification Java à l’école Epitruc.
Java/J2EE ... tout ça, je connais !
Il a apprécié la discussion avec le commercial car il s’agissait d’un ancien développeur ! Au moins quand il parle Java, il sait de quoi il parle ! Surtout que c’est lui qui se chargera de son entretien annuel. Martin est plutôt rassuré.
J’ai une superbe mission Java/J2EE
pour toi !
Il a même déjà une mission pour lui ! Chouette car c’est ce qu’il recherchait : «Spring, Hibernate, Struts les dernières technos du moment ! Et tu commences demain !» dit-il.«Pas d’entretien client ?» demande Martin.«Non le client nous fait confiance pour recruter les bons, la preuve avec nos tests techniques !»
Bonjour ! Je m’appelle
Martin !
Et c’est tout motivé qu’il débute le lendemain son premier jour de mission.«Salut Martin, laisse-moi te présenter l’équipe :»
Et moi Alain.
«Et moi-même Alain, le chef de projet. Bienvenu dans l’équipe ! Jean-Claude merci de t’occuper de Martin aujourd’hui, j’ai des réunions toute la journée. Je n’aurai pas de temps à lui consacrer.»
Oh ok !
Secrètement Martin pensait qu’il allait faire du Pair-Programming avec un des développeurs durant la journée comme lors de son stage. Mais apparemment ce ne sont pas les habitudes de la maison. «Eh bien soit ! Lisons la doc ...» se dit-il.
Martin assidu, lit rigoureusement la doc tentant de comprendre pour pouvoir rentrer dans le projet au plus vite !
On utilise Spring Integration ?
«Ah vous avez Spring Integration sur le projet ? Cool je pourrais découvrir !»
Non.
«C’est ce que l’architecte a préconisé mais ça ne marche pas alors on l’a laissé tombé. Il est vrai que la doc date d’il y a un an déjà ...»Un an ... Martin se demande si c’est vraiment pertinent de continuer la lecture de la doc ... mais c’est son premier jour, il veut bien faire alors poursuit la lecture.
Le stand-up meeting est une cérémonie qu’il a connu sur son ancien projet, il savait ce qu’il avait à faire : expliquer ce qu’il a fait hier, ce qu’il compte faire aujourd’hui et les difficultés rencontrées mais ...
«Oui mais on n’arrive pas à finir ce sprint et il y a plein de points de blocage»«C’est pour cela que vous avez autant de post-its en In Progress ?»«Oui, mais je trouve franchement que la méthodologie Scrum est plus proche du mode La Rache ... mais au moins les utilisateurs peuvent changer d’avis quand ils veulent !»
Martin a enfin son poste ! Il s’empresse donc de checkouter le projet et d’installer ses outils préférés. Et puis ...
Oh ... ok ...
«Il faudrait que je mette la config par défaut dans le pom mais je n’ai pas encore trouvé le temps» dit Jean-Claude.«Et pourquoi les tests ne passent pas ?» demande Martin«Parce qu’on n’a pas le temps de les corriger !» répond Jean-Claude agacé
?
Ce midi, Martin prend le temps de questionner Denis et Jérôme à la Cantine :«Ca fait longtemps que vous êtes sur le projet ?»
Jean-Claude, il assure !
«Le plus ancien sur le projet c’est Jean-Claude, il est là depuis le début. Il connaît l’application sur le bout des doigts et il est super balaise ! Je pense qu’avec son niveau, il ne va pas tarder à devenir chef de projet ! Car après 5 de dev, il a fait le tour ...»
C’est une annotation, c’est
tout !
«C’est une annotation» répond Jean-Claude«Et qu’est-ce que c’est ?» demande Denis«Une annotation c’est une annotation cela ne s’explique pas. C’est tout ce que tu dois savoir !»
Ah ok ... merci ...
Martin qui voit la scène de loin s’interroge : «Bon techniquement ... mais pas très pédagogue ...»
Cette après-midi, Martin a pris une nouvelle user-story au tableau. Il essaie tant bien que mal de comprendre la pertinence de développer une messagerie dans l’application ...
?!
«Les utilisateurs ont une boite mail. Pourquoi s’amuserait-il à passer par cette messagerie interne pour s’envoyer des messages ?» demande-t-il à Jean-Claude.
Cherche pas à comprendre !
«Ne cherche pas à savoir, ce ne sont pas tes affaires ! On nous demande de faire une messagerie, on la fait ! De toute façon, le métier n’a pas de temps à nous consacrer, on le fait et c’est tout !»
?!
Ce n’était pas facile de réaliser une messagerie interne, mais il y est arrivé ! Et après un update, Martin réalise que son code a disparu ...
J’ai tout refait !
«C’est normal, j’ai tout refait car ton code était tout pourri.» répond Jean-Claude
Qu’est-ce qui n’allait
pas ?
Martin demande du feedback pour pouvoir éviter de reproduire les mêmes erreurs.
Dans une heure, c’est
fini !
18h : les utilisateurs sont partis, on peut commencer le déploiement du nouveau war. «Tu vas voir Martin, j’ai simplifié la config ça sera plus simple pour le déploiement et dans 1h on aura fini !»
Puis, enfin à 3h du matin ...
Ah celui-là aussi était mal configuré ...
Et comme il fallait s’y attendre ... à 3h du matin :«Ah oui ! Il y avait aussi ce fichier à mettre à jour avec la conf de prod et là je pense que c’est bon. On va pouvoir rentrer chez nous ! Bon demain, je crée un doc pour le déploiement !» promet Jean-Claude. Mais commme toutes les résolutions, cette dernière attendra elle aussi ...
Zzz ...
... le réveil et la matinée fut difficile pour Martin. Car en plus du dev, il doit également assurer le support de l’application.
java.lang.NullPointerException !!! WTF ?!
Au téléphone, un utilisateur mécontent qui ne comprend pas l’étrange erreur affiché lorsqu’il fait un recherche ... «La page de recherche ?! Mais c’est la page sur laquelle Jean-Claude a fait un gros refactoring ... et sans tests unitaires !» pense Martin.La journée va être longue pour notre petite équipe de bronzés ...
Epilogue
Cette mission fut difficile mais enrichissante pour Martin. Cela lui a permis de comprendre les comportements qui peuvent être dangereux pour un projet :
Pas de panique, je
m’occupe de tout.
Jouer au super héros et vouloir tout réparer soi-même sans rien expliquer aux autres.
Dire mais ne jamais agir : Combien de fois avez-vous entendu «il faut qu’on fasse ceci ou cela» dans cette histoire ?
Et que devient Martin ?
Martin a bien compris que la seule personne sur qui il pouvait compter pour évoluer en tant que développeur c’était lui même !