Files
lespiedsdanslecode/content/une-mission-bancale.html
2020-10-11 00:40:36 +02:00

233 lines
47 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Une mission bancale - Elsif.fr</title>
<meta name="DC.title" content="elsif.fr, site de Yannick François aka yaf (ou ya_f)."/>
<meta name="description" content="Le site de Yannick François. Développeur Senior, Responsable Produit, Pédagogue. Je travail chez Scopyleft"/>
<meta name="keywords" content="code, développement, programmation, apprentissage, apprendre, lean, agile, logiciel, tdd, objet, refactoring, libre, creative commons, linux, unix"/>
<meta name="author" content="Yannick François, https://elsif.fr"/>
<meta name="designer" content="Yannick François, https://elsif.fr"/>
<meta name="geo.placename" content="Poissy, Ile de france, France"/>
<meta name="robots" content="index,follow" />
<meta name="language" content="French" />
<meta name="HandheldFriendly" content="True" />
<meta name="MobileOptimized" content="320" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" />
<link rel="index" title="Yannick François / Développeur / Pédagogue" href="index.html" />
<link rel="alternate" type="application/rss" href="/feed.xml" title="elsif.fr/feed" />
<style>
body {
font-size:16pt;
max-width:42rem;
min-width: 18rem;
margin: 1em;
color: black;
background: white;
font-family: Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
text-align:right;
}
a { color: darkred; }
a:hover { background: gold; }
a:visited, a:active { color: dimgrey; }
nav { text-align:center; font-size:smaller; padding: 0; margin: 0; }
nav li { list-style-type: none; }
h2 > a, h2 > a:active, h2 > a:visited { color: lightgrey; text-decoration:none;}
h2 > a:hover { color: black; text-decoration:underline }
@media (max-width: 1000px) { #portrait {display:none;} }
</style>
</head>
<body>
<article>
<h1>Une mission bancale</h1>
<p>Cest lhistoire dune mission qui ne se passe pas très bien, surtout à la fin. Personne na été blessé, personne na vraiment souffert. Cest un environnement pas des plus agréable pour travailler que jai traversé durant ces quelques jours de 2015. Il me semble intéressant de partager aussi ce genre daventure.</p>
<p>La mission commence en mai 2015. Je venais de quitter Simplon, et j’étais retourner minscrire chez Port Parallèle. Lobjectif étais de rentrer chez /ut7, de faire comme si j’étais chez /ut7, de travailler chez ds clients comme si j’étais chez /ut7, sans y être administativement. Pendant ce temps, nous allions constituer la trésorerie nécessaire à mon entrée dans cette SCOP.</p>
<p>La mission sannonçait plutôt pas mal pourtant. Cest dans la boite de connaissance (peut-être damis pour certaines personnes chez /ut7) ayant participé à Agile Open France au moins une ou deux fois. Pourtant, je vais découvrir que nous navons pas du tout la même façon de voir lagilité, de pratiquer notre métier.</p>
<p><em>je nai pas commencé à journalisé au début de la mission, ou bien jai perdu des journaux, je ne sais plus</em></p>
<h2 id="mardi-19-mai-2015"><a href="#mardi-19-mai-2015">#</a>Mardi 19 mai 2015</h2>
<blockquote>
<p>Il faut faire un point</p>
</blockquote>
<p>Réaction très forte de Thibaut, un des membres de l’équipe. France voulais faire une redirection après la création dune ressource : retourner à lindex. Ça semble logique, mais comme ce nest pas écrit dans les specs… Jai mal à mon esprit agiliste.</p>
<p>Le repas du Midi avec Étienne et un des responsable chez ce client nous permet dexprimer nos difficultés face à certaines pratique de chez eux.</p>
<p>Je suis sensé être invité pour boire une bière avec les Acrhi (les grands boss expérimenté de cette boite). Cest noté !</p>
<p>Je suis content de la journée. Début de reprise de certaines partie du code que je ne trouvais pas agréable. Et lapplication commence à ressembler à quelque chose.</p>
<h2 id="mercredi-20-mai-2015"><a href="#mercredi-20-mai-2015">#</a>Mercredi 20 mai 2015</h2>
<p>Ce matin jai binomé avec France pour nettoyer un peu encore le code <a href="https://nodejs.org/">node</a>, ajouter des tests, supprimer des duplications et ajouter une règle de gestion. Ça fait du bien :-)</p>
<p>Cette après midi, cérémonie. Le client final arrive en retard.</p>
<blockquote>
<p><strong>Cérémonie de laprès midi, avec un estomac bien rempli, resultat non garanti</strong>.</p>
</blockquote>
<p>Je suis un peu surpris par la démo. Cest un peu bordelique. Le client final naide pas. Perte de temps, dispersion. Celui quon nome ScrumMaster chez mon client avoue ne pas avoir beaucoup regardé lappli. La rétrospective me semble un peu plate. Nous évoquons quand même des craintes sur le code sale.</p>
<p>Comme bien souvent, jai le sentiment que les raisons qui ont poussé à choisir cette stack technique sont douteuses. En plus de node, nous utilisons <a href="https://angularjs.org/">AngularJS</a>, et une base <a href="https://www.postgresql.org/">postgresql</a>.</p>
<p>Une bonne discussion pour la plannification. La recette chez mon client permet de calculer des points et de choisir des US. Cest bien commode, cest bien codifi. Ceci dit, je crois que nous en avons encore trop prit. Nous verrons. Cest peut-être pas si bon que ça davoir ce genre dabaque, ça se saurait si ça fonctionnait :)</p>
<p>Je suis fatigué, on a fini tard: 20h.</p>
<p>Jai acté avec le commercial du projet que je nai que les 16h30 provisionné sur le projet pour le moment. Je peux consommer comme je veux, mais pas plus. Je vais donc adapter ma présence avec l’équipe. Dans un premier temps je vais venir un peu plus (le vendredi en plus), et je viendrais moins en juin.</p>
<h2 id="vendredi-22-mai-2015"><a href="#vendredi-22-mai-2015">#</a>Vendredi 22 mai 2015</h2>
<p>Stand up qui va bien. Nous avons du retard, cest principalement du au client final qui na pas validé les tickets. Il est loin ce client.</p>
<p>Nous partons ensuite chacun sur nos tickets. Pas de pair programming. Cest triste. Surtout que je pense que cest pour un soit disant gain defficacité. Mais comment gagner en efficacité alors que deux des trois développeurs sont des stagiaires ?</p>
<p>Un des stagiaires part sur le ticket dupload de photo. Cest un peu la galère: la lib angular envoie le fichier en mode streaming (intéressant pour ne pas bloquer linterface utilisateur), mais du coup node le recoit bizarrement. Il manque peut-être un truc pour cloturer la reception ?</p>
<p>Lautre stagiaire part elle sur l’éditeur WYSIWYG. Je nai pas assez insisté pour ne pas faire cette feature, jaurais peut-être due ? Après quelques essais, elle à finalement réussie à le mette en place.</p>
<p>De mon coté, jai voulu faire du nettoyage du code coté client (organiser un peu les repertoires angular). C’était galère. Je faisait des pas trop grand. Jai fait plusieurs fois des retour en arrière pour avancer dun plus petit pas. Au final, je nai pas fait tout ce que je voulais. Jai ensuite fait un premier pas sur le système de recherche: un champ avec une query avec un <code>where =</code>. Jai ensuite exploré la recherche en full text search. Je crois que nous allons faire tout ça à la main.</p>
<p>Après une journée un peu hard. Jaide le premier stagiaire à trouver un contournement au fonctionnement de lupload. Nous avons faire un formulaire or angular pour envoyer le fichier en direct à node, puis nous le stockons dans un repertoire local, avec enregistrement du chemin…</p>
<p>Entre les difficultés à maintenir une organisation clair des fichiers, les galères sur lupload, et le fait que les deux stagiaires ont déjà beaucoup de chose à apprendre, je me demande si AngularJS est un choix judicieux ? De plus je ne vois pas trop quel est lintérêt pour lusage du client ?</p>
<p>En fait je me demande si ce projet naurait pas été plus simple avec du html/css/jquery/nodejs/mongodb plutôt que du html/css/angular/node/postgres. Est-ce que le changement est encore faisable ? Je pense que pour mongo cest moins indispensable… Mais nous pourrions gagner du temps de réalisation en supprimant angular :-)</p>
<h2 id="mardi-26-mai-2015"><a href="#mardi-26-mai-2015">#</a>Mardi 26 mai 2015</h2>
<p>Jai démarré la journée en pensant quil fallait que nous passions le projet sur html/css/jquery, nodejs et mongodb, et je la termine en me disant, &quot;ok tant pis, mais du coup mettont tout dans angular. Ce sont les stagiaires qui insiste pour garder Angular. Je ne vois toujours pas lintérêt de ce truc, mais autant sen servir à fond pour savoir.</p>
<p>Le client final commence à chouiner. La fin du projet va être difficile avec lui.</p>
<p>Je test une nouvelle configuration de vim: numérotation de lignes relative et ligne courante souligné. Pas mal.</p>
<p>Jai craqué le soir, jai fusioné les deux repertoire client et server du projet. Ça mennuie davoir travaillé le soir pour eux, mais jen avait vraiment envie.</p>
<h2 id="mercredi-27-mai-2015"><a href="#mercredi-27-mai-2015">#</a>Mercredi 27 mai 2015</h2>
<p>Ce matin, nous nous sommes dépéché pour finir les derniers points. Du coup nous avons livré une régression… Retour arrière aussi vite que possible… Jai vraiment le sentiment que nous courons après les points.</p>
<p>Cest dailleurs évoqué en retro, lors de la cérémonie de laprès midi. Il y a aussi des grandes discussion sur la célérité. Le stagiaire voudrais la doubler pour pouvoir utiliser plus de couleurs pour définir les tickets. Le scrum master semble contre, il préfère que lon découpe plus les tickets… Je fais linnocent en demandant pourquoi au stagiaire (je ne comprenais vraiment pas ce quil voulais faire pendant la cérémonie). Après la cérémonie, il ma expliqué. La célérité représente une sorte de ticket possible par jour (et par personne… ), et le <em>standard</em> ici cest de finir un ticket tout les jours. Cest donc interdit davoir un ticket à 3 points si la célérité est de 3 ou moins.</p>
<p>Tout ça pour faire du code pour un client… Je ne suis pas sur que ces <em>standard</em> aide vraiment à faire fonctionner les équipes. Mon intuition cest que cest utilisé pour savoir comment l’équipe avance en cours de sprint. <strong>Ça sent le contrôle à fond</strong>. Dommage pour lefficacité.</p>
<p>Jai fait le taf du scrum master (sans le vouloir) pendant la cérémonie: jai demander au client de bloquer une demi journée toutes les semaines, histoire quil soit dispo toujours à cette date.</p>
<p>Cest à ce demander si des formations dev en mode Gym Club pour les aider à faire monter des dev en archi + des formations scrum pour les scrum master ne serait pas intéressant pour eux. Le hic est quils ne font rien si ce nest pas facturé (le principe des boite de services qui essaient d’être rentable sur chaque minutes…).</p>
<h2 id="vendredi-29-mai-2015"><a href="#vendredi-29-mai-2015">#</a>Vendredi 29 mai 2015</h2>
<p>Nous avons encore fait le lapin blanc… Nous sommes en retard. Bruno, le scrum master nest pas là, alors quand nous faisons le standup, Antoine (le commercial, scrum master sur dautre projet normalement) viens faire un passage en mode “mais pourquoi”…</p>
<p>Thibaut à essayé de mettre en place des outils de specs executable ET travisCI. Travis fait tourné les tests unitaires que jai écrit sur la partie nodejs, mais pour les specs executables, ça semble plus difficile. WebDriver ou je ne sais quel protractor ne semble pas fonctionner. Jespère quil à réussi à faire quelque chose dans laprès midi.</p>
<p>France à fait des essais de librairie pour faire du PDF. Mais elle essaie den faire trop peut-être. Japprend que l’équipe à décidé hier (jeudi) de dire que ce ticket de “recherche” devait avoir un livrable dans lapplication. <em>Je ne suis pas sur de bien comprendre ce que cette boite entend par ticket de recherche du coup ?</em>. Alors elle aussi est en <em>retard</em>.</p>
<p>De mon coté, je démarre avec Ansible. Cest amusant et pas trop compliqué. De la configuration yaml. Dommage que ça ne soit pas du code ? <strong>Je me demande comment faire du TDD sur ces sujets, comment automatiser les vérifications que je fait manuellement</strong>, Il faudra que jen parle avec la super équipe qui a mis ça en place chez Mourinex ! :-D</p>
<p>Je commence aussi à modifier le script de déployement pour livrer lapplication sur le serveur de prod. Ça me permet de voir quil manque git. Je finirais mardi.</p>
<h2 id="mardi-2-juin-2015"><a href="#mardi-2-juin-2015">#</a>Mardi 2 juin 2015</h2>
<p>Aujourdhui, nous sommes encore en retard… Apparement France nest pas en forme. Jai appris que ça mère viens darriver de Chine. Cause-Effet ? Peut-être. Du coup elle dit que cest elle qui est en retard. <em>Esprit d’équipe bizarre ici par rapport à ce genre de sujet</em>.</p>
<p>Je continue sur Ansible et Capistrano. Un peu galère davoir la prod et la préprod sur le même serveur. <em>Cest là que je pense très fort à des container</em>. Mais au final je men sors (avec du retard par rapport à la prévision). En plus, je me rappel sur la fin que pour générer du PDF, nous avons besoin de la dernière version de wkhtmltopdf, une installation hors paquet debian du coup. Cest un peu galère au dernier moment. Je finirais demain matin. Tant pis pour lupload de photo qui ne fonctionnera surement pas.</p>
<p>Quelques questions darchi avec Tibaut. Il me parle ce qui pour lui est normal: créer une table avec lid (mais rien dautre) ET une table de jointure avec le même id plusieurs fois, lié à des id de documents… Je lui propose de tout mettre dans la même pour le moment… ça semble lui faire bizarre.</p>
<p>Journée un peu rude (des échecs sur la mise en production), mais globalement tout semble rouler un peu mieux…</p>
<h2 id="mercredi-3-juin-2015"><a href="#mercredi-3-juin-2015">#</a>Mercredi 3 juin 2015</h2>
<p>Ce matin, je fini de réparer le ansible/capistrano. Je regrette davoir fait le déployement en capistrano. Nous aurions pu le faire avec ansible, et ainsi utiliser le même outil pour le provisionning ET le delpoiement.</p>
<p>France nest toujours pas dedans. Mais elle me signale un soucis quand elle essaie de déployer. Nous regardons. Effectivement, ya une truc qui coince avec Forever (loutil nodejs qui soccupe du monitoring du process node).</p>
<p>Thibaut est toujours empétré dans les test fonctionnel. Apparement, quand cest pas protractor qui merde, cest travis. Il faut que je trouve une strategie pour mettre plue de test unitaire. Ça maidera à avoir un peu plus confiance dans notre code, et ça me permettra de relativiser un peu plus le manque de tests fonctionnel.</p>
<p>Cette après midi, cérémonie. Le SM est speed. Il a un train pour Londres ce soir. Jai appris ce midi que lui aussi après le projet, il part à Londres. <strong>Cest sur, pas de rab pour moi, ou alors ça sera avec une autre équipe !</strong>. Je regle aussi un soucis de date, disons une mauvaise compréhension. Je vais donc finir les deux dernières semaines à 1 jour par semaine.</p>
<p>La cérémonie se passe plutôt bien. Mais France est encore à coté du sujet. Pas concentré. A la fin, il nous reste un peu de temps à nous, l’équipe. Du coup on remet un peu les doigts dans le code. Jen profite pour parler un peu avec France. Effectivement, elle a des soucis lié à son stage à Londres et ça mère qui est aussi ici… et peut-être dautre truc. Je lui dit que ce nest pas grave, et que je préfère savoir que cest ça plutôt quun truc avec l’équipe.</p>
<p>Jai vraiment un soucis avec leur cérémonie. Mais comment faire autrement ? Avec des stagiaires, un po qui est client, un sm qui est commercial… Dur de trouver le bon ton, le bon rythme, la bonne façon de procéder. <em>Peut-être à la fin du projet, jaurais trouvé une proposition à leurs faire :-p</em>.</p>
<h2 id="mardi-9-juin-2015"><a href="#mardi-9-juin-2015">#</a>Mardi 9 juin 2015</h2>
<p>Ce matin, après un update (git pull et revue/discussion), jessaie de voir les soucis de deploiment dont l’équipe ma parlé hier par email. Et là, paf le chien, je me retrouve coincé, impossible de déployer.</p>
<p>Je peux me connecter au serveur en ssh, mais le capistrano ne fonctionne pas, un soucis de ssh. Je me rappel que Capistrano utilise un <em>forwarding agent</em>. Cest ça qui coince. Je prend quelques renseignements, jessaie de vérifier étape par étape si un truc coince…</p>
<p>L’équipe ayant bien avancé, ils continuent sur leur lancé, moi jessaie de me dépatouiller.</p>
<p>Je binome un peu avec eux. Ils ont du mal à apréhender la notion de callback JS. Idem pour les problématique de SQL.</p>
<p>Antoine est venu mettre un coup de <em>pression</em>: <em>Vous navez pas encore fait le standup, il faut le faire à heure fixe</em>. Nous attendions Bruno, notre scrum master. Mais du coup, tant pis nous avons fait le daily sans lui.</p>
<p>Laprès midi, finalement un autre archi me donne la solution, il fallait que je re-donne ma clef privée à lagent: <code>ssh-add .ssh/id_rsa</code>… Ça fonctionne.</p>
<p>Jen profite pour faire un peu de shell pour rendre le processus de deploiement un peu plus robuste.</p>
<h2 id="mercredi-10-juin-2015"><a href="#mercredi-10-juin-2015">#</a>Mercredi 10 juin 2015</h2>
<p>Ce matin, la cérémonie devait commencé à 8h. Javais pris des disposition pour pouvoir être là vers 8h30 au plus tard. Je suis arrivé à 8h15, le PO était en retard.. (alors que cest pour lui que nous avons fait ça très tôt).</p>
<p>Nous ne faisons pas vraiment de demo, mais plutôt la validation de tickets qui traine. Il se trouve quun nouveau cas non prévu bousille tout une partie des features que nous avons fait. Du coup plein de ticket reparte dans le backlog. Nous avons oublié quune affaire doit absoluement avoir un interlocuteur…</p>
<p>Ce raté est en partie du à nous qui navons pas rappelé au PO ces sujets, et à lui qui est vraiment en mode: “ok, lagilité, cest j’écris mon cahier des charges sur des petits tickets dans un outils en ligne, cool”. Mais lapplication, dont il nest pas et ne sera pas utilisateur apparement, nest toujours pas dans les mains dun utilisateur… Il y aura dautres surprises !</p>
<p>A la pause, il reçoit un coup de fil qui le met dans une drole dhumeur… A son retour, il commence à simpatienter, il est nerveux. Il nous reproche de ne pas aller assez vite, et malheureusement l’équipe lui donne raison (sans vraiment le vouloir je pense ?) en exprimant un sentiment daller trop doucement…</p>
<p>Jessaie dattirer leur attention sur le nombre de chose que nous avons fait, sur le fait que ce sont des features un peu masqué (sans interface graphique).</p>
<p>Le PO part avant la fin, nous essayons de faire le planning sans lui, mais il y a trop de question pour pouvoir le faire correctement. Gros sentiment d’échec. Bruno, le SM, men fait par le midi: “Cest un gros échec pour moi”. Nous discutons un peu sur les trucs possible qui pourrait rattraper le coup.</p>
<p>En même temps, Bruno et France vont partir à Londres à la fin du projet, ça se ressent.</p>
<p>Laprès midi, Thibaut est tout feu tout flamme, comme dhabitude, et veux coder 12 trucs en même temps. Mais il oublie de verifier que cela fonctionne, d’écrire des tests, de nettoyer son code… Bref.</p>
<p>Ils ont rendez-vous au téléphone ce soir avec le PO pour essayer de finir le planning. De mon coté, jai essayé de faire une feature ET de faire du refatoring… peut-être un peu trop. Du coup, au moment de push, je pull et lance les rare tests dintégrations, <em>paf</em>, jen ai pété un. Je vais être en retard au JSLDD, mais tant pis, jessaie de corriger. Je ny arrive pas, Cest pas très simple, nous navons pas commecé sur de bonne base lutilisation dangular, et les refactoring nécessaire sont parfois délicat. Le débugage aussi ! Je pousse ma branche et laisse un message. Jespère quils vont trouver la solution demain.</p>
<h2 id="mardi-16-juin-2015"><a href="#mardi-16-juin-2015">#</a>Mardi 16 juin 2015</h2>
<p>Je me retrouve à réparer le build, mais pas suite à ce que javais laissé la dernière fois. En fait hier, il y a eu une boulette, et peut-être une boulette par dessus… bref. Une histoire de variable, de setup, doublie de function et autres bricole.</p>
<p>Pendant le daily, Benjamin est venu surveiller… Il me redemande (avec Bruno) si je peux être en ligne (skipe/hangout) pendant les Daily. Jexplique que cest compliqué de prendre du temps sur dautres client… Benjamin me demande un postmortem sur les histoires de test qui sont rouge. Il insiste aussi sur leur questionnaire devops, il essaye de voir si nous avons bien compris ce que ça signifie (nous sommes sous le standard depuis le début, ça les chatouillent on dirait ! :-)).</p>
<p>L’équipe à vraiment bien avancé, le backlog du sprint et vide. Comme cette après-midi France et Bruno vont chez le client pour faire un tour de lappli avec un oeil UX/Design, nous avons décidé de ne pas prendre des tickets en plus. Nous optons pour une phase de nettoyage du code. Thibault met en place un outil de qualité de code, et suite à ça, se lance dans le refactoring. De mon coté, jessaie de mettre en place des outils pour pouvoir bénéficier dun environnement de test propre, un environnement de dev et un de prod. Ça nous permettrais dau moins mettre en place un reset de la base avant de lancer les tests. Le mieux serais de pouvoir mettre en place une sorte de factory-girl.</p>
<p>Après mon email <em>post-mortem</em>, Benjamin me répond en parlant de ne faire que des choses qui apporte de la valeur pour le client, des choses que le client verra, pour quil se rende compte de ce que je fait… Je trouve que leur mode de travail laisse peut de place à la qualité. Ce matin il évoquait le fait que le client pouvait décider de la non qualité de son application… <strong>beurk</strong></p>
<p>Ce midi je suis allez manger avec 6 petits jeunes <em>développeurs</em> dici (cest Thibaut qui ma emené avec ces copains). Et bien ils sont tous stagiaires. Lun dentre eux, arrivé hier, à fait une réflexion: “mais ya que des stagiaires ?” :-)</p>
<h2 id="mercredi-17-juin-2015"><a href="#mercredi-17-juin-2015">#</a> Mercredi 17 juin 2015</h2>
<p>Ce matin cest cérémonie chez le client. Une société qui controle des travaux, avec des gros sous donc. Avenue Iéana… Jarrive en retard, je suis orienté en sous-sol vers la salle de réunion. Grande pièce, fauteils en cuir énorme, une table en bois précieux énorme, bref, ça sent largent frais…</p>
<p>Le client se plaint des régressions, cest vrai quil y en a pas mal. Hier en refactorant nous avons cassé pas mal de truc… Il est content car il va sen servir pour négocier un tarif sûrement.</p>
<p>Le chrono est bien tenu, la cérémonie ne dépasse pas le temps imparti, par contre la rétro est quasi passé à la trappe. <strong>On voit bien les priorités</strong>. Bruno négocie le fait que je puisse être là au daily le matin. Je vais du coup plutôt faire des demi-journées surement.</p>
<p>Après le repas, de gros échange avec Thibaut et France sur les tests, trop de tests, pas assez, comment on fait… Une vrai négociation. Je narrive pas à faire comprendre mon point de vue à Thibaut. Je me rend compte que jai peu dargument. <em>Est-ce vraiment important dailleurs ?</em> Jonhatan évoque sur slack que george est codé sans tests. Cette idée fait un bout de chemin durant laprès midi, après que jai décidé darreter de convaincre Thibaut.</p>
<p>Antoine, le commercial de laffaire, a reçu un email du PO/client. Bien sur, il se plaint. Il commence une négo. Mais Antoine vient nous voir avec Bruno pour faire une réunion/point pour avoir des billes à lui opposer. La réunion est un peu cliché, cest un peu chiant de revenir encore sur ces histoires de tests. Surtout que je suis en reflexion, prêt à justement faire une impasse dessus, alors quAntoine et Bruno, insiste sur le fait de devoir les faire et de présenter cela au client comme indispensable. Je vis ces remarques comme assez dogmatique. <em>Est-ce que je vieilli sur ces sujets ?</em>. Je me rend compte que le TDD maide à programmer proprement, mais que je ne suis pas pour une couverture de tests à 100%. Je crois que Thibaut pense que je souhaite cela. En fait je commence à proposer de faire des tests maunellement surtout, de les écrires et les dérouler.</p>
<p>Je suis en retard pour la réunion avec les potentiels futurs élèves, je me sauve avant de les avoir entendu statué sur le sujet. De toute façon je ne les voient que lundi matin prochain, je verrais bien le résultat.</p>
<p>Bizarre de travailler dans une équipe de cette manière. Le plus bizarre et de faire de la production pendant juste quelques jours…</p>
<h2 id="mardi-23-juin-2015"><a href="#mardi-23-juin-2015">#</a>Mardi 23 juin 2015</h2>
<p>Pas de courant chez le client aujourdhui, je travail depuis la boutique.</p>
<p>Nous faisons le daily meeting sur Slack, comme hier matin, il ny a pas Bruno (hier je suis passé faire le daily seulement). Cest bizarre. En plus d’être avec 2 stagiaires, je me retrouve sans un garant des pratiques du client. Cest un coup à me faire faire tout changé :-p.</p>
<p>Nous sommes en retard daprès les standard défini ici. Il faut donc se fouetter avec des orties. En gros, nous avons travaillé sur des sujets hors scope, hors ticket hier, et nous navons pas comptabilisé latelier chez le client dans la vélocitée. <em>Je trouve tout ce système bien lourd à la longue, quest-ce que le client réclame vraiment ? Est-ce que tout cela nest pas pour servir un discour commercial ?</em> Jaimerais bien debriefer avec Étienne sur l’échange que nous avons eu avec Antoine à Agile France.</p>
<p>Je commence un ticket qui a posé problème à Thibaut hier, un truc de date. Je me focalise sur un point: ne pas pouvoir saisir une date inconnu: le 34 mai 2015. Il se trouve quen fait, Angular le gère déjà en glissant jusquau jour qui conviens, dans lexemple, la date utilisé sera le 3 juin 2015 (34 - 31 = 3). Du coup je comment et passe à un autre ticket en attendant le verdic du client. Jajoute un footer dans le pdf, sans faire beaucoup de refactoring.</p>
<p>Le client répond dans laprès midi que cest ok de ne rien faire sur ce sujet, mais il rappel quil ne faut pas pouvoir saisir une date futur… Jai mal lu le ticket ou bien ce n’était pas précisé ?</p>
<p>Thibaut a encore faire une remarque: &quot; jai passé le sprint à faire des tests, il faut que nous fassions des points maintenant &quot;</p>
<p>A suivre demain.</p>
<h2 id="mercredi-24-juin-2015"><a href="#mercredi-24-juin-2015">#</a>Mercredi 24 juin 2015</h2>
<p>Ce matin, je suis de mauvaise humeur. Une histoire de clefs introuvable, un plombier qui devait venir à 8h qui nest pas là à 8h45, du coup je pars quand même, je suis en retard à la cérémonie…</p>
<p>Nous partons encore dans des histoires de forme, de standard, de points, destimations. Je suis un peu fatigué et ça ne passe pas bien. Je crois que ça se voit. Le client nest pas très heureux non plus. Est-ce quil joue pour négocier ?</p>
<p>Thibaut me fatigue un peu parfois, il ne prend pas de recul sur sa pratique. Je pense que France là dessus remet plus facilement en cause, et se pose plus de question. Bruno lui essait de faire avancer le projet, mais en collant aux standards définie.</p>
<p><em>Quel est lobjectif de ces standard ?</em> Je me demande si cest pour controller les troupes/projets au sens large, ou bien juste pour être sur que les scrum master ne soit pas inutile, ou encore si ce nest pas un pseudo process pour rassurer le client et pouvoir vendre des prestation. En tout cas, je nai pas limpression que ça maide à avance moi.</p>
<p>Je dois annuler un déjeuner car la cérémonie dur trop longtemps. Tant pis, je le verrais plus tard. Cest un élève de la 2nd promo, celui embauché chez Octo, dans la startup qui fait des app pour entreprise… Peut-être je vais lui proposer de passer demain à la boutique ?</p>
<p>Cet après midi, Valentin, un archi en partance pour Londres, et le coach de France, viens nous aider en mode sous marin (entendre, gratuit pour le client). Cest cool. Du coup il binome avec Thibaut sur les soucis de travisCi et de tests fonctionnels. De mon coté, je binome avec France pour régler des soucis sur la numérotation de documents, et dans loptique de nettoyer un peu le code.</p>
<p>Cest très sympa. Nous essayons des choses pour améliorer le code. Nous enlevons des appels serveurs inutile, des procédures qui ne servent à rien, déplaçons du code du serveur sur le client et inversement… Bref, un grand nettoyage, tout en déroulant des scénarios utilisateurs autour de ces documents, mais manuellement. Je nai vraiment pas envie de prendre du temps pour écrire des scénarios automatisé. Je trouve cela trop douloureux pour le moment. Jaimerais arriver à un code dans lequel nous pourrons faire du TDD (et donc ajouter des tests unitaires sur le code existant) facilement.</p>
<p>France avait parlé dun gros noeud de spageti, je pensais que nous pourrions nettoyer, mais non, cest effectivement un gros bordel.</p>
<p>Avant de partir, un rebase pour faire une pull request, et là, on se rend compte que le refactoring des tests des autres ne fonctionne pas sur la machine de france… Je les laissent essayer de régler cela.</p>
<p>Jai chopé Benjamin vite fait pour voir les histoires de dispo. Pas eu le temps daller chercher Étienne. Apparement, le client actuel souhaite ajouter 3 sprint début aout que je vais faire en 2 semaines puisque jai une semaine prise. Et par contre, il voulait me prendre sur un autre projet, pour 3 semaines, mais cest sur mes congés… tant pis.</p>
<p>Je suis bien fatigué, mais content du code produit avec France. Je ne la reverrais pas tout de suite, elle part à Londres samedi. Jespère que le code ira bien en prod et que jarriverais à travailler avec Thibaut la semaine prochaine.</p>
<h2 id="mardi-30-juin-2015"><a href="#mardi-30-juin-2015">#</a>Mardi 30 juin 2015</h2>
<p>Ce matin, après un point rapide avec Thibaut, je matèle à réparer le serveur de staging (qui est aussi celui de prod). France, avant de partir pour lAngleterre à cassé un truc. Elle à voulu mettre nodejs à jour pour pouvoir faire marché des promèses quelle à mis en place sur sont environnement… Mais ne sachant comment faire elle a ajouté NVM… Une couche par dessus une couche…</p>
<p>Je nettoie tout cela en supprimant toute linstallation, je modifie le script ansible et zou, ça fonctionne … presque. Le paquet Debian de node est à jour: 0.12.5, mais linstallation de NPM ne fonctionne pas. Je met un peu de temps à découvrir quen fait, npm est inclu dans note à partir de la version 0.12. Ouf.</p>
<p>Laprès midi, je prend un ticket que Thibaut ne sent pas. Après quelques échanges avec le client, le ticket se simplifié. Je le fait tranquillement pendant que lui nettoie la génération de PDF.</p>
<p>Vu les températures, ils ont le droit de travailler de chez eux pour le reste de la semaine. Mais demain, nous ferons la dernière cérémonie chez le client, et nous viendrons travailler laprès midi chez Theodo.</p>
<p>Bruno, le SM, était absent tout le matin, et vraiment pas présent laprès midi. Il part en vacances demain soir, avant la fin du sprint qui a lieu vendredi. Comme France, il a déjà la tête en Angleterre. Ça fait même quelques semaines. Thibaut se lache et me faire part de son mécontentement par rapport à Bruno, certaines pratiques ici, et la relation avec le client final qui, par interface électronique interposé, nest pas très fluide.</p>
<p>Est-ce que dautres sont comme Thibaut, pas très enchanté de la façon dont les projets sont géré ici ? Cest possible.</p>
<p>Jai croisé plusieurs fois Julien et Benjamin, ils ne mont rien dit par rapport à mes prochaines journées chez eux. Je déduis que je suis dispo la semaine prochaine. En même temps, je suis en congé juste après.</p>
<h2 id="mercredi-1er-juillet-2015"><a href="#mercredi-1er-juillet-2015">#</a>Mercredi 1er juillet 2015</h2>
<p>Ce matin, cérémonie chez le client. Thibaut à demandé à Antoine de venir. Il est là, posé. Cest pas mal au début il prend un peu le stylo pour animer la cérémonie, mais très vite ça tourne au consultant, donnant de grand conseil… Bof.</p>
<p>Encore plein d’échanges autour du la façon dont on travail plus que sur la façon de mettre de la valeur dans lapplication. Un moment, Bruno me demande de trancher. Je lui explique que non, je ne vais pas trancher sur une pratique qui ne me va pas. Je note plusieurs chose qui me semble ne génante chez eux, les voici un peu en vrac:</p>
<ul>
<li>Pas de démo, cest dommage</li>
<li>grosse perte de temps pour les estimations (avec poker et tout le décorum)</li>
<li>toute la communication (avec le PO) est électronique, ça manque de fluidité</li>
<li>pourquoi pas du flux continue ? (cest peut-être un peu biaisais, lié à mes préférences ça)</li>
<li>un proxy-po aurait peut-être pu aider ? en tout cas, une personne qui sais batir des produits, histoire de pouvoir dialoguer avec le client, qui est celui qui finance. Au lieu dun SM, avoir une personne produit…</li>
<li>tous les clients sont différents, toutes les équipes sont différentes =&gt; pourquoi avoir des standard de fonctionnement valable pour tous ? ya un relan de command&amp;control dans cette histoire</li>
<li>le sentiment que parfois ils oublient que le faire un logiciel et un processus de découverte</li>
</ul>
<p>Je ne peux pas mempécher den parler avec Bruno et Thibaut, mais je ne suis pas sur d’être entendu. Sauf peut-être avec Bruno, nous avons des échanges constructif sur ce point.</p>
<p>Antoine a décelé que Thibaut, Bruno et moi n’étions pas aligné (ce sont mes mots, il a évoqué une mauvaise entente ou un truc dans le genre). Cest assez vrai. J’évoque le fait que je suis daccord, mais que je ne me sent pas du tout de l’évoquer en rétro devant leur client, que cela ne me semble pas propice. Jaurais aimé que eux laborde, pour me donner le signal que c’était possible.</p>
<p>Bref. Etant donné que cest le dernier jour pour moi, et pour Bruno, tout cela me semble bien inutile. Cest bizarre aussi ce fait de ne pas créer une équipe qui dure un peu.</p>
<p>Laprès midi, je code, répare des trucs, supprime une promise inutile et bugué que France nous avais laissé dans le code. fait une petite correction par ci, et un petit ajout de sécurité par là…</p>
<p>Je nai rien demandé à Benjamin ou Julien, que jai pourtant croisé plusieurs fois, et eux non plus ne mont rien dit.</p>
<h2 id="lundi-27-juillet-2015"><a href="#lundi-27-juillet-2015">#</a>Lundi 27 juillet 2015</h2>
<p>Cest la reprise. Le projet repart pour 3 sprints. Je retrouve Thibaut qui est toujours Dev. Sajoute Clément que jai déjà croisé, je crois quil a déjà un ou deux projets dans les pattes (jespère), et un autre Benjamin qui fera le SM.</p>
<dl>
<dt>Vendredi dernier, Benjamin ma appelé. Nous avons eu un échange sur le thème de</dt>
<dd>« ton projet est le pire de chez Théodo, comment ça se fait ? » Jai exposé les points comme le départ en Angleterre de Bruno et France, le fait que Thibaut cherche à <em>faire des points</em>… Nous verrons bien. Ce matin, Benjamin (le SM) à remis un peu le couvert : <em>Comment ça se fait que vous navez pas de définition du succès sur le projet ? Comment ça se fait que ce truc nest pas rempli, et que ça, sa ne fonctionne pas …</em> Bref. Ambiance. Thibaut met ça sur le dos de Bruno, je lui rappel que nous avons tous un peu merdé.
</dd>
</dl>
<p>Benjamin et Thibaut sont ok pour utiliser une célérité de 4 ou je ne sais pas quoi. Je ne comprend toujours pas leur usage de ce truc, mais tant pis, je les laisse piloter. Je vais beaucoup moins mimpliquer sur leurs pratique pour éviter de faire des vagues… Le projet se passera peut-être mieux ? En tout cas, je serais sûrement moins affecté.</p>
<p>Nous essayons ensuite de débuguer le Travis qui est rouge (et laissé rouge) depuis bien longtemps… Je part avant de le voir vert. Jespère que demain ça sera réglé…</p>
<h2 id="mardi-28-juillet-2015"><a href="#mardi-28-juillet-2015">#</a>Mardi 28 juillet 2015</h2>
<p>Ce matin, pour ne pas changer, le PO/client, est arrivé en retard… Heureusement, nous navons pas fait de rétrospective (démarrage de projet). Décision sur la célérité: elle sera haute… Ah ! Cela permet davoir plus damplitude pour estimer les tickets. Cest vraiment bizarre, mais bon. La cérémonie se passe plutôt bien. Jai limpression que tous le monde était très attentif au fait que ça se déroule correctement et dans les temps.</p>
<p>Choix de petits tickets pour laprès midi, du coup ça dépotte. Enfin, je bouffe tout les petits tickets. Clément et Thibaut avance sur leurs tickets à 2. Est-ce la bonne stratégie ? Nous verrons bien.</p>
<p>En fin de journée jattaque un refactoring histoire de supprimer quelques duplication et daller un peu plus vers une archi où le nodejs sert dAPI et le client, avec angular contient beaucoup de logique métier.</p>
<h2 id="mercredi-29-juillet-2015"><a href="#mercredi-29-juillet-2015">#</a>Mercredi 29 juillet 2015</h2>
<p>Jattaque aujourdhui un gros ticket. Gros parce quil touche des morceaux de code pas très beau. Lidée est de faire un peu de refactoring… Mais la motivation me manque. Je fais un peu de bricolage, rien de plus. Je fini le ticket. Jentends pendant ce temps les deux autres en train de ce prendre la tête sur lajout dune librairie pour la gestion de lautentification. Je nai pas très envie de les aider.</p>
<p>Ce matin, il y a tellement de personnes qui viennent pour des entretiens que Benoit, notre SM ne peux pas venir faire le Daily. Nous faisons sans lui. Comme nous avons fait beaucoup de petits tickets, les points sont fait. Donc rien à signaler. Pour combien de temps.</p>
<p>Gros manque de motivation aujourdhui.</p>
<h2 id="vendredi-31-juillet-2015"><a href="#vendredi-31-juillet-2015">#</a>Vendredi 31 juillet 2015</h2>
<p>Ce matin, en arrivant, Clément et Thibaut sont en train de ce poser de grandes questions apparement, mais à mon arrivée, ils décident de plutôt aborder un soucis avec la preprod: elle ne fonctionne pas…</p>
<p>Après quelques questions, je comprend finalement que cest la fonctionnalité qui permet de sauthentifier, que nous devions finir mercredi, qui ne fonctionne pas sur la preprod alors quen local cela fonctionne. Nous partons en daily meeting sur ces échanges. Le Po/client à déplacé des tickets de “à valider” à “backlog” parce quil n’était apparement pas bon. Il a fait des retours sur des sujets qui apparement nont pas grand chose à voir…</p>
<p>Après analyse, il semblerais que sur 5 retour il y a bien 2 régression, deux précision sur les tickets réalisé, et un truc qui na rien à voir… Personnes ne souhaite lappeler pour en parler, je men charge donc. De manière factuel nous abordons ces points et il crée deux tickets (il dit “acheter”) quil place dans le backlog, puis nous discutons du reste, et je lui explique pourquoi la preprod est coincé pour le moment.</p>
<p>Ensuite, Clément et moi essayons de voir ce qui pose problème. Apparement cest le nginx qui bloque les cookies (ou une partie ?), mais Clément à limpression quil y a autre chose qui ne fonctionne pas. Cest vrai quen passant dans certains écrans, il y a “une déconnexion”, cest à dire que nous sommes redirigé vers la page de login. Je lui dit de réparer dabord la partie nginx et nous verrons ensuite, mais non, il sobstine. Ok. Un archi, demandé par Benoit, notre SM, arrive et demande à Clément de lui epxliquer le problème… Au lieu de partir de la situation actuel, il lui refait tout lhistorique. Je pars, cest lheure.</p>
<p>Jai le sentiment de ne pas avoir beaucoup fait avancé le projet, et de travailler avec deux sourds… Plus que 2 sprints, dont un seul chez eux ! :-)</p>
<h2 id="lundi-10-août-2015"><a href="#lundi-10-août-2015">#</a>Lundi 10 août 2015</h2>
<p>Ce matin, en arrivant, japprend que la préprod est encore en vrac. Apparement un truc aléatoire lors de la génération de certains documents…</p>
<p>Jai passé un bon bout de journée dessus pour au final virer les promesses quils avaient décidé dutiliser pour faire une bonne vieille requête SQL en chaine de caractères. Du coup, ça fait une reuqête au lieu de x (x pouvant aller facilement à 10). Nous regardons ensuite avec Clément comment améliorer le code. Je le force à regarder puisque jai laissé malgré moi des boulettes dans le code.</p>
<p>Quelques échanges technique avec Clément surtout, Thibaut cest lancé dans un ticket “en plus” avec plein de refactoring… Ce soir, il dit ne pas encore avoir attaqué le ticket mais fait du refactoring… Nous verrons demain la quantité de régression (que jespère proche de 0).</p>
<p>Pas de SM de la journée… Enfin si, nous le voyons débarquer vers 17h30. Il nous demande comment ça va et repart.</p>
<p>Benjamin à interpelé Étienne à notre retour du repas. Étienne est parti ensuite en réunion. Jai resenti comme une exclusion, mais javoue que ça me va bien. J’étais content de ne pas être invité. Jai vraiment le sentiment que cest ma dernière semaine ici et ça me va bien. Cest même peut-être ce qui va maider à passer la semaine.</p>
<h2 id="mardi-11-août-2015"><a href="#mardi-11-août-2015">#</a>Mardi 11 août 2015</h2>
<p>Je suis arrivé avant que les portes soient ouvertes chez mon client… Le client final est en mode pas content: le produit nest pas <em>fini</em>. Il découvre des régressions, râle, sans être trop agressif je trouve, mais je sens une tension dans la pièce. En plus il y fait chaud.</p>
<p>Je reste assez silencieux: je nai pas participé la semaine dernière, et hier jai juste reparé un soucis. Pas vraiment le sentiment davoir apporté une influence sur ce sprint. Ça me va bien. Je laisse les autres dérouler leur processus.</p>
<p>A la pause, le client final me prend à part pour me parler du projet, de la deception quil a. Il évoque aussi le fait que l’équipe est meilleur maintenant quau début. Je lui explique que cest tout à fait vrai, que chez les éditeurs il y a y soucis de ne pas avoir trop de turn over car les équipes deviennent meilleurs avec le temps. Elles apprenent à travailler comme un groupe et en plus apprennent le métier.</p>
<p>La cérémonie se déroule, la rétro passe presque inaperçu. Japprend quil y aura une cérémonie vendredi, en fin de journée, je ny serais pas.</p>
<h2 id="mercredi-12-août-2015"><a href="#mercredi-12-août-2015">#</a>Mercredi 12 août 2015</h2>
<p>Ce matin, je ne suis pas bien motivé. Ça commence à être une habitude. Avec l’équipe, sans le SM, nous décidons que je vais prendre le ticket qui revois les pdf. Je nai pas vraiment mis le nez dedans depuis le début.</p>
<p>Je ne suis pas déçu ! De la duplication, des morceaux de code qui pourrait être dupliqué, mais en fait non (ce qui explique des écarts entre un pdf dun type et un autre).</p>
<p>Derrière moi, Thibaut rale sur le client. Cest fatiguant. Je me demande si un de mes soucis avec ce projet nest pas son attitude. Il veut faire vite, rejette les fautes sur le client. Du coup cette après-midi, nous ne le voyons presque pas: un coup il est bénévole pour installer le wifi au 3ième étage, un coup il a un entretien avec son <em>coach</em> (je crois).</p>
<p>Le SM lache une petite reflexion sur le fait que <em>ses deux projets</em> ne fonctionne pas bien (en dessous du standard sur le questionnaire client, le standard cest 8/10, nous avons 4/10).</p>
<p>Heureusement, demain cest jeudi, et il ne me reste plus que vendredi matin.</p>
<p>Je nai pas fini mon nettoyage de pdf, je finirais vendredi matin, Jespère que jarriverais à tout mettre au propre et quil ny aura pas dautres soucis.</p>
<h2 id="et-après"><a href="#et_apres">#</a>Et après</h2>
<p>Le client na pas voulu nous payer la dernière semaine de travail. Apparement, le client finale ne voulais pas payer les deux dernières semaines… Au delà de nous faire partager le soucis, jai été pointé comme étant le responsable du fiasco de ce projet. Ça na pas été facile à entendre.</p>
<p>Ensuite, nous avons voulu reconstituer le fil de certains évènements. Javais malheureusement perdu mes mails durant l’été. Une belle leçon.</p>
<p>Jai tiré un autre apprentissage de cette histoire : si ça ne va pas, il faut partir vite, pas attendre la fin en se disant que ça ira mieux après.</p>
<p>Cette histoire ma également confirmé quil y a plein dinterprétation possible de lagilité, et que même chez les personnes qui semblent proche, les écarts peuvent être dur à vivre.</p>
</article>
</body>
</html>