La plupart des développeurs de logiciels reconnaîtront le scénario que John Macpherson, développeur principal de la société écossaise de conception de sites Web Media Surgery, décrit comme l’un des vrais sommets de son travail : ce sentiment “lorsque vous testez la partie sur laquelle vous travaillez depuis des jours ou des heures— et ça marche ! On a l’impression d’être une superpuissance imparable qui peut tout faire. Un vrai sentiment d’euphorie. Ils reconnaîtront également le revers de la médaille : “Quand vous avez travaillé pendant des jours et des heures et qu’il n’a pas travailler. Vous vous sentez inutile et vous vous demandez pourquoi vous êtes employé. Vous sentez une fraude. Soit l’euphorie, soit le syndrome de l’imposteur. C’est un vieux travail étrange, mais agréable, pour la plupart.”

J’ai demandé aux développeurs, aux recruteurs et aux managers qui travaillent avec eux ce qu’ils aiment dans leur travail et ce qu’ils n’aiment pas. Les réponses variaient, mais il y avait pas mal de points communs. Parfois, comme avec Macpherson, il s’avère que les plaisirs et les peines du développement de logiciels sont les faces opposées d’une même médaille.

Résoudre des problèmes ou réinventer la roue

L’un des thèmes les plus fréquents était que les développeurs aiment la résolution de problèmes. La programmation informatique n’est qu’un moyen d’éliminer cette démangeaison.

Percy Grunwald, ingénieur logiciel full-stack et co-fondateur de l’hébergeur Web britannique Hosting Data, a résumé la situation : “Vous n’aimerez pas développer des logiciels si vous n’aimez pas résoudre les problèmes.” Jacob Mages-Haskins, ingénieur logiciel chez Contrast Security, a également comparé le développement logiciel à la résolution d’énigmes : « En tant que développeur, j’aime le défi d’implémenter de nouvelles fonctionnalités dans le code. C’est comme si j’avais une nouvelle énigme à résoudre chaque jour. ”

D’un autre côté, il peut être décourageant de consacrer de longues heures à un problème pour découvrir qu’une solution existe déjà. “Une chose que je n’aime pas, c’est le besoin constant de réinventer la roue”, a déclaré Zeeshan Arif, fondateur et PDG de la société de développement de logiciels Whizpool :

Cela arrive souvent en programmation car il y a tellement de façons de faire les choses, et chaque façon a ses propres compromis. Vous devez choisir les compromis qui en valent la peine pour votre application. Cela peut être frustrant de réaliser que ce que vous vouliez faire a déjà été fait par quelqu’un d’autre, mais c’est aussi excitant de découvrir qu’il existe une autre façon de faire les choses qui semble mieux correspondre à ce que vous essayez d’accomplir. .

Savoir que vous pourriez être en mesure de surpasser vos collègues développeurs peut être un stimulant vers la grandeur, a suggéré Grunwald. “Dans le développement de logiciels, il existe de nombreuses façons d’accomplir la même tâche”, a-t-il déclaré, “et c’est toujours un défi de trouver la meilleure. De tels défis sont très intéressants. Être créatif et tester différentes options est l’un des meilleurs choses sur le fait d’être ingénieur logiciel.”

Artisanat vs processus

La plupart des développeurs ont également exprimé un sentiment de satisfaction à l’égard du processus de création de logiciels. Comme l’a dit Arif de Whizpool, “J’aime pouvoir créer quelque chose que d’autres personnes peuvent utiliser. C’est comme être un artisan, mais avec du code.” Alexey Sutyagin, qui a 10 ans d’expérience en tant que développeur et directeur de l’ingénierie, a utilisé une métaphore encore plus puissante. “La partie la plus fructueuse d’être un développeur de logiciels est un sentiment de magie lorsque vous créez quelque chose de nouveau à partir de la pensée pure”, a-t-il déclaré. “Je voulais être un sorcier dans mon enfance, et les développeurs ressemblent presque à des magiciens du monde moderne.”

De la même manière qu’un artisan ressent une satisfaction particulière en regardant une table ou un meuble qu’il a construit, les développeurs peuvent tirer du bonheur de voir le produit final de leur travail. “Être capable de communiquer avec des machines ressemble à une superpuissance”, a déclaré Daniel Jianu, coach senior en ingénierie frontale chez Toptal, un réseau de développeurs indépendants, “Je l’ai utilisé à plusieurs reprises pour aider les patients dans le système de santé, pour surveiller la radioactivité niveaux dans la nature, et de gérer des tournois de poker avec des amis.”

“Pour moi, le sentiment le plus satisfaisant est de voir des gens utiliser votre logiciel dans le monde entier”, a déclaré Nate Berent-Spillson, vice-président de l’ingénierie chez Nexient, cabinet de conseil en développement de logiciels. “Je le mentionne rarement, mais quand j’entre dans un magasin qui exécute notre logiciel et que je vois la personne derrière le comptoir taper sur un écran que nous avons fait ou que je vois un chauffeur-livreur ou un vendeur utiliser une application mobile que nous avons écrite, c’est très satisfaisant .”

D’un autre côté, certains développeurs ont mentionné des aspects de leur travail qui sont déconnectés de leur sens de l’artisanat. Les réunions étaient un point sensible fréquent. “Être développeur de logiciels implique des réunions qui sont souvent improductives, répétitives et non pertinentes”, a déclaré Grunwald.

Rajeev Bera, fondateur du site de formation informatique aCompiler et développeur senior dans une société informatique, a confirmé : “la plupart du temps, ces réunions n’apportent aucune valeur ajoutée”. Il a poursuivi: “De temps en temps, je dois créer de la documentation, ce qui n’est pas une écriture créative, et pour être honnête, je n’aime pas trop ça.”

En général, plus d’environnements d’entreprise impliquent plus de processus et plus de frustrations pour les développeurs. “Travailler dans une entreprise peut parfois affecter l’autonomie de leur rôle”, a déclaré Kishan Patel, consultant exécutif au cabinet de recrutement fintech EC1 Partners. “La bureaucratie sans fin laisse au développeur moins de liberté pour s’exprimer dans son code ainsi que moins de flexibilité.” Berent-Spillson de Nexient a noté qu’il était frustré lorsque “je vois des équipes se débattre avec la politique plus qu’avec le code”.

Rafał Gatkowski, développeur senior de la société de développement Python STX Next, a trouvé l’équilibre : “Tous les processus entravent le développement, mais un certain niveau de processus est nécessaire pour créer un bon logiciel.” La clé dans son esprit était de ne pas laisser les processus devenir incontrôlables et prendre trop de temps pour les développeurs. “Transformer une réunion d’équipe quotidienne de 15 minutes en une réunion d’état interfonctionnelle d’une heure (ou plus) est l’exemple le plus courant” d’un processus défectueux, a-t-il déclaré.

La joie du travail d’équipe contre la mouture de la collaboration

Une grande partie du côté « processus » du travail survient dans le contexte du travail d’équipe et de la collaboration. Pour de nombreux développeurs à qui j’ai parlé, la camaraderie de travailler avec les autres était l’une des meilleures choses de leur travail. Par exemple, Caleb Chandzamarda Junior, développeur Python et ingénieur en cybersécurité, a déclaré que certaines de ses parties préférées de son travail étaient « penser et parler de conception et peser le pour et le contre de chacun pour trouver la bonne réponse, et travailler sur des produits sympas ». que je ne serais jamais capable de faire moi-même.”

“Au niveau de l’entreprise en particulier, la capacité de travailler de manière interfonctionnelle avec de nombreux types de professionnels différents peut être particulièrement enrichissante et intéressante pour le développement de carrière au jour le jour et à long terme”, a déclaré Joe Guarascio, directeur du coaching des talents et opérations talents chez Toptal. “Nos talents aiment les opportunités de travailler aux côtés, par exemple, des chefs de projet, des chefs de produit et des opérations commerciales.”

Cela dit, la réalité quotidienne de la collaboration peut consommer beaucoup d’énergie que la plupart des développeurs préféreraient consacrer au codage. “En tant que développeur d’entreprise, je déteste la façon dont les coûts de communication et de coordination augmentent si rapidement lorsque même quelques équipes seulement collaborent”, a déclaré Mages-Haskins de Contrast Security. “Comme le regretté Fred Brooks l’a souligné dans Le mois de l’homme mythiqueà mesure que le nombre de personnes impliquées dans un projet augmente, le nombre de voies de communication entre ces personnes explose – et cela a certainement été mon expérience dans tout projet non trivial. ” Pourtant, a-t-il ajouté, ” tout le monde est nécessaire pour s’assurer les fonctionnalités sont utiles et apportent de la valeur à nos clients.”

Dans le pire des cas, ce qui devrait être une collaboration se transforme plutôt en une relation plus conflictuelle entre collègues. “Dans les grandes entreprises, c’est un lieu commun de travailler dur toute l’année, mais à la fin, votre projet est fermé car sans importance, ou vous ne recevez pas de promotion parce que votre impact est trop faible”, a déclaré Sutyagin. “Vous devez donc sélectionner les projets avec soin. Si vous avez un concurrent dans votre équipe, vous devez le convaincre de choisir autre chose. On pourrait dire que c’est ainsi que le monde est. Mais ce n’est pas pour cela que nous devenons ingénieurs en logiciel.”

Équilibre travail-vie personnelle vs déséquilibre

Dites ce que vous voulez du développement logiciel, mais ce n’est pas comme travailler sur une chaîne de montage. “Le développement de logiciels se prête bien à la pige, ainsi qu’au travail à distance”, a déclaré Guarascio de Toptal. “La liberté de travailler sur une variété de projets, de n’importe où dans le monde, est très séduisante pour beaucoup de nos talents.”

Et au cours des dernières années, cette flexibilité n’a fait que s’étendre. “Nous avons suffisamment de liberté pour répartir notre temps pendant la journée comme nous le souhaitons”, a déclaré Tina Liu, ingénieur logiciel senior chez LeanTaaS, société d’analyse des soins de santé :

La pandémie de Covid-19, qui a changé la façon dont notre équipe et notre entreprise coopèrent et communiquent, nous a permis d’adopter le travail à distance. J’ai récemment eu un bébé en mai 2022 et je me sens chanceuse de pouvoir travailler à domicile. Je peux surveiller et soigner le bébé pendant les pauses ou entre les réunions. J’ai la possibilité de gagner du temps et de terminer mes tâches de développement pendant la nuit lorsque le bébé dort. La liberté que j’ai rend ma mère jalouse car elle n’avait pas ce genre de flexibilité dans sa carrière et ne pouvait pas me voir pendant la journée quand elle est au travail. Elle m’a dit ‘C’est vraiment vivre une vie.’

Mais même si ne pas avoir un horaire strict de 9 à 5 peut être agréable, cela peut aussi être un fardeau. “Les développeurs de logiciels ont une charge de travail importante. Ils jonglent avec une quantité écrasante de projets et effectuent continuellement plusieurs tâches à la fois, sautant d’une tâche à l’autre”, a déclaré Grunwald. “Ils sont tenus de faire des heures supplémentaires régulières et des heures de bureau non traditionnelles telles que les nuits, les week-ends et les jours fériés.” Burak Özdemir, fondateur de Character Calculator, a ajouté que, dans de nombreux cas, “nous nous retrouvons à travailler de longues heures devant un ordinateur, avec peu d’interaction humaine. Et nous pouvons avoir l’impression que notre travail n’est jamais vraiment terminé, car il y a toujours quelque chose nouveau à apprendre ou quelque chose qui peut être amélioré.”

Et bien que le développement de logiciels ne soit pas le travail le plus exigeant physiquement, il a ses problèmes, a noté Özdemir. “L’ergonomie peut également être un défi, car nous passons souvent nos journées penchés sur un clavier”, a-t-il déclaré.

“S’il y a autre chose que je déteste, c’est que je dois regarder l’ordinateur toute la journée et c’est dur pour les yeux, et les muscles du cou et du haut du dos, ce qui n’est vraiment pas évitable”, a déclaré Liu. . “Donc, je me rappelle souvent de faire une pause et de faire des exercices pour soulager mes yeux et relâcher les tensions musculaires.”

L’emploi de rêve technologique par rapport à l’emploi réel

En fin de compte, une grande partie de l’expérience que vous aurez en tant que développeur sera déterminée non pas par des généralités mais par les spécificités de l’endroit où vous atterrissez, et cela peut avoir un impact énorme sur votre bonheur et votre bien-être. “Toutes les organisations ou tous les départements ne sont pas créés égaux”, a déclaré Jared Ledbetter, PDG de la société de conception Web et de référencement Carbon Digital :

Si vous êtes dans un département composé uniquement de développeurs, il y a plus de chances que ce soit un endroit décent. Ce sont les non-développeurs occupant des postes de direction que je conteste. Ceux qui veulent que tout soit fait maintenant, mais qui ne veulent pas définir ou établir un processus. Si je recommande que nous utilisions un système de gestion de projet comme Jira ou Azure DevOps, ces gestionnaires qui ne comprennent pas le rejettent et pointent vers MS Word/Excel/PowerPoint. Ou, si je recommande que nous ayons besoin d’utiliser un processus comme agile/scrum, c’est accepté comme une bonne idée, mais vous êtes toujours obligé de travailler en mode cascade.

Chandzamarda a exprimé des frustrations similaires, notant qu’il est stressant d’avoir des collègues ou des managers “qui ne sont pas avant-gardistes – tout est question de maintenant et non de comment envisageons-nous ce produit à l’avenir. Nous devrions réfléchir aux mesures que nous pouvons prendre maintenant pour définir préparez-vous pour ce futur chemin.”

Pourtant, le développement de logiciels est une compétence très demandée et, comme l’a dit Gatkowski de STX Next, “l’avantage incontestable est le fait qu’il est très facile de trouver un emploi”. Les emplois dans la technologie paient également assez bien, comme l’a noté Patel d’EC1, “les récompenses financières et la progression de carrière du travail dans le développement de logiciels sont sans égal”. Avec un peu de temps et d’efforts, la plupart des développeurs peuvent trouver un travail qui leur permet de faire plus de ce qu’ils aiment et moins de ce qu’ils ne font pas.

Copyright © 2022 IDG Communications, Inc.

Leave a Reply