paint-brush
Comment devenir un développeur 10x : un guide essentielpar@zawistowski
15,923 lectures
15,923 lectures

Comment devenir un développeur 10x : un guide essentiel

par Wojciech Zawistowski14m2023/03/22
Read on Terminal Reader

Trop long; Pour lire

En améliorant votre façon de travailler, vous ne faites qu'AJOUTER aux performances de votre équipe. En améliorant le fonctionnement de chacun, vous MULTIPLIEZ la performance de votre équipe. Être un multiplicateur vous fera remarquer et promu. Je vais vous montrer 16 façons éprouvées de le faire.
featured image - Comment devenir un développeur 10x : un guide essentiel
Wojciech Zawistowski HackerNoon profile picture
  • Le développement logiciel est un sport d'équipe. Votre performance individuelle n'a pas autant d'importance que la performance de toute votre équipe et de votre entreprise.


  • En améliorant votre façon de travailler, vous ne faites qu'AJOUTER aux performances de votre équipe. En améliorant le fonctionnement de chacun, vous MULTIPLIEZ la performance de votre équipe.


  • Multiplier les performances de toute l'équipe vous mettra sur une voie beaucoup plus rapide pour être remarqué et promu que d'être un contributeur individuel incroyablement efficace.


  • Stimuler les performances des autres nécessite un état d'esprit et une approche différents de ceux qui améliorent vos performances individuelles. Dans cet article, je vais vous montrer 16 façons éprouvées de multiplier les performances de votre équipe (ou même de toute l'entreprise).

L'idée fausse commune de 10x Dev

Si vous recherchez sur Google le terme "développeur 10x", vous obtiendrez de nombreux résultats liés aux performances individuelles.


Découvrez les citations de quelques-uns des meilleurs résultats que j'ai obtenus :


  • "Un développeur dix fois plus efficace est un développeur dix fois plus efficace que le développeur moyen d'une équipe."


  • "Ce sont les personnes que vous voulez pour résoudre vos problèmes ; elles le feront en 1/10e du temps, avec 1/10e du nombre de lignes de code."


  • "J'ai l'habitude d'être dans des équipes où je fais 60% du travail avec 7-8 développeurs dans l'équipe."


Des déclarations comme celles-ci me font grincer des dents.


Ce. Est. Pas. Comment. Nous. Construire. Moderne. Logiciel.


Le développement logiciel est un jeu d'équipe. Ou même un jeu d'équipe d'équipes. Et le jeu est noté en fonction des résultats commerciaux, et non des résultats bruts. En étant efficace en tant qu'équipe et organisation, pas efficace en tant qu'individu.


En tant que vice-président de l'ingénierie, je ne recherche pas de codeurs compétitifs. Je me fiche du nombre de lignes de code que vous lancez en quel temps. Et un seul développeur faisant 60% du travail de l'équipe n'est pas quelque chose dont je me vanterais mais un dysfonctionnement que je considérerais comme ma priorité à résoudre.


Alors, qui je cherche, alors ? Considérons les mathématiques suivantes :

Les mathématiques simples du travail en équipe

Si vous améliorez uniquement votre propre production, vous AJOUTEZ à la production de votre équipe.


Mais si vous améliorez la production de chaque membre de l'équipe, vous MULTIPLIEZ la production de votre équipe.


Et la multiplication bat l'addition assez rapidement.


Même si vous êtes vraiment un développeur 10x mythique, vous n'augmenterez la production de votre équipe que de 10 "unités", quelle que soit la taille de l'équipe. Mais si vous améliorez le rendement de toute l'équipe de seulement 2x, vous l'augmenterez de 10 "unités" pour une équipe de seulement 10 personnes. Et par 100 "unités" pour une équipe de 100 personnes.


Et nous parlons d'une situation extrême où vous êtes 10 fois plus efficace que TOUS les autres développeurs de l'équipe. En réalité, la multiplication l'emportera sur l'addition pour des équipes bien inférieures à 10 personnes.


De plus, nous ne parlons que de la sortie brute : à quel point poussez-vous, mais pas dans quelle direction vous poussez. Et la direction dans laquelle toute l'équipe pousse est essentielle.

La performance de votre équipe et votre performance individuelle sont liées

Peu importe si un bateau à moteur a un moteur de 100 ou 1000 chevaux si ce moteur pousse le bateau sur le côté ou vers l'arrière, pas vers l'avant. Si vous poussez dans la mauvaise direction, vous risquez non seulement de gaspiller votre propre production, mais aussi de saper le travail de toute votre équipe.


Vous pouvez devenir un développeur -10x .


Et cette relation est à double sens.


Même si vous poussez dans la bonne direction, votre productivité multipliée par 10 en mode divin peut être annulée si le reste de votre équipe pousse dans la direction opposée.


Vous devez les aider, afin qu'ils puissent vous aider. Annulez les faiblesses de votre équipe pour qu'elles n'annulent pas vos performances.


Cela peut sembler contre-intuitif, mais se concentrer sur l'efficacité de toute votre équipe est souvent un meilleur moyen d'améliorer vos performances individuelles plutôt que de vous concentrer uniquement sur votre propre résultat.


C'est pourquoi moi et d'autres managers ne recherchons pas autant l'efficacité individuelle que la capacité d'avoir un impact positif sur votre équipe. Et plus vous avez d'impact - plus vous aidez de personnes à aller rapidement dans la bonne direction - plus vous générez de valeur pour votre entreprise.


Mais ne vous contentez pas de me croire sur parole.

Qu'est-ce qui vous permet d'être promu dans la plupart des éditeurs de logiciels ?

Jetons un coup d'œil aux échelles de carrière en ingénierie dans quelques entreprises bien connues :

CercleCI

CircleCI utilise une échelle à 6 niveaux (E1-E6) : ingénieur associé, ingénieur, ingénieur principal, ingénieur d'état-major, ingénieur principal d'état-major et ingénieur principal.


Les niveaux E1-E3 se concentrent sur l'exécution des travaux. E1 dans la tâche, E2 dans l'épopée/le projet, E3 dans l'équipe.


Les niveaux E4-E6 utilisent des compétences pour évoluer et générer un effet de levier. Ils facilitent, guident et encadrent les autres. E4 au sein de l'équipe et avec les parties prenantes de l'équipe, E5 dans plusieurs équipes et E6 dans l'ensemble de l'organisation.


SOURCE : https://docs.google.com/spreadsheets/d/131XZCEb8LoXqy79WWrhCX4sBnGhCM1nAIz4feFZJsEo/edit#gid=0

Carte

Carta utilise une échelle à 7 niveaux (L2-L8). Dans leurs propres mots :


Il est facile d'articuler la chose la plus importante pour le nivellement : votre impact sur l'entreprise. Nous pouvons résumer l'ensemble du système en décrivant l'impact (grossier) que nous attendons des employés au fur et à mesure de leur progression : sur les tâches (L2), sur les fonctionnalités (L3), sur les problèmes (L4), sur les équipes (L5), sur l'organisation (L6), sur l'entreprise (L7) et sur l'industrie (L8).


SOURCE : https://medium.com/building-carta/engineering-levels-at-carta-d33db2a55a20

Spotify

Spotify ne se soucie pas beaucoup des titres externes tels que senior, staff ou développeur principal. Ils sont très flexibles à leur sujet et laissent les employés choisir ce qui leur convient le mieux. Mais en interne, ils utilisent une échelle à 4 niveaux organisés par ce qu'ils appellent des "portées d'impact".


Et ils décrivent ces 4 niveaux (« étapes ») comme ceci :


Nous avons identifié quatre étapes dans votre cheminement de carrière chez Spotify. Chaque étape est marquée non seulement par une responsabilité accrue, mais également par votre impact accru au sein de la technologie : étape individuelle, étape d'équipe/chapitre, étape de tribu/guilde, étape technologie/entreprise.


SOURCE : https://engineering.atspotify.com/2016/02/spotify-technology-career-steps/

Boîte de dépôt

Dropbox utilise une échelle à 7 niveaux (IC1-IC7) : ingénieur logiciel 1-4, ingénieur logiciel personnel, ingénieur logiciel principal et ingénieur logiciel principal principal.


Voici comment ils décrivent "l'étendue de l'influence" pour chaque niveau :


  • IC1 : Je travaille dans le cadre de mon équipe avec des conseils spécifiques de mon manager.


  • IC2 : Je travaille principalement dans le cadre de mon équipe avec un encadrement de haut niveau de mon manager.


  • IC3 : Je travaille principalement avec mon équipe directe et des partenaires interfonctionnels tout en favorisant la collaboration entre équipes pour mon projet.


  • IC4 : Je suis un leader fort pour mon équipe et mon impact commence à s'étendre à l'extérieur de mon équipe.


  • IC5 : J'influence de plus en plus les feuilles de route des autres équipes Dropbox pour atteindre des objectifs qui ont un impact sur l'entreprise.


  • IC6 : J'influence généralement la stratégie technique d'un groupe.


  • IC7 : J'influence généralement la stratégie du département et de l'entreprise pour atteindre les objectifs qui ont un impact sur l'entreprise.


SOURCE : https://dropbox.github.io/dbx-career-framework/


J'ai choisi ces 4 entreprises car elles décrivent le plus succinctement leurs échelles et peuvent donc être citées presque directement. Mais un schéma similaire se répète largement dans l'ensemble de l'industrie.


Alors, qu'est-ce qui vous fait progresser dans toutes ces entreprises ? Qu'est-ce qu'ils apprécient le plus ?


Encore une fois, la zone de l'impact que vous faites.


Plus vous influencez positivement une grande partie d'une organisation (et plus il y a de personnes), plus vous serez précieux pour l'entreprise - et plus vous obtiendrez de reconnaissance.


Travailler à un tel niveau peut sembler effrayant. Mais multiplier par 2 ou 3 les performances de toute votre équipe est souvent moins décourageant qu'il n'y paraît. Et plus simple que de multiplier par 10 vos performances individuelles.


Ok, alors comment pouvez-vous le faire?

Comment avoir un impact sur la performance de toute l'équipe ou de l'entreprise

Il est difficile d'être complètement exhaustif, car il existe de nombreuses façons d'avoir un impact positif sur les performances des autres. Mais explorons plusieurs d'entre eux afin que vous puissiez avoir une bonne idée et construire l'état d'esprit qui vous permettra de trouver d'autres idées par vous-même.

1. Enseignez, encadrez et partagez vos connaissances

Commencer petit. Discutez de choses avec vos coéquipiers. Diffusez vos connaissances par le biais de revues de code, de programmation en binôme et de réunions d'équipe. Donnez l'exemple, par votre travail et votre comportement.


Diffusez vos connaissances non seulement sur le codage, mais sur tout ce qui peut avoir un impact sur les performances de votre équipe : processus, communication et gestion du temps.


Étendez votre impact à plus de personnes grâce à des sacs bruns, des ateliers et des blogs. Saisir les occasions de collaborer avec d'autres équipes.


Enfin, lorsque vous êtes largement reconnu comme un expert, prenez la responsabilité de gérer des programmes d'apprentissage à l'échelle de l'entreprise ou de diriger des communautés de pratique.

2. Apporter de nouvelles connaissances à l'entreprise

Ne soyez pas une sensation unique. Ne vous fiez pas uniquement à votre expérience antérieure.


Apprenez en continu. Parlez à des collègues extérieurs à votre entreprise. Lire. Aller aux conférences. Restez à jour avec l'état de l'art de l'industrie. Recherchez ce que font les autres entreprises. Expérimentez avec de nouvelles techniques et bibliothèques.


Soyez la source de connaissances innovantes qui aideront votre équipe à atteindre le niveau supérieur.

3. Planifier et coordonner des projets

Quel que soit le processus que vous utilisez, le développement de logiciels est, en fin de compte, un flux de petits et grands projets. La qualité de leur analyse, de leur décomposition, de leur planification et de leur exécution a un impact considérable sur les performances des équipes qui les exécutent.


Le bénévolat pour préparer et diriger des projets est un excellent moyen d'influencer la performance de plusieurs personnes.


Commencez par assumer la responsabilité d'une partie du processus : analyse des exigences, plan de mise en œuvre ou répartition des tâches.


Composez-le en maîtrisant le processus de bout en bout, en supervisant l'ensemble de l'exécution du projet.


Et pour un impact maximal, assumez la responsabilité de la coordination de grands projets inter-équipes.

4. Prendre possession d'une partie de la base de code ou du produit

Dans les systèmes logiciels complexes, il existe de nombreuses "pièces mobiles" qui doivent être maintenues sur une longue période : modules, bibliothèques, sous-systèmes, produits, services, API, outils, documentation, pipelines, etc. Il n'est pas facile de bien les entretenir sans propriété claire.


Et la qualité de leur maintenance a un impact énorme sur les performances de tous ceux qui les utilisent - ce qui, pour certains modules fondamentaux, peut même signifier tout le monde dans toute l'entreprise.


En vous appropriant une partie de la base de code, du produit ou du sous-système de votre entreprise et en la gardant en bon état, vous pouvez avoir un impact qu'il sera difficile de manquer.


À plus petite échelle, vous pouvez maintenir quelque chose d'interne à votre équipe, par exemple, un petit module de code ou un service Web.


À plus grande échelle, vous pouvez maintenir quelque chose de fondamental pour l'ensemble du produit et de l'entreprise, comme un système de conception central ou une API orientée client.

5. Améliorer l'outillage

Des outils efficaces font une énorme différence dans la vitesse à laquelle une équipe peut aller. Et il y a tellement de choses dans notre travail qui peuvent être optimisées, automatisées ou utilisées de manière plus habile.


Pipeline CI/CD solide. Formatage du code et peluches. Suite de tests rapide. Génération automatisée de code et de données de test. Navigation dans le code plus efficace. Utiliser toute la puissance de votre IDE. Meilleurs environnements locaux, de test et de staging. Système de gestion de projet bien configuré.


Outils robustes pour le débogage, la surveillance et la journalisation. Meilleure découvrabilité des composants et des bibliothèques partagées. Automatisation et connexion de vos workflows (Github, Slack, Trello, etc.). La liste pourrait s'allonger encore et encore.


En améliorant l'outillage, en automatisant les tâches répétitives, ou même simplement en diffusant les connaissances sur la meilleure façon d'utiliser les outils existants, vous pouvez avoir un impact considérable sur les performances de votre équipe et de toute l'entreprise.

6. Améliorer la base de code et l'architecture

Mettez-vous à la place de collègues qui visiteront le projet après vous. Un code et une architecture faciles à comprendre peuvent faire ou défaire les performances de toute l'équipe. Rendez-les plus propres, plus simples, plus faciles à naviguer et à déboguer, et moins sujets aux erreurs.


Même des améliorations relativement petites, apportées à un composant ou à un module, peuvent considérablement améliorer les performances de votre équipe. Et les améliorations plus globales - par exemple, les conventions de code à l'échelle du produit - peuvent même avoir un impact sur l'ensemble de l'entreprise.

7. Aidez votre équipe à aller dans la bonne direction

Rassembler les gens pour pousser vers une seule et bonne direction est l'un des moyens les plus puissants de multiplier les performances de toute l'équipe. Et vous pouvez l'influencer bien plus que vous ne le pensez.


Tout d'abord, comprenez vous-même la bonne direction. Efforcez-vous de comprendre les objectifs, les activités et les clients de votre entreprise. Cela vous permettra de comprendre quels problèmes doivent être résolus et de trouver de meilleures solutions à ces problèmes.


Deuxièmement, aidez votre équipe à aller dans la bonne direction. Partagez et documentez ce que vous avez appris. Aidez votre équipe à suivre les mesures pertinentes, à recueillir des commentaires et à travailler de manière plus itérative et agile. Devenez un consultant de confiance pour votre chef de produit.


Troisièmement, aidez à la coordination avec les autres équipes et parties prenantes, afin que toute l'entreprise aille dans une seule direction.

8. Soutenir les non-développeurs

Les logiciels ne sont pas construits uniquement par des développeurs de logiciels. Il s'agit d'un effort concerté de développeurs, de concepteurs, de testeurs, de chefs de produit, d'analystes, de scientifiques des données, de chercheurs d'utilisateurs et de divers intervenants commerciaux (support client, marketing, ventes, finance).


Encouragez-les. Travaillez en étroite collaboration. Efforcez-vous de leur faciliter la vie, de les aider à aller vite et de coordonner vos efforts pour que l'ensemble du groupe interfonctionnel travaille en douceur.


Cela vous permettra d'avoir un impact sur votre organisation à un niveau encore plus large que la seule équipe d'ingénierie.

9. Améliorer les méthodologies et les processus

Le fonctionnement de votre équipe et de votre organisation a un impact fondamental sur les performances. Et ce n'est pas réservé qu'aux managers et scrum masters. En tant que développeur, vous pouvez également beaucoup influencer les processus de l'entreprise.


Tout d'abord, renseignez-vous. Comprendre les principes de l'empirisme, du développement itératif, de la découverte de produits et de l'agilité. Apprenez à connaître les approches techniques modernes telles que CI/CD ou le développement basé sur les indicateurs. Découvrez comment fonctionnent les équipes interfonctionnelles modernes.


Deuxièmement, observez avec un œil critique, recherchez de manière proactive les opportunités d'amélioration et prenez l'initiative de façonner le processus. Soyez actif à l'intérieur et à l'extérieur de votre équipe. Participer aux discussions liées au processus. Champion de la mise en œuvre de nouvelles idées.


Vous pourrez multiplier les performances de nombreuses personnes et équipes.

10. Diriger les initiatives techniques

De nombreuses améliorations techniques nécessitent un effort concerté de toute l'équipe sur une plus longue période : remplacement successif de l'ancien framework par un nouveau, migration vers un nouvel ensemble de conventions de codage et refactorisation progressive d'une partie critique de la base de code.


Si elles ne sont pas gérées et mises en avant de manière cohérente, ces initiatives échouent généralement rapidement. Et leurs résultats sont au mieux médiocres.


Portez-vous volontaire pour mener de telles initiatives. Si vous les planifiez et les gérez bien, si vous facilitez la contribution d'autres personnes et si vous coordonnez les efforts autour d'eux et les menez à bien, vous pouvez avoir un impact substantiel sur les performances futures de votre équipe et de votre organisation.

11. Améliorer la communication et la transparence

Une communication claire et transparente est essentielle pour un travail d'équipe efficace. Il détermine à quel point les gens se coordonnent, à quel point ils se font confiance, à quel point ils prennent de bonnes décisions et à quel point ils comprennent leurs objectifs.


Et cela s'applique à tous les niveaux : au sein d'une équipe, entre les équipes, entre les différents rôles et départements, et entre les employés et la direction. La qualité de la communication peut entraver ou débloquer la performance de toute l'organisation.


Et vous pouvez faire beaucoup pour l'améliorer.


Partagez votre statut avec les autres équipes. Maintenez la documentation, les feuilles de route et les wikis de votre équipe et de votre entreprise en bon état. Aidez votre équipe à rester informée en extrayant de manière proactive les informations des autres équipes.


Demandez à la direction de clarifier les objectifs de votre équipe et de les tenir au courant de vos progrès. Proposer des améliorations aux normes et canaux de communication à l'échelle de l'entreprise (Slack, etc.). Initier des réunions de coordination inter-équipes chaque fois que nécessaire.

12. Illustrer et promouvoir la culture

Il n'y a pas de bonne culture unique. Différentes entreprises se comportent différemment avec un niveau de succès similaire. Mais si différentes personnes, équipes et départements d'une même entreprise se heurtent culturellement, cela tue la productivité.


Comprendre la culture de votre entreprise. Illustrez-le et faites-en la promotion. Soyez conscient de votre comportement et de vos habitudes de communication.


Cela impacte la performance de votre entreprise plus que vous ne le pensez.

13. Motiver les autres

Parfois, atteindre des performances plus élevées n'est qu'une question de motivation. La volonté de pousser plus fort. Se sentir plus avide de succès. Avoir la bonne attitude.


Vous n'avez pas besoin d'être un manager pour influencer le moral de votre équipe. Mener par l'exemple. Diffusez de bonnes vibrations. Faites preuve d'enthousiasme, d'optimisme et de courage. Rendez le travail amusant. Restez calme et calme en cas de crise. Rassemblez votre équipe pour pousser un peu plus chaque jour.


De tels comportements sont viraux et fonctionnent souvent mieux que les tentatives de «responsabiliser» les gens d'en haut. Et ils se propagent facilement en dehors de votre équipe, ce qui vous permettra d'avoir un large impact.

14. Aide au recrutement et à l'intégration

Le recrutement est un autre moyen d'améliorer la performance d'une organisation.


Si vous le pouvez, impliquez-vous dans le processus de recrutement. Participer aux entretiens. Aide à la préparation des challenges de recrutement. Examinez les CV.


Et même si vous ne pouvez pas participer au processus de recrutement lui-même, vous pouvez encore faire beaucoup pour attirer de nouveaux talents. Référez vos collègues. Faites la promotion de votre entreprise par le biais de blogs, de forums de discussion, de conférences et de réseaux. Laissez un avis positif sur Glassdoor.


Assumer la responsabilité de l'intégration et du mentorat des nouveaux employés.

15. Résoudre des problèmes complexes (puis diffuser les connaissances)

Si vous pouvez résoudre un problème que personne d'autre n'est capable de résoudre, de manière à donner à votre entreprise un avantage concurrentiel, vous pouvez générer une tonne de valeur.


Cela peut sembler être une tâche pour un génie solitaire 10x, mais il s'agit toujours de l'équipe. Si vous ne diffusez pas les connaissances sur votre brillante solution, si vous ne la concevez pas de manière à ce qu'elle soit facile à réutiliser pour les autres, vous deviendrez un goulot d'étranglement et un point de défaillance unique potentiel au lieu d'un multiplicateur.


Vous mettrez votre entreprise en danger, vous n'apporterez pas de valeur.


Mais si vous pouvez résoudre des problèmes complexes de manière à ce que tout le monde comprenne votre solution et soit capable de s'appuyer dessus, vous pouvez changer la donne.

16. Fournir une direction et des conseils techniques

Votre entreprise doit souvent faire face à des décisions ayant un impact énorme et durable. Choisir une pile technologique. Choisir un fournisseur de cloud. Prendre des décisions de construction ou d'achat.


Encore plus souvent, des questions plus petites surgissent : quelle serait la taille approximative du projet ? Est-ce techniquement faisable ? Quelles sont les solutions possibles à ce problème ?


Devenez un conseiller incontournable pour votre équipe et l'ensemble de l'entreprise. Apprenez en profondeur le paysage de l'industrie. Restez à jour avec les derniers développements et tendances. Soyez bon en recherche. Cela vous permettra d'apporter beaucoup de valeur à votre entreprise.

« Mais puis-je vraiment faire tout cela en tant que développeur ? »

Pouvez-vous vraiment posséder des sous-systèmes, diriger des projets ou prendre des décisions de construction ou d'achat ? N'est-ce pas la responsabilité des architectes, des managers et des responsables techniques ?


Oui, vous pouvez! Dans toute entreprise bien gérée, votre responsable ou responsable technique se fera un plaisir de vous déléguer autant que possible. C'est en fait leur travail. Cela vous aide à grandir et à améliorer les performances de votre équipe, qui sont les responsabilités les plus importantes d'un manager.


Certaines des choses à plus fort impact peuvent en effet nécessiter plus d'expérience - personne ne laissera un junior tout droit sorti d'un bootcamp de codage posséder un sous-système critique utilisé par toutes les équipes de l'entreprise. Mais tous les impacts dont nous avons discuté ont une progression graduelle.


Commencez par de plus petites initiatives dans votre équipe et élargissez successivement la portée de votre impact. Travaillez avec votre responsable ou votre responsable pour trouver plus d'opportunités de croissance. Soyez constamment à l'affût de telles opportunités vous-même, dans votre équipe et dans toute l'entreprise. Faites-vous remarquer et construisez-vous une réputation.


Cela vous mettra sur la voie rapide pour faire des éclaboussures de plus en plus grandes. Devenir non seulement 10x mais même un développeur 100x. Et - si telle est votre ambition - de devenir vous-même un responsable technique.

En bout de ligne

Oui, vous devez être un développeur solide. Il est difficile d'être un multiplicateur pour les autres tout en faisant soi-même un travail de merde. Mais ne vous inquiétez pas si vous êtes vraiment 10x, ou 5x, ou juste un solide 1x. Changez votre état d'esprit de l'efficacité personnelle à l'efficacité de toute l'équipe et de l'entreprise.


Et lorsque vous le faites, seul le ciel (et la taille de votre entreprise) est la limite. Vous pouvez devenir non seulement 10x dev mais même 100x et plus.