Article original : 9 Habits I Wish I Had as a Junior Developer

Par Tom Hombergs

Avez-vous déjà pris le temps de faire l'inventaire de vos habitudes ? Les habitudes font de nous ce que nous sommes.

Les bonnes habitudes vous aident à devenir la personne que vous voulez être. Les mauvaises habitudes vous transformeront lentement en quelqu'un que vous ne voulez pas être.

Après plus de 12 ans en tant que développeur logiciel, j'ai développé certaines habitudes dont je suis fier et d'autres dont je préférerais me débarrasser.

La plupart du temps, je n'étais pas conscient de mes habitudes, mais en regardant en arrière, il est assez clair pour moi quelles habitudes m'ont aidé à grandir et quelles habitudes m'ont freiné.

Cela m'a poussé à faire l'inventaire et à écrire sur les bonnes habitudes des développeurs pour peut-être vous inspirer à faire de même.

Si vous commencez en tant que développeur, jetez un coup d'œil aux habitudes décrites ci-dessous et demandez-vous si elles pourraient vous aider à devenir la personne que vous voulez être. Soyez conscient de vos habitudes et cultivez-les activement pour devenir un excellent développeur logiciel.

Proposez-vous pour des choses que vous ne connaissez pas

Au début de votre carrière, vous ne savez pas grand-chose. Vous arrivez dans ce nouveau projet et vous vous sentez comme un imposteur parce qu'ils vous paient alors que vous ne comprenez pas la moitié des acronymes, des technologies et des frameworks qu'ils mentionnent dans chaque réunion.

Et vous ne connaissez que vaguement l'autre moitié parce que vous les avez googelés.

Remplacez "Au début de votre carrière" par "Au début de tout nouveau projet", et vous avez un bon résumé d'une carrière en développement logiciel.

Chaque nouveau projet, nous recommencons. Il y a de nouvelles personnes à rencontrer, de nouvelles exigences à comprendre et de nouveaux frameworks à apprendre. À chaque fois.

C'est pourquoi il est important d'apprendre de nouvelles choses. Si vous continuez à faire ce que vous savez déjà, vous ne serez jamais confiant pour commencer un nouveau projet. Il y aura toujours la peur de l'inconnu.

Si vous prenez l'habitude de vous porter volontaire pour des tâches que vous ne connaissez pas, vous apprendrez constamment de nouvelles choses.

Si la construction doit être corrigée et que vous n'avez jamais travaillé avec le système de construction, lancez-vous ! Vous apprendrez la gestion des constructions.

S'il y a un bug dans le frontend JavaScript et que vous n'avez travaillé que sur le backend Java jusqu'à présent, corrigez-le ! Vous apprendrez de nouveaux idiomes JavaScript.

Faire des choses dont vous n'êtes pas sûr est un excellent moyen de grandir. Assurez-vous de gérer les attentes des autres envers vous, cependant. Ne prétendez pas être un as. Dites-leur que vous ne l'avez jamais fait auparavant, mais que vous aimeriez apprendre.

Demandez à travailler en binôme

Si vous êtes bloqué et que vous ne pouvez pas commencer une tâche parce que vous ne connaissez pas le contexte, demandez à quelqu'un ayant de l'expérience sur le sujet de travailler en binôme avec vous.

Une session de binômage est un excellent moyen de démarrer le travail sur une tâche. Discutez des exigences avec votre partenaire jusqu'à ce que vous compreniez ce qui est attendu. Ensuite, discutez de la solution.

Quel est le contexte ? Quels sont les bases de code que vous devez modifier ? Quelles sont les conventions explicites et implicites dans la base de code ?

Mais vous pouvez aller encore plus loin avec le binômage. Au lieu de simplement travailler en binôme pour démarrer une tâche, prévoyez plus de temps avec votre partenaire. Après avoir démarré le sujet, commencez à travailler dessus ensemble. Vous conduisez, votre partenaire donne des conseils, puis inversez les rôles.

De cette façon, vous apprendrez même comment votre partenaire pense et résout les problèmes. Vous ne pouvez qu'en profiter ! Même si ce n'est qu'un nouveau raccourci IDE que vous avez appris.

Une note sur le télétravail : en raison du télétravail, j'ai eu du mal avec des choses qui n'auraient pas posé de problème auparavant. J'ai hésité à demander à mes coéquipiers de travailler en binôme avec moi. Ce qui était un simple coup sur l'épaule d'un coéquipier au bureau est devenu une barrière élevée lorsque je travaillais à distance et communiquais avec un logiciel de visioconférence.

Si c'est un problème dans votre équipe, parlez-en avec vos coéquipiers (par exemple, lors d'une rétrospective) et ce sera beaucoup plus facile ensuite. Il s'avère que c'est juste une habitude à réapprendre.

Parlez de ce que vous faites (et de ce que vous ne faites pas)

Je ne me souviens plus combien de fois j'ai pris une tâche avec enthousiasme, pensant la terminer en une journée, pour me retrouver encore dessus une semaine plus tard.

Cela s'améliore avec l'expérience, mais je me surprends encore à faire des estimations trop optimistes. Il y a tout simplement trop de raisons de faire une estimation optimiste :

  • la pression pour livrer cette nouvelle fonctionnalité rapidement parce que la date limite approche,
  • la pression pour bien paraître parmi ses pairs,
  • les choses ne fonctionnent tout simplement pas comme je m'y attends (c'est celle qui me déroute le plus souvent, même avec des années d'expérience),
  • et bien d'autres encore...

Il y a de fortes chances que la plupart de vos estimations finissent par être trop optimistes. Que pouvez-vous faire à ce sujet ?

Vous pouvez gérer les attentes en cours de route.

Parlez continuellement de ce que vous faites et de ce qui vous retient. Par "continuellement", je ne veux pas dire que vous devez fournir une mise à jour de statut à toute l'équipe toutes les 15 minutes. Mais assurez-vous que les personnes concernées savent où vous en êtes au début ou à la fin de la journée, au moins.

Ainsi, si votre manager / équipe / chef de projet / responsable produit / partie prenante attend des résultats de votre part, donnez-leur une mise à jour rapide chaque jour : "Voici ce que j'ai fait. Voici la prochaine étape. Voici un problème auquel je suis confronté. Voici les options."

Cela permettra à tout le monde de connaître votre progression. Personne ne vous blâmera si vous rencontrez un obstacle, tant que vous les avez tenus informés.

Cela rendra les discussions du type "Pourquoi cela a-t-il pris autant de temps ?" obsolètes. En outre, la mise à jour de statut déclenchera des discussions qui peuvent aider à résoudre les problèmes.

Dans le meilleur des cas, cette mise à jour de statut est ritualisée dans l'équipe. Elle est communément appelée "daily standup" où chaque membre de l'équipe met rapidement à jour le reste de l'équipe sur sa progression et ses problèmes.

Mais même si vous avez un rituel quotidien comme celui-ci, prenez quelques minutes pour réfléchir si quelqu'un devrait être mis à jour qui ne fait pas partie du rituel quotidien. Devraient-ils être inclus ? Ou devraient-ils être mis à jour par un autre mécanisme ?

Prenez l'habitude de mettre régulièrement à jour les personnes qui s'intéressent aux résultats de votre travail.

Écrivez un blog

Je ne suis probablement pas la première personne que vous entendez dire cela, mais je vais le dire néanmoins : écrivez un blog !

Il n'a même pas besoin d'être public. Cela peut être quelques pages dans un wiki d'entreprise ou une collection de dépôts GitHub avec du code exemple et quelques lignes de texte explicatif.

Pourquoi ?

Parce qu'écrire avec l'intention d'enseigner aux autres (même si ce n'est que vous dans le futur) est un excellent moyen d'apprendre et de grandir.

Écrivez sur la façon dont vous avez résolu un problème épineux. Écrivez sur la façon d'utiliser ce nouveau framework brillant que vous avez toujours voulu essayer. Ou tenez un journal de ce que vous avez fait chaque semaine (cela vous aidera également avec l'habitude de "parler de ce que vous faites" parce que vous pourrez consulter ce que vous avez fait).

J'ai commencé un blog à plusieurs reprises. Il est difficile de garder la motivation au début, parce que personne ne lira vos articles de blog. Il est étrange d'écrire dans le vide. Alors j'ai arrêté.

Ensuite, j'ai commencé mon blog actuel il y a 3 ans, en écrivant sans audience pendant six mois. J'ai remarqué seulement alors que mon fichier robots.txt n'autorisait pas les moteurs de recherche à indexer mon blog !

Alors j'ai changé mon fichier robots.txt et les gens ont commencé à lire mes articles. Pas beaucoup, mais cela m'a donné la motivation de continuer. Alors, j'ai persévéré, j'ai amélioré mes compétences en écriture en cours de route, et j'ai fait grandir mon blog à plus de 200 000 vues par mois.

Tout cela parce que j'ai commencé à écrire sur les frameworks que je voulais apprendre et les problèmes que j'avais résolus afin que je puisse consulter mes articles à nouveau lorsque j'en avais besoin. Pas parce que je voulais créer une grande audience.

Bloguer est une corvée au début, mais peut devenir très gratifiant si vous persévérez. Si vous le faites avec l'intention d'apprendre et d'enseigner, vous n'apprendrez pas seulement beaucoup, mais les autres remarqueront éventuellement votre blog et cela ouvrira un monde entier d'opportunités.

Ayez un carnet et un système

Je suis récemment devenu un grand fan des carnets. Pas un carnet d'ordinateur, mais un vrai carnet en papier. Je l'emporte (et un stylo !) partout où je vais, afin de prendre des notes sur tout ce qui me semble important à tout moment.

Je prends des notes lorsque j'écoute une conférence, ou lorsque j'attends le bus, en pensant à ce que je pourrais préparer pour le dîner cette semaine.

J'utilise également le carnet pour tenir des listes : livres que je veux lire, frameworks que je veux essayer, fonctionnalités que je veux ajouter à mes projets secondaires. Plus important encore, je l'utilise pour prendre des notes en lisant des livres, car cela conserve les apprentissages du livre.

J'écris tout ce qui pèse sur mon esprit. Si je ne l'écris pas, cela occupera mon esprit, parfois au point que je deviens anxieux et que j'ai du mal à dormir.

La raison pour laquelle je deviens anxieux sans mon carnet est que je ne fais pas confiance à ma mémoire. Si vous avez une excellente mémoire et que vous pouvez vous rappeler tout ce à quoi vous avez pensé il y a une semaine, vous n'avez probablement pas besoin d'un carnet. Si votre mémoire est aussi fragmentée que la mienne, cependant, cela fera une énorme différence pour votre paix d'esprit.

Pour avoir confiance en votre carnet, vous avez besoin d'un système. Vous devez convaincre votre esprit que tout ce que vous mettez dans le carnet ne sera pas perdu.

Créez un index sur les premières pages du carnet pour rendre l'information récupérable. Ensuite, prenez l'habitude de réviser vos notes régulièrement et de les traiter.

Pour traiter les notes que je prends en lisant un livre, par exemple, je réviser les notes chaque fois que j'ai terminé le livre et j'écris une critique de livre sur mon blog. Presque personne ne lit ces critiques, mais le processus d'écriture de la critique fait que les choses que j'ai apprises restent beaucoup mieux.

Prenez des notes sur vos réussites

Avoir un carnet peut également aider avec la prochaine habitude : documenter vos réalisations.

Comme je l'ai dit, ma mémoire est fragmentée au mieux. Je peux généralement me rappeler ce que j'ai mangé hier midi, mais si je suis profondément concentré et que je dépense de l'énergie cérébrale sur un problème épineux, la demi-vie de ma mémoire diminue considérablement.

C'est pourquoi j'aime documenter mes réalisations à la fin de la journée. Ce ne sont généralement pas de grandes réalisations, mais de petites victoires - comme avoir vaincu un bug, ou avoir terminé l'une des nombreuses étapes vers l'ajout d'une nouvelle fonctionnalité au logiciel sur lequel je travaille. Je documente également les victoires personnelles, comme avoir respecté ma routine d'entraînement du matin.

Je crée simplement une liste de points chaque soir dans mon carnet, mais cela fonctionnera également avec un support numérique comme une feuille de calcul ou ce avec quoi vous êtes le plus à l'aise - tant que vous vous y tenez.

Avec le temps, les réalisations s'accumulent. Vous voudrez peut-être marquer celles qui sont les plus importantes pour vous afin de pouvoir les retrouver facilement plus tard.

Ensuite, lors d'une occasion comme une évaluation de performance, vous parcourez cette liste, trouvez les réalisations pertinentes pour cette occasion et les listez pour vous préparer. Les évaluations de performance se passent toujours mieux lorsque vous êtes préparé.

Avoir une liste de vos réalisations aide également dans les situations quotidiennes à parler de ce que vous avez fait (voir l'habitude "Parlez de ce que vous faites").

Ayez un créneau horaire pour les tâches importantes

À la fin de la journée, j'ai souvent l'impression de n'avoir rien accompli. Bien que cela aide de documenter vos victoires ou même simplement les choses que vous avez faites, vous devez toujours réellement faire ces choses.

Il arrive rapidement que vous passiez de réunion en réunion et soudainement la journée est terminée. Après une réunion, vous voulez continuer la tâche que vous avez commencée avant la réunion, mais juste au moment où vous êtes chaud, la réunion suivante commence. Et après cette réunion, vous devez recommencer, parce que vous avez perdu le contexte.

Le changement de contexte tue la productivité.

Si il y a une chose que j'ai apprise pour être productif, c'est d'avoir un créneau horaire dédié pour les choses que vous voulez accomplir. Si vous n'avez pas de créneau horaire pré-planifié pour une tâche, les chances que vous commenciez sont minces. Elle sera mangée par le travail quotidien ou d'autres travaux planifiés.

Il n'y a pas une seule façon de mettre en œuvre une habitude de gestion du temps, et, pour être honnête, je passe d'une méthode de productivité à une autre tous les quelques mois. Mais le cœur est toujours le même : bloquez du temps dans votre journée pour les choses que vous voulez accomplir le plus.

Je bloque une heure le matin, avant le travail, pour écrire des articles pour mon blog (ou pour d'autres blogs, comme celui-ci). La plupart des jours, je bloque aussi une heure le soir, lorsque les enfants sont couchés, pour travailler sur un projet secondaire que je pourrais avoir.

Actuellement, j'ai un tableau Trello avec une colonne pour chaque jour de la semaine où je mets les tâches que je veux faire le matin et le soir. Une fois par semaine, je mets à jour ce tableau avec les choses que je veux faire la semaine suivante, afin de ne pas gaspiller mon temps bloqué précieux à réfléchir à ce que je dois faire ensuite.

J'ai un tableau Trello très similaire pour mon travail de développeur logiciel. Chaque matin, je pense aux choses que je veux faire et je les mets dans la colonne du jour.

Je bloque également au moins 2 heures de temps de concentration dans mon calendrier chaque jour, afin que mes collègues ne tentent pas de planifier des réunions à ce moment-là. C'est à ce moment-là que je parcours ma liste de tâches.

Peu importe comment vous gérez votre temps, mais il est important de le faire et d'en faire une habitude. Sinon, vos journées seront mangées par des choses qui ne sont pas importantes pour vous.

Lorsque vous êtes bloqué, prenez une pause

En tant que développeurs logiciels, nous avons tendance à être souvent bloqués. Et boy, cela m'énerve quand je suis bloqué et que je ne vois pas de solution.

C'est un conseil si évident de prendre une pause lorsque vous êtes bloqué, mais c'est si difficile à faire. "Je suis si proche de résoudre le problème, je ne peux pas prendre une pause maintenant !"

De plus, prendre une pause maintenant signifierait que je devrais me réchauffer à nouveau au sujet plus tard. Pourquoi devrais-je délibérément changer de contexte lorsque le changement de contexte est la principale source de temps perdu ?

Lorsque vous êtes bloqué, vous ne pensez pas droit. Vous pensez à combien il est stupide d'être bloqué avec ce problème, à quelle facilité vos coéquipiers le résoudraient probablement, et pourquoi ils obtiennent toujours les tâches faciles. Mais vous ne pensez pas à la façon de résoudre le problème.

Prenez une pause et travaillez sur autre chose pendant un moment. Ou mieux encore, essayez à nouveau le lendemain. Prendre de la distance par rapport au problème vous permettra de voir des solutions que vous n'aviez pas vues auparavant.

Si vous n'avez pas essayé cela auparavant, vous ne croirez pas à quelle fréquence un problème est "simplement résolu" le lendemain matin. Principalement parce que vous voyez un chemin vers une solution que vous n'aviez pas vu auparavant.

Maintenant, il est facile de dire de prendre une pause, mais comment identifier que vous êtes actuellement en "mode bloqué" et ensuite vous persuader d'arrêter de travailler sur le problème pendant un moment ?

Je ne suis honnêtement pas très doué pour cela moi-même, parce que je veux généralement ME DÉBARRASSER DE CETTE TÂCHE STUPIDE pour pouvoir montrer que j'ai accompli quelque chose !

Mais ce que j'ai trouvé qui m'aide, c'est de diviser ma journée en tranches de 30 minutes et de faire un rapide récapitulatif après chacune de ces tranches. Cette technique est appelée la technique Pomodoro, basée sur ces minuteries de cuisine en forme de tomate.

Après chaque unité pomodoro, je me demande si je travaille toujours en "mode solution", ou si je suis bloqué et devrais travailler sur autre chose pendant un moment.

Un avantage agréable de la technique pomodoro est que vous pouvez utiliser la fin d'une unité comme déclencheur pour d'autres habitudes.

Je l'utilise comme déclencheur pour me lever de ma chaise pour étirer mes muscles et boire de l'eau, par exemple. Cela s'appelle parfois "empilement d'habitudes", parce que vous empilez une habitude sur une autre, et c'est très efficace.

Si vous voulez en savoir plus sur les habitudes, je peux chaleureusement recommander le livre "Atomic Habits" de James Clear.

Ne courez pas après les solutions miracles

J'ai écrit un livre sur un style architectural spécifique et je reçois régulièrement des e-mails disant "J'adore ce style architectural et je veux l'appliquer à tous mes projets ! Comment puis-je faire cela ?".

Pouvez-vous deviner ma réponse à cette question ?

Il n'existe pas de style architectural unique qui s'applique à tous les problèmes.

Vous construisez une API CRUD simple lorsqu'il s'agit d'un petit projet. Vous construisez une architecture hexagonale plus sophistiquée si vous avez un modèle de domaine complexe. Et vous appliquez l'un des cent styles différents lorsque vous construisez des microservices dans un contexte spécifique.

De même, il n'existe pas de framework unique que vous devriez utiliser pour chaque projet. Et il n'existe pas de langage de programmation ou de style de codage unique et meilleur.

Ne tombez pas dans le piège des solutions miracles. Elles n'existent pas.

Avoir une opinion est bien si elle est soutenue par de bons arguments. "C'est le meilleur style architectural" ou "J'ai toujours fait comme ça" ne sont pas de bons arguments et les gens les verront à travers.

Imaginez simplement que vous avez un développeur dans votre équipe qui a une opinion sur tout et veut toujours faire les choses à sa manière, "parce que c'est la meilleure façon". Vous en auriez vite marre. Ne soyez pas cette personne.

Développez ces habitudes !

Wow, cet article est plus long que je ne l'avais prévu. J'espère qu'il a fourni quelques inspirations sur quoi réfléchir lorsque vous développez votre carrière de développeur logiciel. Je n'ai certainement pas maîtrisé toutes ces habitudes, mais j'essaie de m'améliorer un peu chaque jour.

Choisissez l'habitude qui résonne le plus avec vous et essayez de l'appliquer consciemment dans votre travail quotidien.

Faites-moi savoir sur Twitter comment cela se passe ! Je serais ravi d'avoir votre retour.