En dehors du titre, le générique masculin est utilisé sans aucune discrimination et uniquement dans le but d'alléger le texte.

Le métier de développeur a beaucoup d’avantages. Mais crois-moi quand je te dis qu’on est loin de la promenade à Walt Disney. Avec le besoin exponentiel de développeur et du coup l’explosion des formations j’entends beaucoup de gens vendre le métier comme un séjour au Club Med. Alors, pourquoi pas mettre une crotte de nez au milieu du visage de cette réputation parfaite ? Aujourd’hui je vais te dire ce qu’on oublie de te préciser sur le métier de développeur.

Pas de repos pour les braves

Dans la plupart des métiers, tu apprends énormément au début et après tu affines ton savoir via ton expérience. Je te le dis tout de suite tu fais ça en tant que développeur autant allumer le gaz et fermer les fenêtres c’est pareil. Ce métier change en permanence, c’est pénible et la cadence est infernale. Car il y a un gros problème avec le métier de développeur. Personne ne t’a dit qu’il n’y a pas de règle absolue en termes de ce que tu dois apprendre. Il n’y a pas un langage à connaître ou un framework à maîtriser. Tout est tendance. Une tendance par définition est passagère. Ça fait de toi quelqu’un de cool et recherché par les recruteurs à un moment T. Et un énorme plouc le lendemain.

Tu nages dans un océan de savoir et si tu nages pas assez vite tu te fais bouffer par des requins. Alors oui effectivement tu peux ne rien apprendre et faire exactement la même chose au même endroit pendant 10 ans. Mais dans ces conditions, je peux te dire que tu n’es pas prêt pour le jour de l’entretien.

Un entretien avec Quentin

Salut! Je viens de voir ton CV et je vois que tu connais Javascript. C’est cool hein mais ici on fait du Go. Le projet a un besoin extrême de gestion concurrentielle. Bon bien évidemment tout est Dockerisé ça va sans dire. D’ailleurs en local on bosse avec Minikube dans une VM Vagrant, provisionnée avec Ansible évidemment. Après ça part sur une dizaine d’étapes CI-CD en continuous delivery sur GitLab, la base. En prod y’a un Terraform qui spawn l’infra et Helm coté applicatif qui spawn le HaProxy qui va gérer le Load Balancing sur un cluster Kubernetes via GCP, classique. Tu vas voir c’est cool on a un gros Istio qui gère les permissions via des Sidecard Proxy et une stack EFK pour monitorer tout ça. Hein ? Ha oui tout le monde est DevOps ici c’est obligatoire, y’a pas mal de SecOps aussi. Ça me fait penser qu’on a aussi du Legacy sur AWS. Donc si en plus tu connais le fonctionnement des VPC et de CloudFormation ça va vraiment peser dans la balance pour ton embauche.

Bon, je me moque comme un gros sale mais en vrai j’aime beaucoup l’annonce de Quentin. Quand j’ai vu cette vidéo, j’étais à fond, leur stack en jette et ça a l’air super intéressant ce qu’ils font dans leur boite. Mais si tu n’es pas prêt à te remettre en question tous les matins et apprendre quelque chose fréquemment, n’appelle pas Quentin. D’ailleurs, n’appelle personne, car être développeur la plupart du temps c’est travailler pour Quentin. Ça s’arrête jamais.

Demandes improbables

Beaucoup de gens qui gèrent les projets informatiques n’ont aucune connaissance en informatique. Ça arrive très souvent quand t’es dans une petite boite. La petite boite elle veut impressionner son client et ça à petit prix. Ils vont promettre un truc impossible au client et venir te voir après avec un grand smile. Personne ne t’a dit que tu allais devoir révolutionner internet pour hier à cause de Jean-Michel chef de projet. Pourtant ça arrive tout le temps. Et à part serrer les fesses et essayer de trouver un compromis difficile de se sortir de cette situation. Du coup tu quittes ta petite boite pour une grosse boîte. Et là une nouvelle surprise t’attend.

Cette surprise s’appelle l’over-engineering. Je te prends un exemple simple : tu dois rajouter un champ dans un formulaire. Ça a l’air simple, mais ça ne l’est pas. Car le formulaire il est dans un énorme portail en prod. Déjà il faut mettre à jour la base de données en mettant à jour le script de migration lancé au moment du build sur la CI au moment du docker build. Si tu ne maîtrises pas bash, docker et la CI-CD déjà t’es pas bien et tu transpires. Et t’as rien fait là encore ! Il reste à mettre à jour le model de données backend, la validation coté UI, ajouter des tests unitaires, des tests d’intégration, des tests fonctionnels, passer la code review, passer la QA, déployer sur tous les environnements pour enfin prier de pas te péter la gueule en prod. Ça t’a pris trois jours et t’as fait deux crises d’épilepsie.

Et quand t’es extérieur au métier ou que t’as jamais travaillé sur des projets de grande taille, c’est incompréhensible. De l’extérieur t’es juste un débile qui sait pas rajouter un champ dans un formulaire. Alors qu’en fait tu viens de passer sur 60 couches de tech pour faire ça. Personne ne t’a dit que tu allais gérer de la complexité extrême tout en passant pour un con. Imagine avec un problème plus compliqué que ça ? Tu crois que c’est pour faire joli qu’il y’a autant de spécialisations chez les dév ?

L’enfer c’est les autres

Beaucoup de développeurs se construisent un égo aussi gros que la tour Eiffel. Très rapidement, ça devient toxique avec tout le monde et ça rend ton boulot pénible. Allant jusqu’à réveiller chez certains le trop connu syndrome de l’imposteur. Ces gens sont une réalité et on ne t’a pas dit que t’allais travailler avec eux tous les jours. Ils sont là à cause du côté concurrentiel lié au métier et de tout ce qu’il faut en savoir pour être efficace. Mais ces gens, même si tu vas avoir envie de les découper lentement, ils ne seront pas ton principal problème.

Si tu n’es pas un énorme touriste, tu vas vouloir mener à bien tes projets. Et surtout tu vas vouloir les finir à temps. Tu te doutes bien que les deadlines ne sont pas toujours bien alignées avec la réalité du travail que tu dois effectuer pas vrai ? Hé bien ce qu’on ne t’a pas dit c’est que en fait les deadlines ne sont jamais alignées avec la montagne de boulot qui t’attend. C’est un running gag les deadlines dans ce métier. Mais ça fait plus rire personne.

Ça te fait plus rire parce que tu retrouves à faire des 50 – 60 h par semaine parce que “le client ne peut pas attendre”. Et c’est pas la première fois. Ni la dernière d’ailleurs. Certains parlent de fatalité dans le métier de développeur d’autres font carrément des tutos pour éviter le burnout. Bordel des tutos anti-burnout on est où ? En tout cas moi je sais que c’est dans cette situation que tu commences à arrêter d’utiliser tes mains pour coder.

Attente et réalité

Il y a déjà pas mal d’années, je suis arrivé frais comme un gardon à mon premier stage. J’étais au top. Dans ma tête je pensais que j’allais développer le nouveau Facebook. Sky is the limit je suis un hacker comme dans les films. Et là je me suis pris une énorme tarte dans la gueule.

– Ouais salut, donc toi tu vas faire que des jeux Facebook pour aspirer un maximum de données personnelles.

– Ha! OK. Mais du coup je fais des jeux c’est cool!

– Mais non ferme là, c’est une boite externe qui fait les jeux, t’es con ou quoi? Toi tu fais juste l’aspirateur de données personnelles. Et vas-y franchement on veut du gros, du sale, du poilu, les mails, les photos, les amis, les téléphones tu mets tout open-bar. Personne ne lit, ça clique OK, on y va franchement.

Autant te dire que je me suis barré assez vite de cet enfer et que cette boite n’apparaît pas sur mon CV. Et là je te vois avec ton regard hostile tu vas me dire que c’est normal au début de faire des boulots de merde. Certes, mais le problème c’est qu’après ça va durer un peu. Tu as le choix entre les applications de retraite les plus chiantes du monde que personne veut faire ou les sites vitrine pour des sirops copiés/collés à la chaîne. Et je te parle même pas du code legacy ! Beaucoup de monde ne fait que nettoyer la merde des autres pendant un moment. Tu vas pas travailler pour la NASA, tu vas nettoyer du caca. On ne t’a pas dit que les boulots intéressants sont quasiment toujours réservés aux développeurs expérimentés.

Enfin dans la tête de beaucoup de monde le métier de développeur ça ressemble à un espèce de hacker avec une capuche qui fait des trucs de fous. Un magicien des temps modernes qui fait de la magie noire à chaque fois qu’il touche le clavier. La réalité est tout autre.

Y’a pas de magie. Y’a énormément de réflexion en amont. Organiser sa pensée pour transformer un problème du monde réel en une solution informatique via un processus d’abstraction qui fait du sens. On ne t’a pas dit que tu passes plus de temps à réfléchir à une solution qu’à l’implémenter. Il te faut un niveau absurde de concentration. Il te faut maintenir cette concentration pendant des heures seul face à l’écran. Ensuite, c’est des heures passées à rechercher des codes d’erreurs sur Google et à lire des documentations interminables. On ne t’a pas dit que ce métier c’est fouiller sur Google toute la journée ? Avec le temps passé sur Stack Overflow et sur d’autres forums tu t’en rends rapidement compte.

Épilogue

Ça doit faire en moins cinq minutes que tu m’écoutes chialer. Alors le métier de développeur est le pire métier de la terre ? Je suis un malheureux hein ? Bien sûr que non. C’est super le métier développeur et y’a plein d’avantages. Et si tu penses devenir dev, je t’invite fortement à tenter l’aventure. Mais c’est loin d’être le paradis qu’on t’a survendu partout. Arrêtons de présenter ce métier comme la neuvième merveille du monde. Acceptons la réalité que parfois c’est tout moisi. Comme tous les boulots de la terre.