781 lines
41 KiB
Markdown
781 lines
41 KiB
Markdown
---
|
|
title: Une mission bancale
|
|
---
|
|
|
|
|
|
C'est l'histoire d'une mission qui ne se passe pas très bien, surtout à la fin.
|
|
Personne n'a été blessé, personne n'a vraiment souffert. C'est un environnement
|
|
pas des plus agréable pour travailler que j'ai traversé durant ces quelques
|
|
jours de 2015. Il me semble intéressant de partager aussi ce genre d'aventure.
|
|
|
|
La mission commence en mai 2015. Je venais de quitter Simplon, et j'étais
|
|
retourner m'inscrire chez Port Parallèle. L'objectif é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.
|
|
|
|
La mission s'annonçait plutôt pas mal pourtant. C'est dans la boite de
|
|
connaissance (peut-être d'amis pour certaines personnes chez /ut7) ayant
|
|
participé à Agile Open France au moins une ou deux fois. Pourtant, je vais
|
|
découvrir que nous n'avons pas du tout la même façon de voir l'agilité, de
|
|
pratiquer notre métier.
|
|
|
|
_je n'ai pas commencé à journalisé au début de la mission, ou bien j'ai perdu
|
|
des journaux, je ne sais plus_
|
|
|
|
## [#](#mardi-19-mai-2015)Mardi 19 mai 2015
|
|
|
|
|
|
> Il faut faire un point
|
|
|
|
Réaction très forte de Thibaut, un des membres de l'équipe. France voulais
|
|
faire une redirection après la création d'une ressource : retourner à l'index.
|
|
Ça semble logique, mais comme ce n'est pas écrit dans les specs... J'ai mal à
|
|
mon esprit agiliste.
|
|
|
|
Le repas du Midi avec Étienne et un des responsable chez ce client nous permet
|
|
d'exprimer nos difficultés face à certaines pratique de chez eux.
|
|
|
|
Je suis sensé être invité pour boire une bière avec les Acrhi (les grands boss
|
|
expérimenté de cette boite). C'est noté !
|
|
|
|
Je suis content de la journée. Début de reprise de certaines partie du code que
|
|
je ne trouvais pas agréable. Et l'application commence à ressembler à quelque
|
|
chose.
|
|
|
|
## [#](#mercredi-20-mai-2015)Mercredi 20 mai 2015
|
|
|
|
Ce matin j'ai binomé avec France pour nettoyer un peu encore le code
|
|
[node](https://nodejs.org/), ajouter des tests, supprimer des duplications et
|
|
ajouter une règle de gestion. Ça fait du bien :-)
|
|
|
|
Cette après midi, cérémonie. Le client final arrive en retard.
|
|
|
|
> **Cérémonie de l'après midi, avec un estomac bien rempli, resultat non garanti**.
|
|
|
|
Je suis un peu surpris par la démo. C'est un peu bordelique. Le client final
|
|
n'aide pas. Perte de temps, dispersion. Celui qu'on nome ScrumMaster chez mon
|
|
client avoue ne pas avoir beaucoup regardé l'appli. La rétrospective me semble
|
|
un peu plate. Nous évoquons quand même des craintes sur le code sale.
|
|
|
|
Comme bien souvent, j'ai le sentiment que les raisons qui ont poussé à choisir
|
|
cette stack technique sont douteuses. En plus de node, nous utilisons
|
|
[AngularJS](https://angularjs.org/), et une base
|
|
[postgresql](https://www.postgresql.org/).
|
|
|
|
Une bonne discussion pour la plannification. La recette chez mon client permet
|
|
de calculer des points et de choisir des US. C'est bien commode, c'est bien
|
|
codifi. Ceci dit, je crois que nous en avons encore trop prit. Nous verrons.
|
|
C'est peut-être pas si bon que ça d'avoir ce genre d'abaque, ça se saurait si
|
|
ça fonctionnait :)
|
|
|
|
Je suis fatigué, on a fini tard: 20h.
|
|
|
|
J'ai acté avec le commercial du projet que je n'ai 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.
|
|
|
|
|
|
## [#](#vendredi-22-mai-2015)Vendredi 22 mai 2015
|
|
|
|
Stand up qui va bien. Nous avons du retard, c'est principalement du au client
|
|
final qui n'a pas validé les tickets. Il est loin ce client.
|
|
|
|
Nous partons ensuite chacun sur nos tickets. Pas de pair programming. C'est
|
|
triste. Surtout que je pense que c'est pour un soit disant gain d'efficacité.
|
|
Mais comment gagner en efficacité alors que deux des trois développeurs sont
|
|
des stagiaires ?
|
|
|
|
Un des stagiaires part sur le ticket d'upload de photo. C'est un peu la galère:
|
|
la lib angular envoie le fichier en mode streaming (intéressant pour ne pas
|
|
bloquer l'interface utilisateur), mais du coup node le recoit bizarrement. Il
|
|
manque peut-être un truc pour cloturer la reception ?
|
|
|
|
L'autre stagiaire part elle sur l'éditeur WYSIWYG. Je n'ai pas assez insisté
|
|
pour ne pas faire cette feature, j'aurais peut-être due ? Après quelques
|
|
essais, elle à finalement réussie à le mette en place.
|
|
|
|
De mon coté, j'ai voulu faire du nettoyage du code coté client (organiser un
|
|
peu les repertoires angular). C'était galère. Je faisait des pas trop grand.
|
|
J'ai fait plusieurs fois des retour en arrière pour avancer d'un plus petit
|
|
pas. Au final, je n'ai pas fait tout ce que je voulais. J'ai ensuite fait un
|
|
premier pas sur le système de recherche: un champ avec une query avec un `where
|
|
= `. J'ai ensuite exploré la recherche en full text search. Je crois que nous
|
|
allons faire tout ça à la main.
|
|
|
|
Après une journée un peu hard. J'aide le premier stagiaire à trouver un
|
|
contournement au fonctionnement de l'upload. 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...
|
|
|
|
Entre les difficultés à maintenir une organisation clair des fichiers, les
|
|
galères sur l'upload, 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 l'intérêt pour l'usage du client ?
|
|
|
|
En fait je me demande si ce projet n'aurait 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 c'est
|
|
moins indispensable... Mais nous pourrions gagner du temps de réalisation en
|
|
supprimant angular :-)
|
|
|
|
|
|
## [#](#mardi-26-mai-2015)Mardi 26 mai 2015
|
|
|
|
J'ai démarré la journée en pensant qu'il fallait que nous passions le projet
|
|
sur html/css/jquery, nodejs et mongodb, et je la termine en me disant, "ok tant
|
|
pis, mais du coup mettont tout dans angular. Ce sont les stagiaires qui insiste
|
|
pour garder Angular. Je ne vois toujours pas l'intérêt de ce truc, mais autant
|
|
s'en servir à fond pour savoir.
|
|
|
|
Le client final commence à chouiner. La fin du projet va être difficile avec
|
|
lui.
|
|
|
|
Je test une nouvelle configuration de vim: numérotation de lignes relative et
|
|
ligne courante souligné. Pas mal.
|
|
|
|
J'ai craqué le soir, j'ai fusioné les deux repertoire client et server du
|
|
projet. Ça m'ennuie d'avoir travaillé le soir pour eux, mais j'en avait
|
|
vraiment envie.
|
|
|
|
## [#](#mercredi-27-mai-2015)Mercredi 27 mai 2015
|
|
|
|
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... J'ai
|
|
vraiment le sentiment que nous courons après les points.
|
|
|
|
C'est d'ailleurs évoqué en retro, lors de la cérémonie de l'aprè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 l'on découpe plus les tickets... Je fais
|
|
l'innocent en demandant pourquoi au stagiaire (je ne comprenais vraiment pas ce
|
|
qu'il voulais faire pendant la cérémonie). Après la cérémonie, il m'a expliqué.
|
|
La célérité représente une sorte de ticket possible par jour (et par
|
|
personne... ), et le *standard* ici c'est de finir un ticket tout les jours.
|
|
C'est donc interdit d'avoir un ticket à 3 points si la célérité est de 3 ou
|
|
moins.
|
|
|
|
Tout ça pour faire du code pour un client... Je ne suis pas sur que ces
|
|
*standard* aide vraiment à faire fonctionner les équipes. Mon intuition c'est
|
|
que c'est utilisé pour savoir comment l'équipe avance en cours de sprint. **Ça
|
|
sent le contrôle à fond**. Dommage pour l'efficacité.
|
|
|
|
J'ai fait le taf du scrum master (sans le vouloir) pendant la cérémonie: j'ai
|
|
demander au client de bloquer une demi journée toutes les semaines, histoire
|
|
qu'il soit dispo toujours à cette date.
|
|
|
|
C'est à 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 qu'ils ne font rien si ce n'est pas
|
|
facturé (le principe des boite de services qui essaient d'être rentable sur
|
|
chaque minutes...).
|
|
|
|
## [#](#vendredi-29-mai-2015)Vendredi 29 mai 2015
|
|
|
|
Nous avons encore fait le lapin blanc... Nous sommes en retard. Bruno, le scrum
|
|
master n'est pas là, alors quand nous faisons le standup, Antoine (le
|
|
commercial, scrum master sur d'autre projet normalement) viens faire un passage
|
|
en mode "mais pourquoi"...
|
|
|
|
Thibaut à essayé de mettre en place des outils de specs executable ET travisCI.
|
|
Travis fait tourné les tests unitaires que j'ai é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. J'espère qu'il à réussi à faire
|
|
quelque chose dans l'après midi.
|
|
|
|
France à fait des essais de librairie pour faire du PDF. Mais elle essaie d'en
|
|
faire trop peut-être. J'apprend que l'équipe à décidé hier (jeudi) de dire que
|
|
ce ticket de "recherche" devait avoir un livrable dans l'application. *Je ne
|
|
suis pas sur de bien comprendre ce que cette boite entend par ticket de
|
|
recherche du coup ?*. Alors elle aussi est en *retard*.
|
|
|
|
De mon coté, je démarre avec Ansible. C'est amusant et pas trop compliqué. De
|
|
la configuration yaml. Dommage que ça ne soit pas du code ? **Je me demande
|
|
comment faire du TDD sur ces sujets, comment automatiser les vérifications que
|
|
je fait manuellement**, Il faudra que j'en parle avec la super équipe qui a mis
|
|
ça en place chez Mourinex ! :-D
|
|
|
|
Je commence aussi à modifier le script de déployement pour livrer l'application
|
|
sur le serveur de prod. Ça me permet de voir qu'il manque git. Je finirais
|
|
mardi.
|
|
|
|
## [#](#mardi-2-juin-2015)Mardi 2 juin 2015
|
|
|
|
Aujourd'hui, nous sommes encore en retard... Apparement France n'est pas en
|
|
forme. J'ai appris que ça mère viens d'arriver de Chine. Cause-Effet ?
|
|
Peut-être. Du coup elle dit que c'est elle qui est en retard. *Esprit d'équipe
|
|
bizarre ici par rapport à ce genre de sujet*.
|
|
|
|
Je continue sur Ansible et Capistrano. Un peu galère d'avoir la prod et la
|
|
préprod sur le même serveur. *C'est là que je pense très fort à des container*.
|
|
Mais au final je m'en 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.
|
|
C'est un peu galère au dernier moment. Je finirais demain matin. Tant pis pour
|
|
l'upload de photo qui ne fonctionnera surement pas.
|
|
|
|
Quelques questions d'archi avec Tibaut. Il me parle ce qui pour lui est normal:
|
|
créer une table avec l'id (mais rien d'autre) 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.
|
|
|
|
Journée un peu rude (des échecs sur la mise en production), mais globalement
|
|
tout semble rouler un peu mieux...
|
|
|
|
## [#](#mercredi-3-juin-2015)Mercredi 3 juin 2015
|
|
|
|
Ce matin, je fini de réparer le ansible/capistrano. Je regrette d'avoir 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.
|
|
|
|
France n'est toujours pas dedans. Mais elle me signale un soucis quand elle
|
|
essaie de déployer. Nous regardons. Effectivement, y'a une truc qui coince avec
|
|
Forever (l'outil nodejs qui s'occupe du monitoring du process node).
|
|
|
|
Thibaut est toujours empétré dans les test fonctionnel. Apparement, quand c'est
|
|
pas protractor qui merde, c'est travis. Il faut que je trouve une strategie
|
|
pour mettre plue de test unitaire. Ça m'aidera à avoir un peu plus confiance
|
|
dans notre code, et ça me permettra de relativiser un peu plus le manque de
|
|
tests fonctionnel.
|
|
|
|
Cette après midi, cérémonie. Le SM est speed. Il a un train pour Londres ce
|
|
soir. J'ai appris ce midi que lui aussi après le projet, il part à Londres.
|
|
**C'est sur, pas de rab pour moi, ou alors ça sera avec une autre équipe !**.
|
|
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.
|
|
|
|
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. J'en 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 d'autre truc. Je lui dit que ce n'est pas
|
|
grave, et que je préfère savoir que c'est ça plutôt qu'un truc avec l'équipe.
|
|
|
|
J'ai 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. *Peut-être à la
|
|
fin du projet, j'aurais trouvé une proposition à leurs faire :-p*.
|
|
|
|
|
|
## [#](#mardi-9-juin-2015)Mardi 9 juin 2015
|
|
|
|
Ce matin, après un update (git pull et revue/discussion), j'essaie de voir les
|
|
soucis de deploiment dont l'équipe m'a parlé hier par email. Et là, paf le
|
|
chien, je me retrouve coincé, impossible de déployer.
|
|
|
|
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 *forwarding agent*.
|
|
C'est ça qui coince. Je prend quelques renseignements, j'essaie de vérifier
|
|
étape par étape si un truc coince...
|
|
|
|
L'équipe ayant bien avancé, ils continuent sur leur lancé, moi j'essaie de me
|
|
dépatouiller.
|
|
|
|
Je binome un peu avec eux. Ils ont du mal à apréhender la notion de callback
|
|
JS. Idem pour les problématique de SQL.
|
|
|
|
Antoine est venu mettre un coup de *pression*: _Vous n'avez pas encore fait le
|
|
standup, il faut le faire à heure fixe_. Nous attendions Bruno, notre scrum
|
|
master. Mais du coup, tant pis nous avons fait le daily sans lui.
|
|
|
|
L'après midi, finalement un autre archi me donne la solution, il fallait que je
|
|
re-donne ma clef privée à l'agent: `ssh-add .ssh/id_rsa`... Ça fonctionne.
|
|
|
|
J'en profite pour faire un peu de shell pour rendre le processus de deploiement
|
|
un peu plus robuste.
|
|
|
|
|
|
## [#](#mercredi-10-juin-2015)Mercredi 10 juin 2015
|
|
|
|
Ce matin, la cérémonie devait commencé à 8h. J'avais pris des disposition pour
|
|
pouvoir être là vers 8h30 au plus tard. Je suis arrivé à 8h15, le PO était en
|
|
retard.. (alors que c'est pour lui que nous avons fait ça très tôt).
|
|
|
|
Nous ne faisons pas vraiment de demo, mais plutôt la validation de tickets qui
|
|
traine. Il se trouve qu'un 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é qu'une affaire doit absoluement avoir un interlocuteur...
|
|
|
|
Ce raté est en partie du à nous qui n'avons pas rappelé au PO ces sujets, et à
|
|
lui qui est vraiment en mode: "ok, l'agilité, c'est j'écris mon cahier des
|
|
charges sur des petits tickets dans un outils en ligne, cool". Mais
|
|
l'application, dont il n'est pas et ne sera pas utilisateur apparement, n'est
|
|
toujours pas dans les mains d'un utilisateur... Il y aura d'autres surprises !
|
|
|
|
A la pause, il reçoit un coup de fil qui le met dans une drole d'humeur... A
|
|
son retour, il commence à s'impatienter, 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 d'aller trop
|
|
doucement...
|
|
|
|
J'essaie d'attirer 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).
|
|
|
|
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, m'en fait par le midi: "C'est un gros échec pour moi". Nous
|
|
discutons un peu sur les trucs possible qui pourrait rattraper le coup.
|
|
|
|
En même temps, Bruno et France vont partir à Londres à la fin du projet, ça se
|
|
ressent.
|
|
|
|
L'après midi, Thibaut est tout feu tout flamme, comme d'habitude, 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.
|
|
|
|
Ils ont rendez-vous au téléphone ce soir avec le PO pour essayer de finir le
|
|
planning. De mon coté, j'ai 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 d'intégrations, *paf*, j'en ai pété un. Je vais être en
|
|
retard au JSLDD, mais tant pis, j'essaie de corriger. Je n'y arrive pas, C'est
|
|
pas très simple, nous n'avons pas commecé sur de bonne base l'utilisation
|
|
d'angular, et les refactoring nécessaire sont parfois délicat. Le débugage
|
|
aussi ! Je pousse ma branche et laisse un message. J'espère qu'ils vont trouver
|
|
la solution demain.
|
|
|
|
|
|
## [#](#mardi-16-juin-2015)Mardi 16 juin 2015
|
|
|
|
Je me retrouve à réparer le build, mais pas suite à ce que j'avais 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, d'oublie de function et
|
|
autres bricole.
|
|
|
|
Pendant le daily, Benjamin est venu surveiller... Il me redemande (avec Bruno)
|
|
si je peux être en ligne (skipe/hangout) pendant les Daily. J'explique que
|
|
c'est compliqué de prendre du temps sur d'autres 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 ! :-)).
|
|
|
|
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 l'appli
|
|
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é, j'essaie de mettre en place des outils pour pouvoir bénéficier d'un
|
|
environnement de test propre, un environnement de dev et un de prod. Ça nous
|
|
permettrais d'au 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.
|
|
|
|
Après mon email _post-mortem_, 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 qu'il 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... **beurk**
|
|
|
|
Ce midi je suis allez manger avec 6 petits jeunes *développeurs* d'ici (c'est
|
|
Thibaut qui m'a emené avec ces copains). Et bien ils sont tous stagiaires. L'un
|
|
d'entre eux, arrivé hier, à fait une réflexion: "mais y'a que des stagiaires ?"
|
|
:-)
|
|
|
|
## [#](#mercredi-17-juin-2015) Mercredi 17 juin 2015
|
|
|
|
Ce matin c'est cérémonie chez le client. Une société qui controle des travaux,
|
|
avec des gros sous donc. Avenue Iéana... J'arrive 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 l'argent frais...
|
|
|
|
Le client se plaint des régressions, c'est vrai qu'il y en a pas mal. Hier en
|
|
refactorant nous avons cassé pas mal de truc... Il est content car il va s'en
|
|
servir pour négocier un tarif sûrement.
|
|
|
|
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. **On voit bien les priorités**.
|
|
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.
|
|
|
|
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 n'arrive pas à
|
|
faire comprendre mon point de vue à Thibaut. Je me rend compte que j'ai peu
|
|
d'argument. *Est-ce vraiment important d'ailleurs ?* Jonhatan évoque sur slack
|
|
que george est codé sans tests. Cette idée fait un bout de chemin durant
|
|
l'après midi, après que j'ai décidé d'arreter de convaincre Thibaut.
|
|
|
|
Antoine, le commercial de l'affaire, 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é, c'est 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 qu'Antoine 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. *Est-ce que je vieilli sur ces sujets ?*. Je me rend compte que le
|
|
TDD m'aide à 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.
|
|
|
|
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.
|
|
|
|
Bizarre de travailler dans une équipe de cette manière. Le plus bizarre et de
|
|
faire de la production pendant juste quelques jours...
|
|
|
|
|
|
## [#](#mardi-23-juin-2015)Mardi 23 juin 2015
|
|
|
|
Pas de courant chez le client aujourd'hui, je travail depuis la boutique.
|
|
|
|
Nous faisons le daily meeting sur Slack, comme hier matin, il n'y a pas Bruno
|
|
(hier je suis passé faire le daily seulement). C'est bizarre. En plus d'être
|
|
avec 2 stagiaires, je me retrouve sans un garant des pratiques du client. C'est
|
|
un coup à me faire faire tout changé :-p.
|
|
|
|
Nous sommes en retard d'aprè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 n'avons pas comptabilisé l'atelier chez le client dans la
|
|
vélocitée. *Je trouve tout ce système bien lourd à la longue, qu'est-ce que le
|
|
client réclame vraiment ? Est-ce que tout cela n'est pas pour servir un discour
|
|
commercial ?* J'aimerais bien debriefer avec Étienne sur l'échange que nous
|
|
avons eu avec Antoine à Agile France.
|
|
|
|
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 qu'en fait, Angular le gère déjà en glissant jusqu'au jour
|
|
qui conviens, dans l'exemple, 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. J'ajoute un footer dans le pdf, sans faire beaucoup de
|
|
refactoring.
|
|
|
|
Le client répond dans l'après midi que c'est ok de ne rien faire sur ce sujet,
|
|
mais il rappel qu'il ne faut pas pouvoir saisir une date futur... J'ai mal lu
|
|
le ticket ou bien ce n'était pas précisé ?
|
|
|
|
Thibaut a encore faire une remarque: " j'ai passé le sprint à faire des tests,
|
|
il faut que nous fassions des points maintenant " ...
|
|
|
|
A suivre demain.
|
|
|
|
## [#](#mercredi-24-juin-2015)Mercredi 24 juin 2015
|
|
|
|
Ce matin, je suis de mauvaise humeur. Une histoire de clefs introuvable, un
|
|
plombier qui devait venir à 8h qui n'est pas là à 8h45, du coup je pars quand
|
|
même, je suis en retard à la cérémonie...
|
|
|
|
Nous partons encore dans des histoires de forme, de standard, de points,
|
|
d'estimations. Je suis un peu fatigué et ça ne passe pas bien. Je crois que ça
|
|
se voit. Le client n'est pas très heureux non plus. Est-ce qu'il joue pour
|
|
négocier ?
|
|
|
|
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.
|
|
|
|
*Quel est l'objectif de ces standard ?* Je me demande si c'est 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 n'est pas un pseudo process pour
|
|
rassurer le client et pouvoir vendre des prestation. En tout cas, je n'ai pas
|
|
l'impression que ça m'aide à avance moi.
|
|
|
|
Je dois annuler un déjeuner car la cérémonie dur trop longtemps. Tant pis, je
|
|
le verrais plus tard. C'est 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 ?
|
|
|
|
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).
|
|
C'est 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 l'optique de nettoyer un peu le code.
|
|
|
|
C'est 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 n'ai vraiment pas envie de prendre du temps
|
|
pour écrire des scénarios automatisé. Je trouve cela trop douloureux pour le
|
|
moment. J'aimerais arriver à un code dans lequel nous pourrons faire du TDD (et
|
|
donc ajouter des tests unitaires sur le code existant) facilement.
|
|
|
|
France avait parlé d'un gros noeud de spageti, je pensais que nous pourrions
|
|
nettoyer, mais non, c'est effectivement un gros bordel.
|
|
|
|
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.
|
|
|
|
J'ai chopé Benjamin vite fait pour voir les histoires de dispo. Pas eu le temps
|
|
d'aller chercher Étienne. Apparement, le client actuel souhaite ajouter 3
|
|
sprint début aout que je vais faire en 2 semaines puisque j'ai une semaine
|
|
prise. Et par contre, il voulait me prendre sur un autre projet, pour 3
|
|
semaines, mais c'est sur mes congés... tant pis.
|
|
|
|
Je suis bien fatigué, mais content du code produit avec France. Je ne la
|
|
reverrais pas tout de suite, elle part à Londres samedi. J'espère que le code
|
|
ira bien en prod et que j'arriverais à travailler avec Thibaut la semaine
|
|
prochaine.
|
|
|
|
## [#](#mardi-30-juin-2015)Mardi 30 juin 2015
|
|
|
|
Ce matin, après un point rapide avec Thibaut, je m'atèle à réparer le serveur
|
|
de staging (qui est aussi celui de prod). France, avant de partir pour
|
|
l'Angleterre à cassé un truc. Elle à voulu mettre nodejs à jour pour pouvoir
|
|
faire marché des promèses qu'elle à mis en place sur sont environnement... Mais
|
|
ne sachant comment faire elle a ajouté NVM... Une couche par dessus une
|
|
couche...
|
|
|
|
Je nettoie tout cela en supprimant toute l'installation, je modifie le script
|
|
ansible et zou, ça fonctionne ... presque. Le paquet Debian de node est à jour:
|
|
0.12.5, mais l'installation de NPM ne fonctionne pas. Je met un peu de temps à
|
|
découvrir qu'en fait, npm est inclu dans note à partir de la version 0.12. Ouf.
|
|
|
|
L'aprè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.
|
|
|
|
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 l'après midi chez Theodo.
|
|
|
|
Bruno, le SM, était absent tout le matin, et vraiment pas présent l'aprè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é, n'est pas très fluide.
|
|
|
|
Est-ce que d'autres sont comme Thibaut, pas très enchanté de la façon dont les
|
|
projets sont géré ici ? C'est possible.
|
|
|
|
J'ai croisé plusieurs fois Julien et Benjamin, ils ne m'ont 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.
|
|
|
|
## [#](#mercredi-1er-juillet-2015)Mercredi 1er juillet 2015
|
|
|
|
Ce matin, cérémonie chez le client. Thibaut à demandé à Antoine de venir. Il
|
|
est là, posé. C'est 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.
|
|
|
|
Encore plein d'échanges autour du la façon dont on travail plus que sur la
|
|
façon de mettre de la valeur dans l'application. 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:
|
|
|
|
* Pas de démo, c'est dommage
|
|
* grosse perte de temps pour les estimations (avec poker et tout le décorum)
|
|
* toute la communication (avec le PO) est électronique, ça manque de fluidité
|
|
* pourquoi pas du flux continue ? (c'est peut-être un peu biaisais, lié à mes
|
|
préférences ça)
|
|
* 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 d'un SM, avoir une personne produit...
|
|
* tous les clients sont différents, toutes les équipes sont différentes =>
|
|
pourquoi avoir des standard de fonctionnement valable pour tous ? y'a un
|
|
relan de command&control dans cette histoire
|
|
* le sentiment que parfois ils oublient que le faire un logiciel et un
|
|
processus de découverte
|
|
|
|
Je ne peux pas m'empécher d'en 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.
|
|
|
|
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). C'est assez
|
|
vrai. J'évoque le fait que je suis d'accord, 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.
|
|
J'aurais aimé que eux l'aborde, pour me donner le signal que c'était possible.
|
|
|
|
Bref. Etant donné que c'est le dernier jour pour moi, et pour Bruno, tout cela
|
|
me semble bien inutile. C'est bizarre aussi ce fait de ne pas créer une équipe
|
|
qui dure un peu.
|
|
|
|
L'aprè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à...
|
|
|
|
Je n'ai rien demandé à Benjamin ou Julien, que j'ai pourtant croisé plusieurs
|
|
fois, et eux non plus ne m'ont rien dit.
|
|
|
|
## [#](#lundi-27-juillet-2015)Lundi 27 juillet 2015
|
|
|
|
C'est la reprise. Le projet repart pour 3 sprints. Je retrouve Thibaut qui est
|
|
toujours Dev. S'ajoute Clément que j'ai déjà croisé, je crois qu'il a déjà un
|
|
ou deux projets dans les pattes (j'espère), et un autre Benjamin qui fera le
|
|
SM.
|
|
|
|
Vendredi dernier, Benjamin m'a appelé. Nous avons eu un échange sur le thème de
|
|
: « ton projet est le pire de chez Théodo, comment ça se fait ? » J'ai exposé
|
|
les points comme le départ en Angleterre de Bruno et France, le fait que
|
|
Thibaut cherche à *faire des points*... Nous verrons bien. Ce matin, Benjamin
|
|
(le SM) à remis un peu le couvert : *Comment ça se fait que vous n'avez pas de
|
|
définition du succès sur le projet ? Comment ça se fait que ce truc n'est pas
|
|
rempli, et que ça, sa ne fonctionne pas ...* Bref. Ambiance. Thibaut met ça sur
|
|
le dos de Bruno, je lui rappel que nous avons tous un peu merdé.
|
|
|
|
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 m'impliquer 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é.
|
|
|
|
Nous essayons ensuite de débuguer le Travis qui est rouge (et laissé rouge)
|
|
depuis bien longtemps... Je part avant de le voir vert. J'espère que demain ça
|
|
sera réglé...
|
|
|
|
## [#](#mardi-28-juillet-2015)Mardi 28 juillet 2015
|
|
|
|
Ce matin, pour ne pas changer, le PO/client, est arrivé en retard...
|
|
Heureusement, nous n'avons pas fait de rétrospective (démarrage de projet).
|
|
Décision sur la célérité: elle sera haute... Ah ! Cela permet d'avoir plus
|
|
d'amplitude pour estimer les tickets. C'est vraiment bizarre, mais bon. La
|
|
cérémonie se passe plutôt bien. J'ai l'impression que tous le monde était très
|
|
attentif au fait que ça se déroule correctement et dans les temps.
|
|
|
|
Choix de petits tickets pour l'aprè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.
|
|
|
|
En fin de journée j'attaque un refactoring histoire de supprimer quelques
|
|
duplication et d'aller un peu plus vers une archi où le nodejs sert d'API et le
|
|
client, avec angular contient beaucoup de logique métier.
|
|
|
|
|
|
## [#](#mercredi-29-juillet-2015)Mercredi 29 juillet 2015
|
|
|
|
J'attaque aujourd'hui un gros ticket. Gros parce qu'il touche des morceaux de
|
|
code pas très beau. L'idé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. J'entends pendant ce temps les deux autres en train de ce prendre la
|
|
tête sur l'ajout d'une librairie pour la gestion de l'autentification. Je n'ai
|
|
pas très envie de les aider.
|
|
|
|
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.
|
|
|
|
Gros manque de motivation aujourd'hui.
|
|
|
|
## [#](#vendredi-31-juillet-2015)Vendredi 31 juillet 2015
|
|
|
|
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...
|
|
|
|
Après quelques questions, je comprend finalement que c'est la fonctionnalité
|
|
qui permet de s'authentifier, que nous devions finir mercredi, qui ne
|
|
fonctionne pas sur la preprod alors qu'en local cela fonctionne. Nous partons
|
|
en daily meeting sur ces échanges. Le Po/client à déplacé des tickets de "à
|
|
valider" à "backlog" parce qu'il n'était apparement pas bon. Il a fait des
|
|
retours sur des sujets qui apparement n'ont pas grand chose à voir...
|
|
|
|
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 n'a rien à voir... Personnes
|
|
ne souhaite l'appeler pour en parler, je m'en charge donc. De manière factuel
|
|
nous abordons ces points et il crée deux tickets (il dit "acheter") qu'il place
|
|
dans le backlog, puis nous discutons du reste, et je lui explique pourquoi la
|
|
preprod est coincé pour le moment.
|
|
|
|
Ensuite, Clément et moi essayons de voir ce qui pose problème. Apparement c'est
|
|
le nginx qui bloque les cookies (ou une partie ?), mais Clément à l'impression
|
|
qu'il y a autre chose qui ne fonctionne pas. C'est vrai qu'en passant dans
|
|
certains écrans, il y a "une déconnexion", c'est à dire que nous sommes
|
|
redirigé vers la page de login. Je lui dit de réparer d'abord la partie nginx
|
|
et nous verrons ensuite, mais non, il s'obstine. 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 l'historique. Je
|
|
pars, c'est l'heure.
|
|
|
|
J'ai 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 ! :-)
|
|
|
|
|
|
## [#](#lundi-10-août-2015)Lundi 10 août 2015
|
|
|
|
Ce matin, en arrivant, j'apprend que la préprod est encore en vrac. Apparement
|
|
un truc aléatoire lors de la génération de certains documents...
|
|
|
|
J'ai passé un bon bout de journée dessus pour au final virer les promesses
|
|
qu'ils avaient décidé d'utiliser 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 j'ai laissé malgré moi des boulettes
|
|
dans le code.
|
|
|
|
Quelques échanges technique avec Clément surtout, Thibaut c'est 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 j'espère proche de 0).
|
|
|
|
Pas de SM de la journée... Enfin si, nous le voyons débarquer vers 17h30. Il
|
|
nous demande comment ça va et repart.
|
|
|
|
Benjamin à interpelé Étienne à notre retour du repas. Étienne est parti ensuite
|
|
en réunion. J'ai resenti comme une exclusion, mais j'avoue que ça me va bien.
|
|
J'étais content de ne pas être invité. J'ai vraiment le sentiment que c'est ma
|
|
dernière semaine ici et ça me va bien. C'est même peut-être ce qui va m'aider à
|
|
passer la semaine.
|
|
|
|
## [#](#mardi-11-août-2015)Mardi 11 août 2015
|
|
|
|
Je suis arrivé avant que les portes soient ouvertes chez mon client... Le
|
|
client final est en mode pas content: le produit n'est pas *fini*. 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.
|
|
|
|
Je reste assez silencieux: je n'ai pas participé la semaine dernière, et hier
|
|
j'ai juste reparé un soucis. Pas vraiment le sentiment d'avoir apporté une
|
|
influence sur ce sprint. Ça me va bien. Je laisse les autres dérouler leur
|
|
processus.
|
|
|
|
A la pause, le client final me prend à part pour me parler du projet, de la
|
|
deception qu'il a. Il évoque aussi le fait que l'équipe est meilleur maintenant
|
|
qu'au début. Je lui explique que c'est 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.
|
|
|
|
La cérémonie se déroule, la rétro passe presque inaperçu. J'apprend qu'il y
|
|
aura une cérémonie vendredi, en fin de journée, je n'y serais pas.
|
|
|
|
## [#](#mercredi-12-août-2015)Mercredi 12 août 2015
|
|
|
|
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 n'ai pas vraiment mis le nez dedans depuis le début.
|
|
|
|
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 d'un type
|
|
et un autre).
|
|
|
|
Derrière moi, Thibaut rale sur le client. C'est fatiguant. Je me demande si un
|
|
de mes soucis avec ce projet n'est 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 *coach* (je crois).
|
|
|
|
Le SM lache une petite reflexion sur le fait que *ses deux projets* ne
|
|
fonctionne pas bien (en dessous du standard sur le questionnaire client, le
|
|
standard c'est 8/10, nous avons 4/10).
|
|
|
|
Heureusement, demain c'est jeudi, et il ne me reste plus que vendredi matin.
|
|
|
|
Je n'ai pas fini mon nettoyage de pdf, je finirais vendredi matin, J'espère que
|
|
j'arriverais à tout mettre au propre et qu'il n'y aura pas d'autres soucis.
|
|
|
|
|
|
## [#](#et_apres)Et après
|
|
|
|
Le client n'a 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, j'ai été pointé comme étant le responsable du
|
|
fiasco de ce projet. Ça n'a pas été facile à entendre.
|
|
|
|
Ensuite, nous avons voulu reconstituer le fil de certains évènements. J'avais
|
|
malheureusement perdu mes mails durant l'été. Une belle leçon.
|
|
|
|
J'ai 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.
|
|
|
|
Cette histoire ma également confirmé qu'il y a plein d'interprétation possible
|
|
de l'agilité, et que même chez les personnes qui semblent proche, les écarts
|
|
peuvent être dur à vivre.
|
|
|