Y a-t-il un avenir au-delà de l'écriture d'un bon code ?
Publié: 2022-03-10Faisons un exercice rapide. Supposons que vous travaillez professionnellement en tant que développeur depuis plus de cinq ans. Vous avez acquis une expérience pratique à travers des dizaines de projets et avez maintenu vos compétences à point en vous familiarisant avec de nouvelles techniques, outils et frameworks. Vous contribuez à différentes bibliothèques, refactorisez régulièrement le code que vous écrivez et échangez périodiquement des revues de code avec vos collègues.
Mais alors quelqu'un arrive et vous pose cette question que vous n'avez pas eu la chance de comprendre : Où vous voyez-vous, dans dix ans ?
Vous pourriez être inquiet à l'idée que si vous continuez sur la même voie, vous serez simplement un développeur plus âgé qui code un peu mieux et un peu plus vite. Certains développeurs sont satisfaits de cette idée et ont tout simplement hâte de continuer dans cette voie. Mais d'autres pourraient se rendre compte que ces montagnes russes de leçons et de croissance que vous avez traversées passent rapidement en mode régulateur de vitesse.
Une fois que vous sentez que vous maîtrisez parfaitement votre rôle de développeur, vous commencez à avoir envie d'en faire plus. Pas plus de la même chose, mais plutôt une croissance personnelle. Peut-être quelque chose de différent.
Au cours des dernières années de ma carrière, j'ai cherché des réponses. J'ai eu la chance de travailler avec (et d'apprendre de) de nombreux développeurs qui ont réussi à évoluer vers des rôles très influents dans lesquels ils tirent le meilleur parti de leur formation technique. Chacun d'eux a exploré une voie différente dans laquelle ils ont pu opérer une transition organique, basée sur un équilibre entre leurs compétences de base et leurs compétences complémentaires.
Où pouvons-nous aller d'ici ?
Il y a de nouvelles voies que nous pouvons explorer, qui peuvent nous forcer à grandir au-delà de nos zones de confort et en même temps bénéficier des compétences que nous avons travaillé si dur à cultiver.
En tant que développeurs, la plupart des articles que nous lisons, les livres de programmation et même les conseils de nos pairs sont tous conçus pour nous aider à nous concentrer uniquement sur l'écriture d'un meilleur code. A part ça, on ne nous apprend pas vraiment comment mieux travailler ou, pour le mettre dans une perspective plus philosophique, comment évoluer.
Nous n'avons généralement aucune idée de ce qui se passe après avoir atteint les objectifs que nous nous sommes fixés au début de notre carrière ou s'il y a même quelque chose que nous voulons faire autre que coder huit heures par jour, pour le reste de notre vie. Il est même courant de sous-estimer notre possible contribution à l'équipe si nous devions faire autre chose que d'écrire du code dans un avenir proche. Nous ne savons pas comment nous pouvons avoir un plus grand impact, même si notre perspective et nos compétences sont certainement nécessaires dans des postes plus influents.
Écoutez l'industrie
En 2008, quand j'ai commencé ma carrière en tant que développeur frontend, personne au monde n'avait entendu parler de Mark Zuckerberg, le jeune programmeur qui est devenu millionnaire en changeant la façon dont les gens communiquent. La génération Y a commencé à romancer l'idée de devenir riche légalement tout en portant un sweat à capuche. Du coup, presque toutes les personnes de ma génération ont voulu devenir développeur.
Aujourd'hui, plus d'une décennie plus tard, nous commençons à ressentir le véritable impact de ce boom de codeurs. Grâce à l'enquête Stack Overflow de cette année, nous avons appris que plus des deux tiers des répondants ont moins de dix ans d'expérience professionnelle en codage.
Nous pouvons clairement voir que les développeurs expérimentés dotés de compétences en leadership sont rares, de sorte que les entreprises doivent maintenant trouver des moyens créatifs de réserver leurs meilleurs talents de manière à pouvoir superviser des développeurs plus juniors et maintenir la qualité du travail. Cela crée une structure de leadership organique au sein des équipes en pleine croissance.
L'industrie continue de croître à un rythme rapide, tout comme nos rôles en tant que développeurs. Il est devenu plus courant de trouver des directeurs et des gestionnaires qui ont commencé comme programmeurs, et les entreprises ouvrent désormais davantage de postes de direction qui nécessitent une formation en développement.
Il est sûr de dire que, même si la programmation était considérée comme le prochain travail de col bleu, le rôle du développeur se développe dans des positions très influentes au sein des organisations. Mais il n'y a pas de feuille de route écrite ou de formule éprouvée pour nous guider tout au long de cette transition.
Quelles sont certaines de nos options ?
Il est arrivé un moment dans ma carrière où on m'a posé la question redoutée sur l'avenir que j'envisage pour moi-même. Je n'ai pas eu de réponse. En fait, cela a déclenché encore plus de questions qui ne m'avaient pas traversé l'esprit.
Je travaillais déjà comme frontend lead donc on m'avait donné de plus en plus de responsabilités en dehors de l'écriture de code, ce qui m'a fait penser à un futur possible dans lequel je ne programmerais probablement pas. La possibilité d'avoir plus d'impact sur différents projets était vraiment attrayante.
J'ai donc entrepris de rechercher quelles options pourraient être intéressantes pour mon avenir. J'ai regardé le chemin que certains collègues avaient emprunté pour passer avec succès du rôle de développeurs à des postes importants au sein de l'entreprise. La plupart des cas consistaient à faire de petits pas et à être au bon endroit au bon moment. Mais dans l'ensemble, ils ont tous fini par s'impliquer dans ces trois grands groupes d'activités :
- Management d'équipes et de projets
Diriger un groupe de personnes vers la grandeur semble excitant, mais ce n'est pas facile. En tant que développeurs chevronnés, il existe de nombreuses options de croissance qui impliquent soit la gestion d'un groupe de collègues développeurs en équipe, soit la gestion de projets au sein d'équipes multidisciplinaires. Bien qu'il s'agisse d'une option très gratifiante, elle nécessite de s'éloigner du clavier et d'apprendre à déléguer, ce qui peut être très délicat pour les développeurs habitués à résoudre personnellement tous leurs problèmes.
Passer à une position dans laquelle nous avons plus de contrôle sur le processus et l'équipe impliquée autour de celui-ci dirigera très probablement le besoin de sacrifier le contrôle que nous avons l'habitude d'avoir en matière de code. - Mentorat et développement des talents
Combien de patrons ont fantasmé sur le clonage de leurs meilleurs développeurs ? Dans le monde réel, il est peu probable que cela se produise, alors les patrons intelligents font la meilleure chose suivante : ils mettent en place des processus dans lesquels les codeurs les plus avertis peuvent activement transmettre leurs connaissances à leurs pairs.
Nous devons garder à l'esprit que même si certains développeurs le font naturellement dans leur quotidien, il est toujours plus efficace si les développeurs seniors se voient confier un rôle plus formel dans lequel ils peuvent consacrer régulièrement leur temps à travailler sur la croissance de leur équipes. Cela peut être fait avec des revues de code, des ateliers et des évaluations individuelles avec certains collègues. - Être dans le domaine de la technologie
Il est très courant d'entendre des développeurs se plaindre de la façon dont les projets ont été présentés ou définis lorsqu'ils ont été vendus aux clients. Et, dans la plupart des cas, il est généralement trop tard pour se plaindre.
D'après mon expérience, je me suis trouvé plus heureux de travailler sur des projets dans lesquels des développeurs avaient été impliqués lors de la vente. C'est toujours formidable d'avoir un allié à l'esprit logique qui signale des problèmes techniques potentiels dans une pièce où personne d'autre n'en avait la moindre idée.
Les rôles de consultants et de directeurs techniques sont cruciaux dans les grands projets numériques. L'implication des développeurs dans les ateliers clients et la rédaction de la documentation technique au début de tout projet peuvent potentiellement changer la donne pour le cycle de vie d'un projet.
Travailler sur un nouvel ensemble d'outils
Disons que nous voulons continuer à grandir et nous embarquer dans un avenir où nous voulons faire plus que simplement écrire du code. Une fois que nous avons une idée de l'endroit où nous nous dirigeons, il est très probable que nous ne soyons pas encore prêts pour le saut. Après tout, nous nous concentrons uniquement sur l'acquisition de compétences qui font de nous de meilleurs développeurs.
Une fois que nous réalisons que nous avons beaucoup à apprendre, nous devons commencer à travailler sur le bon ensemble de compétences. Cette fois, ce sera différent : nous n'apprendrons pas de nouveaux langages, frameworks ou bibliothèques. Nous allons devoir faire le plein de compétences qui n'auraient peut-être pas semblé importantes dans le passé, mais qui sont cruciales pour franchir les prochaines étapes dans ces territoires incertains.
la communication
Pour quiconque a un emploi dans n'importe quelle entreprise, ce serait une évidence. La communication est connue pour être au cœur de la collaboration au sein de tout type d'organisation. Malheureusement, les programmeurs ont reçu un laissez-passer gratuit dans ce domaine depuis de nombreuses années. La nécessité de trouver des personnes logiques, travailleuses et passionnées nous a permis de prospérer sans avoir besoin d'avoir de grandes compétences en communication et même d'être un groupe très socialement maladroit.
Si nous avons des aspirations à travailler avec des équipes et des clients différents, il est très clair que nous devrons travailler à améliorer tous les aspects de notre communication. Les réunions individuelles, les présentations et les e-mails importants devront tous être soigneusement peaufinés à partir de maintenant.
La possession
Avoir un état d'esprit logique a eu un impact sur la façon dont nous organisons notre travail. En tant que développeurs, nous avons généralement une idée en noir et blanc de l'endroit où notre travail commence et où il se termine. C'est positif quand cela nous permet d'avoir une compréhension claire du travail qui doit être fait par nous, mais nous empêche parfois de repousser nos limites et de travailler en dehors de nos zones de confort.
Le premier ordre du jour est de commencer à s'approprier tous les aspects du travail dans lequel nous sommes impliqués. En brouillant la ligne qui définit où se termine le travail d'un développeur, nous sommes en mesure d'assumer de nouvelles responsabilités et éventuellement de passer à différents rôles.
Leadership
Quelle que soit notre direction dans nos carrières, nous aurons besoin que nos coéquipiers nous fassent confiance. Nous aurons besoin d'eux pour savoir que nous allons dans la bonne direction, même si pour un moment ce n'est pas totalement clair.
Pour y parvenir, nous devrons être en mesure de prouver nos connaissances, nous devrons être confiants dans nos décisions et nous devrons certainement être capables de reconnaître nos erreurs et d'en tirer rapidement des leçons.
Ce n'est pas une tâche simple et ce n'est pas quelque chose que vous pourrez cocher sur une liste. Cela va nécessiter notre dévouement aussi longtemps que nous souhaitons continuer à grandir en dehors de la bulle du développement.
Se mettre au travail
Une fois que nous sommes sûrs de vouloir faire un bond dans notre carrière, nous devons commencer à avancer dans la bonne direction. La première étape serait d'explorer les options, de décider de la voie que vous souhaitez suivre et de voir comment cette voie s'aligne sur votre rôle actuel.
Votre entreprise offre-t-elle un espace dans lequel vous pourriez être un mentor ou un gestionnaire ? Pensez-vous qu'il y a une chance d'y arriver ou pensez-vous qu'il vous faudra poursuivre votre croissance ailleurs ? Ce ne sont là que quelques-unes des questions que vous devez vous poser et qui mèneront également à une conversation avec certains de vos coéquipiers et managers.
Faire un pas dans une nouvelle direction nécessitera de travailler dur, d'avoir l'esprit ouvert et d'être suffisamment résilient pour échouer et réessayer, autant de fois que nécessaire.