Notre profession gâche le potentiel de ses juniors. Vendus comme des ressources clé en main en sortie d’école, ils sont une main d’œuvre peu onéreuse et très malléable pour les employeurs, ESN en tête. A travers le mythe tenace du mois/homme, on exige d’eux la même productivité qu’un senior sur les mêmes tâches. Ce n’est ni rendre service aux juniors, ni rendre service à l’entreprise. A quoi servent donc les juniors ? Ce papier aux airs de plaidoirie en faveur de mes (anciens) étudiants tente d’y répondre.
Cet article est la suite de mon propos stratégique paru en juin 2020. Il peut cependant être lu indépendamment.
Est un junior tout professionnel qui, par manque d’expérience donc d’assurance, est incapable d’identifier ou de refuser les situations où les règles de l’art sont violées.
C’est une définition très large, incluant autant les développeurs inexpérimentés que les Expert Beginners, trouvant normales des situations invraisemblables parce qu’ils ont toujours travaillé ainsi. Elle est librement inspirée de la situation des apprentis en France sous l’Ancien Régime. Le jeune apprenti ne passait compagnon que lorsqu’il démontrait sa capacité à ne pas être un danger pour lui ou pour la profession. Il était cantonné aux menus travaux et aux projets d’entraînement tant que le maître ne le jugeait pas digne.
La situation est exactement la même avec les développeurs junior : ils n’ont pas l’expérience nécessaire pour être conscients du danger de mal faire. Là où leur situation est plus enviable que leurs collègues travaillant dans le monde des objets physiques, c’est la facilité d’édition, donc de rectification qu’offre le code. L’apprenti développeur peut donc être attelé à des tâches de production et cela ne pose aucun problème, tant que l’on se rappelle qu’il n’est qu’un junior jusqu’à preuve du contraire.
Une profession d’enfants
Hélas, de nombreuses entreprises, le plus souvent par ignorance, traitent les junior comme s’ils n’en étaient pas. Le junior est souvent un bon programmeur, mais un développeur en devenir. A court-terme, ses résultats font illusion. Ce n’est qu’à moyen terme, sur des paramètres de qualité comme la maintenabilité, la reprenabilité et la complexité accidentelle du code, que le junior fera défaut.
Dans toute autre industrie, le manager bien informé aurait remarqué le problème de qualité et remonté à sa source, fut-elle le travail tombé dans l’oubli d’un travailleur trop vert à l’époque. Pas dans le développement, car l’attente d’un manager envers les développeurs n’est pas la qualité, devenue un Dahu, plus souvent mentionné que rencontré, mais simplement de garder la tête hors de l’eau une itération de plus. Le développeur a remplacé le garagiste dans l’imagerie populaire.
Pire, les développeurs sont souvent aussi résignés que leurs responsables. La plupart n’ont jamais vu un projet qualitatif, n’ont même jamais entendu parler d’un développeur heureux au travail. Trop se sont résignés au tripalium, à la médiocrité subie, en attendant de « passer chef de projet » ou de fuir la profession.
Nous sommes une profession d’enfants, dont l’irresponsabilité n’est pas une accusation mais une circonstance atténuante. S’il devait y avoir un banc des accusés, les junior seraient bien les seuls à ne pas y figurer, nous sommes collectivement coupables de ce gâchis.
- Les maîtres restent dans leur tour d’ivoire, ne voulant plus enseigner en école pour le prix qu’on leur propose, réservant leurs services pour quelques entreprises « qui ont déjà compris ».
- Les écoles font avec les intervenants qu’elles trouvent au prix de marché, largement déterminé par l’argent que les entreprises sont prêtes à mettre dans la formation de leurs alternants.
- Les entreprises n’y comprennent souvent rien et se disent, à raison, qu’il vaut mieux aller au moins cher et prendre des junior que l’on pourra modeler à son image et trier facilement, alors qu’une embauche de « Senior » reviendra dans la plupart des cas à embaucher un Expert Beginner aussi compétent qu’un junior, mais au double du prix.
Nous sommes coincés dans un cercle vicieux d’incompétence et d’irresponsabilité systémique, qu’aucun facteur seul ne résoudra. Et les seuls capables d’agir sont les développeurs conscients du problème.
De la charité envers les junior
Je ne me considère pas comme un maître. Je ne pense pas avoir atteint le niveau pour prétendre au titre. Cependant, je ne me considère plus comme un junior depuis plusieurs années. J’en suis sorti presque au hasard. Quelqu’un m’a montré la voie et je me suis débrouillé. Tout le monde n’a pas eu cette chance et les pertes sont immenses. Un vol de passereaux sur un tarmac d’aéroport.
Créer une culture de la qualité logicielle sera long. J’ai promis une suite à mon article de 2020 à ce sujet, la voici. Les maîtres doivent sortir de leurs tours d’ivoire. Travailler dans un atelier logiciel, entouré d’autres maîtres est une retraite nécessaire, car je ne sais que trop bien à quel point la prise en charge de débutants est un travail éreintant. Cependant trop de maîtres sont totalement coupés des juniors. Il n’y a pas de pont, même pas cette étincelle qui suffirait à quelques-uns pour démarrer un cheminement personnel hasardeux vers la qualité.
A quoi servent les juniors ? A rendre ce que nous avons reçu, bien évidemment. Nous avons souvent emprunté la voie de la qualité au hasard d’une rencontre. C’est largement inefficace mais c’est ainsi. Ce n’est pas demain que nous créerons les conditions d’une massification de la qualité (et ce sera le sujet d’un article ultérieur, dans quelques mois années). Le pragmatisme nous ordonne de continuer à transmettre ainsi faute de mieux. A cette fin j’identifie trois leviers, qui constituent la stratégie d’entrisme décrite dans l’article précédemment cité.
- Enseigner en école. Même si c’est souvent bien plus mal payé que les formations en entreprise. C’est un acte militant qui paie. La formation continue est une pêche à la ligne, là où le travail en école est une pêche au filet. Beaucoup d’étudiants entendent, peu écoutent, mais c’est déjà plus de monde que les seuls professionnels « qui ont compris ».
- Laisser une chance à ses prospects. Un client aux pratiques bancales, mais désireux d’apprendre de ses erreurs, est une opportunité sur tous les plans. Au plan humain, comme au plan économique. C’est une relation gagnant-gagnant, d’autant plus si cela permet de redonner le moral à une équipe déprimée. Pour cela la recherche académique est un outil remarquable. Ce ne sont pas les conseils d’un seul expert, c’est l’état de l’art !
- Accompagner les créateurs d’entreprise. C’est auprès des futurs CEO qu’il est possible d’injecter la qualité logicielle dans les cultures d’entreprise de demain. C’est hélas aussi le travail le moins rémunérateur, le futur CEO ayant rarement les moyens de payer un expert. Les plus habiles verront cette démarche comme un investissement. Formez les décideurs dès l’incubateur, ils feront probablement appel à vous après leur levée de fonds.
Ce n’est pas parce qu’un objectif requiert la mise en branle d’un édifice stratégique à long terme qu’il est impossible d’agir sur le court-terme. Les juniors sont un formidable levier. Il faudra environ 5 ans pour qu’un junior formé et motivé transmette à son tour. C’est court, donc contagieux, la crise du Covid montre le potentiel de tels phénomènes.
Cet article possède une suite, traitant des maîtres.
Enzo Sandré