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 Siber
Dé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

[DevoxxFr] Les bronzés font du dev

  • 1.
    27 au 29mars 2013 13h - 13h15 - Salle Miles Davis Les bronzés font du dev
  • 2.
    27 au 29mars 2013 Les bronzés font du dev Ellène Dijoux Siber Développeur Java Freelance http://uneviededev.wordpress.com @ElleneSiber
  • 3.
    Histoire basée surdu 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 ...
  • 4.
    Je vous présenteMartin, 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.
  • 5.
  • 6.
    Cela se passeà merveille avec la directrice des Ressources Humaines qui tient un discours très rassurant ...
  • 7.
    Nous sommes une sociétéà taille humaine. SSII Consulting compte 1200 collaborateurs.
  • 8.
    Nous sommes à lapointe de la technologie ! Après 30 minutes de discussion sur les motivations de Martin, c’est l’heure de l’évaluation technique.
  • 9.
  • 10.
    Vous avez 30 minutes 30minutes pour répondre à un QCM de 100 questions ! Facile ! Martin a obtenu sa certification Java à l’école Epitruc.
  • 11.
  • 12.
    Le test techniquefini, Martin discute maintenant avec le commercial.
  • 13.
    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é.
  • 14.
    J’ai une superbe missionJava/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 !»
  • 15.
  • 16.
    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 :»
  • 17.
    Voici Jérôme, ... VoiciJérôme stagiaire en alternance ...
  • 18.
    Hein quoi ?! J’aiencore cassé quelque chose ?
  • 19.
    Denis , ... Denis,jeune diplomé comme toi.
  • 20.
  • 21.
  • 22.
    Argh c’est quoi cecode tout pourri encore !
  • 23.
    Et moi Alain. «Etmoi-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.»
  • 24.
  • 25.
    «Très bien commetu n’auras ton poste que demain, j’ai imprimé la doc pour toi.»
  • 26.
    Voilà de quoi t’occuper! «Ce sont les spécifications fonctionnelles et techniques du projet.»
  • 27.
    Oh ok ! SecrètementMartin 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.
  • 28.
    Martin assidu, litrigoureusement la doc tentant de comprendre pour pouvoir rentrer dans le projet au plus vite !
  • 29.
    On utilise Spring Integration ? «Ahvous avez Spring Integration sur le projet ? Cool je pourrais découvrir !»
  • 30.
    Non. «C’est ce quel’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.
  • 31.
    Stand-up meeting ! Et à10h, «Tu viens Martin ? On fait notre stand-up meeting.»
  • 32.
  • 33.
    Le stand-up meetingest 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 ...
  • 34.
    Jean-Claude tu finis quand? Cela ne se passe pas tout à fait comme ça ...
  • 35.
  • 36.
    Denis tu finis çapour aujourd’hui.
  • 37.
    Et Jérôme tu commencesça. Chaque société doit avoir sa façon de faire son stand-up meeting ...
  • 38.
  • 40.
    Scrum ? «Donc vousfaîtes du Scrum ?» demande Martin
  • 41.
    C’est notre premier sprint. «Oui depuis2 mois, c’est notre premier sprint» répond Jean-Claude.
  • 42.
    2 mois ?! «2mois c’est un peu long comme sprint non ?»
  • 43.
    «Oui mais onn’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 !»
  • 44.
  • 45.
    Martin a enfinson poste ! Il s’empresse donc de checkouter le projet et d’installer ses outils préférés. Et puis ...
  • 46.
    Build failed ?! Maisheureusement, Jean-Claude a la solution !
  • 47.
  • 48.
    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é
  • 49.
    Le midi, àla cantine ...
  • 50.
    ? Ce midi, Martinprend le temps de questionner Denis et Jérôme à la Cantine : «Ca fait longtemps que vous êtes sur le projet ?»
  • 51.
    1mois «Moi ça faitun mois» répond Jérôme
  • 52.
    6 mois «Et moi6 mois» dit Denis
  • 53.
    Jean- Claude, il assure ! «Leplus 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 ...»
  • 54.
  • 55.
    De retour aubureau, Jérôme interpelle Jean-Claude :
  • 56.
    @Transactionnal ? «A quoiles @Transactionnal au début de certaines méthodes ?»
  • 57.
    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 !»
  • 58.
    Ah ok ...merci ... Martin qui voit la scène de loin s’interroge : «Bon techniquement ... mais pas très pédagogue ...»
  • 59.
  • 60.
    Cette après-midi, Martina 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 ...
  • 61.
    ?! «Les utilisateurs ontune boite mail. Pourquoi s’amuserait-il à passer par cette messagerie interne pour s’envoyer des messages ?» demande-t-il à Jean-Claude.
  • 62.
    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 !»
  • 63.
    Ah ... ok... Martin finit par se résigner ...
  • 64.
  • 65.
    ?! Ce n’était pasfacile de réaliser une messagerie interne, mais il y est arrivé ! Et après un update, Martin réalise que son code a disparu ...
  • 66.
    J’ai tout refait ! «C’estnormal, j’ai tout refait car ton code était tout pourri.» répond Jean-Claude
  • 67.
    Qu’est-ce qui n’allait pas ? Martindemande du feedback pour pouvoir éviter de reproduire les mêmes erreurs.
  • 68.
    Tout ! «Pleins detrucs mais je n’ai pas le temps de t’expliquer là.»
  • 69.
  • 70.
    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 !»
  • 71.
  • 72.
    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 ...
  • 73.
    Le lendemain matin... ... car le lendemain ...
  • 74.
    Zzz ... ... leréveil et la matinée fut difficile pour Martin. Car en plus du dev, il doit également assurer le support de l’application.
  • 75.
    DRING !!! Surtout leslendemains de mise en prod ...
  • 76.
  • 77.
    java.lang.NullPointerException !!! WTF ?! Auté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 ...
  • 78.
    Epilogue Cette mission futdifficile mais enrichissante pour Martin. Cela lui a permis de comprendre les comportements qui peuvent être dangereux pour un projet :
  • 79.
    Pas de panique, je m’occupede tout. Jouer au super héros et vouloir tout réparer soi-même sans rien expliquer aux autres.
  • 80.
    Besoin d’aide ? Nonc’est bon. Porter seul le projet.
  • 81.
    Dire mais nejamais agir : Combien de fois avez-vous entendu «il faut qu’on fasse ceci ou cela» dans cette histoire ?
  • 82.
    Il faudrait qu’on éteignece feu un jour ... Arrêtez de dire et faîtes !
  • 83.
    Et que devientMartin ? 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 !
  • 85.