Bonjour,
Je suis actuellement développeur sur un projet agile. Mais quelque chose cloche. Je ne comprends pas si cela vient de moi ou si du projet. Toujours est-il que je n'arrive pas à étre motivé.
Je ne cherche évidemment pas de coupables mais seulement à être mieux dans mon travail.
Il y a plusieurs choses que je n'aime pas. Commençons par le Product Owner. C'est un monsieur fort sympathique à priori. Le problème, c'est que je ne comprends fichtrement rien à ce qu'il me raconte. Pour m'expliquer quelque chose, il se croit dans l'obligation d'utiliser un jargon informatique, comme si c'était le seul language que je puisse comprendre.
Par exemple, voici le genre de choses qu'il pourrait m'expliquer EN JARGON INFORMATIQUE :
Bon ben quand tu crée un enregistrement dans la table "TralalaItou", utilise la fonction "YOUKALDI", prends le resultat de la fonction et stocke dans la colonne SCHTROUMPF de la table "TuLasDansLeBaba". Ensuite fais un INSERT en SQL. Après chaque fois que tu clique sur le bouton "Machin Truc" de la page "Chose Chouette", appelle le script "Tirelipimpon" en affectant le paramètre "SurLeChiOuaOua" de la requête HTTP en method "GET". Dans le script "Tirelipimpon" récupère le paramètre "SurLeChiOuaOua" et va chercher l'enregistrement SCHTROUMPF2 correspondant. Ensuite, recopie certaines colonnes dans l'enregistrement que tu as trouvé dans une zone mémoire (et là il me balance une liste de cinquante colonnes aux noms tous plus ésotériques les uns que les autres). Ensuite il faut que tu appelle la fonction "YOUKALDA" qui se trouve dans le module "JeSaisPasQuoi". Par contre, je ne sais pas sur que la fonction s'appelle "YOUKALDA" ni même que le module s'appelle "JeSaisPasQuoi". Demande à Tartenpion, il doit savoir. C'est lui qui a fait le truc. Ah oui, où en étais-je ? Ah oui, appelle la fonction SCHTROUMPF3 et récupère le résultat de la fonction dans un entier. Ensuite, tu reprends tout les valeurs de la zone mémoire que je t'ai donné tout à l'heure. Tu réaffectes tout la table SCHTROUMPF et tu fais un INSERT. Etc. Etc. C'était clair ?
Et encore, là j'ai simplifié la version jargon informatique. Pourtant la même chose EN VERSION FRANCAISE donnerait à peu prés ceci :
"Un numéro d'authenfication d'un certificat de conformité n'est connu que lorsque celui-ci est validé. A la création, on lui attribue un numéro temporaire."
Il s'exprime comme un informaticien. Probablement parce que c'en est un.
Les users stories qu'il écrit dans le backlog sont de la même qualité. il fait des références à un système externe que lui seul connait. Nous travaillons sur une refonte d'un système existant. Donc parfois on a des stories du genre "Il faut faire exactement come sur l'ancien systeme". Merci pour ceux qui ne connaissent pas l'ancien système. J'ose même pas lui demander comment c'était sur l'ancien système car la réponse sera probablement du même acabit.
Parfois, les entités du système externe ne sont pas nommés comme sur notre système à nous. On a un décalage des représentations ce qui ne facilite pas la compréhension. Quand je travaille sur une user story, je ne comprends pas ce que je suis en train de faire, où je vais dans quelle étagère.
On continue ensuite avec l'équipe. J'ai rarement vu une équipe être aussi réfractaire aux tests automatisés. Je passe pour quelqu'un de bizarre parce que je suis le seul à écrire des tests. Dernièrement, ils se sont lancés dans un débat pour essayer de réduire les tests sur le serveur d'intégration continu parce qu'il est tout le temps orageux. Mais moi je trouve franchement débile. Suis-je vraiment bizarre ? Est-ce normal un projet agile sans aucun tests ?
Je trouve aussi que le reste de l'équipe n'a pas de forte capacité d'abstraction. Un projet agile est sujet à beaucoup de changement.
Ils n'écrivent pas de code souple et maintenable. Ils appliquent beaucoup d'anti-patterns, un peu comme s'ils codaient en procédural. Les exceptions ? Connait pas ! On préfère renvoyer des codes erreurs dans les fonctions. Ils ne savent même faire modéliser en objet. Je ne veux pas les dénigrer, j'aurai vraiment aimé apporter mon point de vue en Pair Programming. Mais malheureusement, on n'en fait pas !
Ils ne croient pas à la collectivité du code. Dans ce projet, chacun fait son truc dans son coin. Je n'ai pas l'assurance que le code que je produis puisse être repris en cas d'absence (et réciproquement). J'ai déjà cotoyé pas mal de développeur qui pondent du code sans se soucier qu'il soit maintenable par les autres ou pas. Moi je n'ai jamais pensé comme ça. Et pourtant c'est le cas de tous ces rigolos.
Pour je ne sais quelle raison, cette équipe ADORE les réunions qui durent des heures. Elles n'apportent jamais rien de concret, la discussion va dans tous les sens et je m'ennuie comme c'est pas possible. Le matin, on ne fait jamais de "Stand Up Meeting"
J'ai l'impression d'être aux antipodes avec ces énergumènes. Je reste poli avec eux comme avec n'importe quel collegue d'ailleurs. Mais qu'est ce qu'ils m'enervent !!! J'essaye de faire en sorte que ça n'handicape pas le projet mais c'est pas facile ! J'ai l'impression que je dois me mettre au diapason avec eux. Par exemple, j'en suis réduit à ne plus écrire de tests et je vis ça comme une régression.
Quand au Scrum Master, il est gentil mais il ne m'aide pas beaucoup et je le trouve plutôt jeune (jeune d'expérience agile bien sûr. J'ai déjà vu d'autres jeunes beaucoup plus expérimentés sur le sujet). Ce qui est marrant, c'est que tout le monde l'appelle "le Chef De Projet".
Un autre délire que j'ai pu constater (si c'en est un). Notre application a un coeur, c'est la partie la plus importante de toute l'application. Si j'ai bien compris, on dit que c'est là qu'il y a le plus de "valeur métier". Bizarrement, l'implémentation du coeur a débuté à partir de la 5ème (ou la 6ème) itération. Les premières itérations ont servis à créer une espèce de librairie censé répondre à tous les besoins de ce fameux coeur. Franchement cette partie m'a ennuyée à mourir. C'était tellement technique qu'on ne pouvait pas en faire la démo à la revue de sprint. N'aurait-il pas été plus judicieux de commencer directement par le coeur et d'incrémenter, adapter cette librairie au fil de l'eau ?
Très sérieusement, je dois me forcer pour aller travailler. Pourtant je crois aux vertus de l'agilité. Pourquoi je ne suis pas motivé ? Le problème vient-il de moi ? Suis-je trop exigeant ? Ou est-ce les sociétés qui ne savent pas encore l'appliquer correctement ?
Est-ce qu'on peut dire qu'un développeur soit fait pour l'agilité et un autre pour le cycle en V ? Serais-je fait pour le cycle en V ? Parce qu'en plus je deteste le cycle en V !
Partager