Ce que personne ne te dira sur le métier de développeur

Ce que personne ne te dira sur le métier de développeur

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.



décision


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.



métier de développeur


Ç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.

Qui me parle ?

jesuisundev
Je suis un dev. En ce moment je suis Backend Développeur / DevOps à Ubisoft. Je suis passionné du dev et j'écris comme je parle. Je continue à te parler quotidiennement sur mon Twitter. Tu peux m'insulter à cette e-mail ou le faire directement dans les commentaires juste en dessous. Y'a même une newsletter !

Commentaire(s)

  1. C’est tellement ma vie !
    J’ai juste eut la chance de quasi pas faire de merde au début, j’ai vite été sur un gros projet intéressant 🙂
    Sinon, il manque aussi les outils qui feraient gagner des heures et des heures que le client / le patron ne veut pas mettre en place “parceque ça marche comme ça”, pas de ci / cd par exemple a l’opposé de l’over engeneering 😅

  2. Oui, tout cela plus les situations merdiques à la noix où tu es sous-marin d’une agence en sous-marin. Résultat, dernier maillon de la chaine, tu ramasses aussi pour tous les autres. Par contre, ça sera toujours le dev qui met du temps – on lui a transmis y a 2mn, mais bon 🙂

    Ou le cas où le matin tu es support sous-marin N-1 et l’après-midi support sous-marin N-2. Le matin tu dis oui, et l’après-midi, tu dis non. A la même personne et/ou à la même demande, parce que “politique”. Ou les discussions à 3 par groupe de 2, ou ça se contredit entre client, agence et sous-marin.

    Un autre point pas facile à gérer : quand on te demande d’implémenter un truc, et que tu pointes les trous dans la spec (et encore, des fois, c’est dans le modèle même). Et là, le fantastique CdP fraichement arrivé et avec les dents longues voit ses idées géniales balayées par un pauvre dev qui montre par A+B que son modèle révolutionnaire de gestion de mon Q tombe complètement à plat face à la réalité de l’existant (dont il n’a pas connaissance).

    Pire, quand tu es sous-traitant, tu as le CdP et ton boss tout contents qui se félicitent de leur brillantituderie… et tu vas lever la main et dire “et dans ce cas ?”. Au choix, tu vas être soit l’emmerdeur soit le pénible. Le problème va être enterré… jusqu’à ce qu’il se déterre tout seul. En général, au pire moment.

  3. Bonjour,
    Ce qui m’a le plus étonné et qui m’étonne encore c’est la perte de bon sens.
    Je sais bien que les gens n’ont pas idée de ce que le développement peut faire mais :
    – J’ai donné un GO, vous avez mis en prod, l’utilisatrice principale va commencer ses 1ers tests –> Quoi ?
    – On avait dit un mois d’historique indexé, ça va si on passe à 12 ?
    – …
    Je suis souvent de faire des métaphores à base de ville, de docteur, de garagistes pour que connaissance technique ou pas on marche sur la tête

  4. Ah! ça me rassure tellement de lire ça, enfin pas la partie on pompe les infos des utilisateurs d’appli FB mais la partie : développer c’est 90% faire des recherches et de la réflexion. Je débute un BTS pour être dev et souvent j’ai la sensation que ce que j’apprend ne représente qu’une goutte d’eau dans un océan de connaissance sans fin ! Je passe mon temps à faire des recherches sur les technos qu’on utilise et au final j’ai pas l’impression de coder des masses.
    Enfin bref, sympas ton article 🙂

  5. Après plus de 12 ans de dev divers et variés (c++, Java, php et JS) j’ai appris quelques trucs qui évitent bien des problèmes :

    – Les boîtes qui te présente leur stack de ouf au détriment de la simplicité juste parce que “Google et Amazon l’utilisent” sont a fuir comme la peste.

    – Il faut se méfier des tendances , particulièrement dans le web. Perso je me penche sur une techno que si elle a quelques années derrière elle (hors demande client spécifique)

    – Les délais intenables c’est pas mon problème. T’as chiffrer sans me consulter avant ? T’assumes ta connerie c’est pas a moi de réparer.

    1. – Les délais intenables c’est pas mon problème. T’as chiffrer sans me consulter avant ? T’assumes ta connerie c’est pas a moi de réparer.

      C’est exactement ca ! Par contre, c’est plus facile a dire qu’a faire quand tu est un junior et que tu viens d’arriver.

      1. En plus de demander des couilles pour tenir tete aux gens dans cette situation… ce qui la encore n’est pas donné a tout le monde. Et le risque ici c’est de passé pour un emmerdeur.

    2. Je suis d’accord sur les deux premiers points : c’est ce qu’on appelle la Hype Driven Development

      Sur le troisième je suis d’accord en théorie mais dans la vraie vie ça se passe pas comme ça (à part si on a vraiment besoin de toi). Si t’es junior et facilement remplaçable, tu te fais juste dégager comme un mal propre si tu réponds souvent comme ça

  6. Ahahah j’adore cet article. Jolie crotte de nez dressée au milieu du tableau. Après je tiens à dire que l’annonce de Quentin m’a fait flipper ! Toutes les sociétés ne sont pas aussi avant-gardiste que ça. Y’a moyen de trouver des sociétés ou il n’y pas besoin d’en connaître autant même si c’est vrai, un dev doit se tenir à la page

  7. >>Organiser sa pensée
    Je m’étais demandé à moment pourquoi on trouvait bcp de trucs innommables dans du code source, une des raisons est qu’on ne peut pas réfléchir dans la vitesse, à moins d’avoir un QI élevé.
    Aborder le toyotisme, pardon l’Agile, ce serait bien aussi. Quant on me parle de cadence et de vélocité, je commence à m’inquiéter.
    A ce jour l’organisation du travail tend à rendre le métier de développeur à l’identique des ouvriers spécialisés sur une chaîne de fabrication.
    Un début de réflexion : http://www.seuil.com/ouvrage/la-chaine-invisible-jean-pierre-durand/9782021092165

    >>On ne t’a pas dit que ce métier c’est fouiller sur Google toute la journée ?
    Bien évidement tu le fais en dehors de ton temps de travail, car quand t’es cadencé faut bien produire quelque chose à la fin de la journée.

  8. Oh mince c’est presque tellement moi ! Sauf que je ne développe pas pour le web mais pour le print. A mon poste mes collègues me voit comme le magicien (je suis seul) qui résout toutes leurs merdes du quotidien et quand je rale qu’ils me polluent mon propre temps de production, ils sont surpris de ma réaction, me disent qu’ils me comprennent et… recommencent moins de 30s plus tard :3 funny story ?!

  9. Franchement, je n’ai RIEN compris à l’annonce de Quentin… Je ne sais même pas ce que sa boite fait, c’est trop compliqué tout ça, pas vraiment KISS.

  10. J’ai d’abord cru que l’annonce de Quentin était une blague… C’est quand j’ai vu que les commentaires étaient désactivés que j’ai commencé à douter.

  11. Hey full stack Bébé .
    Faut savoir s’imposer 😏
    C’est dur et amusant aussi fait savoir s’entourer de ceux qu’il nous faut comme équipe c’est l’essentiel .
    Et du CSS en masse 🧠🤪

  12. Un bonheur à lire cet article!! En formation développeur web…. Je commence à mettre en relation la cadence de la formation et celle du métier!!!! Mais on y prend un tel plaisir (enfin pour l’instant)!!! Au moins on sait à quoi s’attendre!!

  13. 1. En SSII tu es présenté comme expert rien que par ce tu connait le nom d’un produit.
    2. La MEP est pour hier alors que personne ne sait faire la différence entre ce qui est demandé et ce qui est utile ou nécessaire.
    3. Si tu part en vacance 2 semaines tu est obsolète depuis 20 ans en revenant
    4. En 40 ans de dev en télécom puis en gestion , j’ai du apprendre une quinzaine de langages. A l’aube de la retraite, je n’en maîtrise que 3 ou 4 et encore.
    😀
    Beaucoup de stress souvent
    La reconnaissance rarement.
    Nous sommes outilleurs .
    Nous utilisons des outils conçus par d’autres pour fabriquer des outils destinés à d’autres.
    Mélange de frustrations et de satisfactions.

  14. le monde du travail dans toute sa splendeur, je ne suis pas Dev mais electro-mecanicien.
    les deadlines on connais l’obsolescence de nos connaissances aussi, l’esclavage et la merde quand tu es junior, ramasser la merde des commerciaux et autres charlatans…
    Le soir tu as mal à la tête moi j’ai mal au dos, et la fin du mois mal au cul au moment de la paye… (je suis parti dans l’agriculteur Bio maintenant)
    j’ai toujours mal au dos mais je sais pourquoi pour qui et pour quel salaire.

  15. Alors, … si tu remplaces “développeur” par “développeur backend/fullstack/devops/autre connerie du genre” je suis d’accord. Sinon, ton article est totalement faux pour:
    * Les développeurs embarqués (C sur du ARM, la tendance on s’en torche).
    * Les développeurs Java (On peut pas dire que le java aie beaucoup évolué ces dernières années)
    * Etc….

    En gros, seuls les développeurs sur les technos web ou assimilées sont sujets à cette pression des “tendances” que tu décris et même si aujourd’hui ils sont nombreux, ils ne sont pas représentatifs de l’intégralité des développeurs.

    Pour finir, le côté “syndrome de l’imposteur” est très très très loin d’être spécifique au métier de développeur. En fait, c’est ce qui gangrène de façon générale le monde actuellement. Regarde les politiques.
    Dès l’instant ou tu sors d’une structure type startup, que tu sois secrétaire, développeur, chaudronnier ou sur une chaine d’assemblage de gode-michet, tu devras composer avec ce genre de profil “sous-merdique”. C’est pas un problème de développeur, c’est un problème sociétal.

    Tu veux vivre mieux ? Reconvertis toi sur des technos qui soient moins soumise à l’effet de mode: dev embarqué, dev C++, Java ou Cobol. Si tu sais pas gérer le côté très très mouvant de l’univers “web-centric”, alors tu te feras bouffer à y rester.

T'en penses quoi ?

Your email address will not be published. Required fields are marked *