85
27 au 29 mars 2013 13h - 13h15 - Salle Miles Davis Les bronzés font du dev

[DevoxxFr] Les bronzés font du dev

Embed Size (px)

Citation preview

27 au 29 mars 2013

13h - 13h15 - Salle Miles Davis

Les bronzés font du dev

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.

L’entretien RH

Cela se passe à merveille avec la directrice des Ressources Humaines qui tient un discours très rassurant ...

Nous sommes une société à taille

humaine.

SSII Consulting compte 1200 collaborateurs.

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.

L’entretien 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.

Le commercial

Le test technique fini, Martin discute maintenant avec le commercial.

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 !»

Premier jour en mission

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 :»

Voici Jérôme, ...

Voici Jérôme stagiaire en alternance ...

Hein quoi ?!J’ai encore cassé quelque chose ?

Denis , ...

Denis, jeune diplomé comme toi.

Salut !

Jean-Claude, ...

Jean-Claude, le lead dev.

Argh c’est quoi ce code tout

pourri encore !

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.»

L’accueil

«Très bien comme tu n’auras ton poste que demain, j’ai imprimé la doc pour toi.»

Voilà de quoi t’occuper !

«Ce sont les spécifications fonctionnelles et techniques du projet.»

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.

Stand-up meeting !

Et à 10h, «Tu viens Martin ? On fait notre stand-up meeting.»

Stand-up meeting

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 ...

Jean-Claude tu finis quand ?

Cela ne se passe pas tout à fait comme ça ...

Martin tu liras la doc.

Denis tu finis ça pour

aujourd’hui.

Et Jérôme tu commences ça.

Chaque société doit avoir sa façon de faire son stand-up meeting ...

Méthodologie

Scrum ?

«Donc vous faîtes du Scrum ?» demande Martin

C’est notre premier

sprint.

«Oui depuis 2 mois, c’est notre premier sprint» répond Jean-Claude.

2 mois ?!

«2 mois c’est un peu long comme sprint non ?»

«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 !»

Le lendemain ...

Martin a enfin son poste ! Il s’empresse donc de checkouter le projet et d’installer ses outils préférés. Et puis ...

Build failed ?!

Mais heureusement, Jean-Claude a la solution !

Fais un skip test.

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é

Le midi, à la cantine ...

?

Ce midi, Martin prend le temps de questionner Denis et Jérôme à la Cantine :«Ca fait longtemps que vous êtes sur le projet ?»

1mois

«Moi ça fait un mois» répond Jérôme

6 mois

«Et moi 6 mois» dit Denis

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 ...»

Après le déjeuner ...

De retour au bureau, Jérôme interpelle Jean-Claude :

@Transactionnal ?

«A quoi les @Transactionnal au début de certaines méthodes ?»

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 ...»

Première user story

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 !»

Ah ... ok ...

Martin finit par se résigner ...

Après plusieurs jours de dev ...

?!

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.

Tout !

«Pleins de trucs mais je n’ai pas le temps de t’expliquer là.»

Première MEP

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 !»

Cool !

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 ...

Le lendemain matin ...

... car le lendemain ...

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.

DRING !!!

Surtout les lendemains de mise en prod ...

Hein ?! Quoi ?!

DRING !!!

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.

Besoin d’aide ?

Non c’est bon.

Porter seul le projet.

Dire mais ne jamais agir : Combien de fois avez-vous entendu «il faut qu’on fasse ceci ou cela» dans cette histoire ?

Il faudrait qu’on éteigne ce

feu un jour ...

Arrêtez de dire et faîtes !

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 !

Merci