paint-brush
Opinion impopulaire : il est plus difficile que jamais d'être un bon ingénieur logicielpar@jurajmalenica
8,605 lectures
8,605 lectures

Opinion impopulaire : il est plus difficile que jamais d'être un bon ingénieur logiciel

par Juraj Malenica5m2023/10/15
Read on Terminal Reader

Trop long; Pour lire

Survivre à la voie rapide de la technologie : une histoire d'ingénieurs, de battage médiatique et de concentration sur ce qui compte vraiment dans un monde en évolution
featured image - Opinion impopulaire : il est plus difficile que jamais d'être un bon ingénieur logiciel
Juraj Malenica HackerNoon profile picture
0-item

Travailler dans un environnement de startup pendant près d'une décennie m'a donné un accès privilégié à une culture rapide d'innovation, d'exploration et d'approche rapide de l'échec. J'ai suivi l'échelle de progression standard : stagiaire, junior, intermédiaire, senior, et j'ai finalement évolué vers la filière de gestion de l'ingénierie . Au fil du temps, de nombreuses personnes avec qui j’ai grandi ont ensuite travaillé dans d’autres entreprises, devenant ainsi des contributeurs très respectés. Il serait juste de dire que ce sont de bons ingénieurs.


En repensant au parcours de mes pairs, des mentorés et du mien, il semble plus difficile que jamais d'être un bon ingénieur.

Définir un bon ingénieur

Que signifie être ingénieur ? En tant qu'ingénieurs logiciels, nous sommes :

  • Responsable de traduire des problèmes complexes en solutions efficaces et évolutives
  • Chargé d'analyser les besoins des utilisateurs, de concevoir l'architecture logicielle, d'écrire du code et de tester et déboguer les logiciels.
  • Devrait rester à l'écoute des tendances, rechercher de nouvelles opportunités commerciales et des moyens d'améliorer les produits existants.

Alors non, l’ingénierie n’est pas synonyme de programmation. Parfois, c'est la plus petite partie. Cela apparaît clairement à mesure que l’on acquiert plus d’expérience, comme le montre la figure ci-dessous.

Répartition du travail par rôle

Que signifie être un bon ingénieur ? En me basant sur de nombreux entretiens et en soutenant les progrès de mes mentorés, j'ai remarqué que des personnes ayant différents niveaux d'expertise pouvaient donner des réponses différentes.


Quelqu'un qui débute pourrait penser que c'est le nombre de langages et de frameworks qu'un développeur connaît. Un ingénieur plus expérimenté ne se souciera peut-être même pas du langage qu'il utilise, mais mettra plutôt l'accent sur la qualité du code, en adhérant à tous les principes de codage et en effectuant un contrôle qualité tout en évoluant rapidement.


Les ingénieurs hautement expérimentés accordent une grande importance à la création de valeur. Parfois, nous écrivons rapidement du code jetable qui enfreint toutes les règles pour prouver une hypothèse ; parfois, nous passons des jours à écrire quelques lignes de code critique. Mais la plupart du temps, nous prenons des décisions architecturales, discutons de problèmes critiques, améliorons les processus, etc. Pourquoi ? Parce que souvent, c’est cela qui apporte le plus de valeur.


Bien qu’il y ait toujours des exceptions à la règle, on peut dire qu’un bon ingénieur est celui qui concentre efficacement ses efforts pour apporter le maximum de valeur dans l’atteinte d’un objectif.

Marchés en croissance et concurrence

Le marché de la technologie est en constante évolution. Nous avons tous connu d’énormes succès au fil des ans, de WhatsApp à Uber, Airbnb et TikTok. Même s’il s’agit peut-être d’exceptions, de tels exemples constituent souvent l’étoile du Nord pour les gens – un objectif vers lequel ils devraient s’efforcer. Cette façon de penser exerce une pression supplémentaire sur les ingénieurs. Ils ressentent du stress de l’intérieur, pensant qu’ils font quelque chose de mal, et de l’extérieur, lorsque les gens comparent leur entreprise à de nombreux concurrents.

Capitalisation boursière totale de la technologie

Pour réussir dans un tel environnement, les entreprises devaient « agir vite et casser les choses », comme le dit la célèbre devise de Facebook. Aujourd’hui, cela est plus évident que jamais : presque toutes les entreprises sont en train de devenir une « entreprise d’IA ». Tout le monde intègre ChatGPT, souvent sans véritable raison, sans stratégie sur la manière dont cela apportera de la valeur.


En nous éloignant du principe de base – comment pouvons-nous apporter plus de valeur à nos clients – et en nous efforçant de battre la concurrence sur le train à la mode, nous amenons les ingénieurs à créer des fonctionnalités vouées à l'échec.

Le monde est un endroit déroutant.

Que doit faire un passionné comme moi pour devenir un meilleur ingénieur ? Outre le choix évident de perfectionner les compétences en codage en améliorant la pureté du code et les philosophies d’architecture, de nombreuses tentations se cachent aujourd’hui. Apprendre TypeScript et ce dernier framework qui change tout, plonger dans le monde de la blockchain et de la cryptographie, expérimenter une myriade de produits d'IA… Les options sont infinies.

Toutes les bibliothèques javascript

Pour être honnête, après tant d'années dans l'industrie, je me sentais toujours menacé par la nouvelle vague de changement apportée par ChatGPT, GitHub Copilot et d'autres technologies émergentes. Mon cerveau a commencé à imaginer des scénarios dans lesquels j'étais déconnecté de tant de choses. Est-ce que je me concentre sur les bonnes choses pour apporter de la valeur ? Est-ce que j’utilise mon potentiel maximum ?


Après un certain temps, il est devenu clair que nous étions dans un état de battage médiatique. Cela aussi passera, ne laissant que les sociétés d’IA qui créent de la valeur à long terme. Le nombre d’entreprises d’IA a doublé au cours des cinq dernières années aux États-Unis, de nombreuses startups se contentant d’ajouter une fonctionnalité au nouveau GPT-3. Ils mourraient plus tard avec la sortie de ChatGPT ou GPT-4 , qui pourraient faire la même chose mais en mieux. Mais cela n’empêche pas l’armée de Twitter et d’autres plateformes de proclamer le nouvel ordre mondial.


Même après tant d’années de travail dans la technologie, je me suis laissé entraîner dans le battage médiatique. Erreur de débutant!


Les langages de programmation et les versions constantes de nouveaux frameworks ajoutent également à la confusion. Tailwind, TypeScript, Haskell et Rust sont tous excellents ; ils ont chacun un angle qui leur donne un avantage. Cependant, les gens confondent souvent leur apprentissage avec quelque chose qui leur donnera un avantage. Ce ne sera pas le cas, ou du moins, cela ne devrait pas. Ce ne sont que des outils agréables à connaître mais qui ne peuvent remplacer l’expérience. C'est pourquoi nous n'inscrivons jamais d'exigences linguistiques/cadres dans nos descriptions de poste. Je serais idiot de manquer un ingénieur talentueux parce qu'il ne connaît pas TypeScript, l'ingénierie rapide ou les microservices.


Mon conseil est le suivant : ne vous laissez pas entraîner par les nouvelles tendances et le battage médiatique au point de perdre votre concentration sur la création de valeur.

Un rythme rapide et des attentes élevées

Lorsque l’on cherche de nouveaux défis, il peut être difficile de rechercher un stress positif tout en évitant le stress négatif. Le stress positif est celui dans lequel nous percevons une situation stressante comme une opportunité menant à un bon résultat, tandis que le stress négatif est celui qui peut avoir des effets néfastes sur la santé physique et mentale, comme le montre l'image ci-dessous. Fournir continuellement des résultats dans des délais serrés est stressant, et la création de fonctionnalités pour de mauvaises raisons penche vers ces dernières.

Stress positif vs stress négatif

En tant que mentor et travailleur acharné, j'ai vu le stress conduire à l'épuisement professionnel. Sans exception, le fait de faire subir à quelqu'un un épuisement professionnel entraîne moins de résultats que de réduire la charge de travail, de prendre une pause et d'optimiser sur le long terme. C'est pourquoi nous essayons toujours de rendre les signaux d'alarme aussi simples que possible, avec des mises à jour périodiques de l'équipe, des tête-à-tête et une culture stimulante.


Pourtant, les choses vont mal tourner. Lorsqu’ils le font, nous réduisons la portée, impliquons des personnes qui peuvent nous aider ou communiquons avec nos clients pour reporter un lancement.


La pression est plus forte que jamais, venant de l’intérieur comme de l’extérieur. Restez concentré et entourez-vous d’une équipe solidaire qui optimise à long terme.

Comment pouvons-nous faire mieux?

Nous avons tous des moments difficiles : nous nous sentons comme des ingénieurs, des mentors ou des collègues inadéquats. Les choses ne seront jamais parfaites ni faciles, et elles ne devraient pas le faire. Sans commettre d’erreurs et sans passer par des moments difficiles, on n’apprend pas. Mais je trouve que certaines choses peuvent accroître l’efficacité.

Niveaux d'influence

Individuellement, restez fidèle à ce qui est vraiment important. Les technologies vont et viennent, mais ce qui compte, c’est la valeur que vous apportez au monde. Il est difficile de simuler un travail acharné et une expérience.


En tant qu'entreprise, commencez par comprendre pourquoi lorsque vous prenez des décisions. C’est le meilleur moyen de proposer des fonctionnalités qui apporteront de la valeur. Assurez-vous également que les employés savent pourquoi . D’après mon expérience, ils prendront de meilleures décisions, donneront de précieux commentaires et seront plus heureux.


Culturellement, établissez des processus qui soutiendront les employés, en optimisant à long terme. Avec vos collègues, établissez une culture de confiance, de soutien et de bienveillance. De cette façon, vous tirerez tous le meilleur parti des uns et des autres.