Presque tous les développeurs de logiciels ou programmeurs ont rencontré du code écrit par quelqu’un d’autre qui prouve le cliché « tout le monde peut coder ». Mais avez-vous déjà rencontré le supposé mythique « développeur 10x » ? Être un développeur 10x a moins à voir avec le fait d’exceller dans l’écriture de code et plus à voir avec le fait de savoir exactement quel code écrire.
Beaucoup d’entre nous ont commencé à programmer dans un but précis. Par exemple, j’ai commencé à écrire du code pour lire automatiquement des jeux MUD en mode texte pour moi pendant que je dormais et que j’étais à l’école. J’étais un script kiddie à 13 ans et je ne le savais même pas. Je pouvais trouver une idée, écrire le code et le tester – tout seul.
Le développement de logiciels est difficile lorsque nous le faisons pour quelqu’un d’autre parce que nous manquons souvent du même type de motivation et d’excitation qui nous anime lorsque nous poursuivons notre propre vision. Nous ne trouvons pas les idées, nous passons des heures en réunion à essayer de les comprendre, puis nous passons la plupart du temps à modifier le code de quelqu’un d’autre – ou du moins à y contribuer. Cela peut conduire à un niveau de détachement qui diminue la productivité.
Pour être un développeur 10x, vous devez apprendre à exceller dans cet environnement ou même créer votre propre entreprise pour mener la charge.
Tout le monde peut être un développeur 10x, au moins pendant une partie de la journée, tous les jours. Je crois qu’il y a trois choses sur lesquelles tous les développeurs devraient se concentrer pour devenir plus productifs et un meilleur membre de l’équipe.
- Les 3 choses
- Connaître le Quoi
- Comprendre le pourquoi
- Savoir quand faire quoi
- Maîtriser le Quoi, le Pourquoi &Quand devenir un développeur 10x
- Débuter avec le Pourquoi
- Soyez un bon développeur &Excellent résolveur de problèmes, pas le meilleur programmeur
- Le moment est dans vos tripes, ou il ne l’est pas
- Savoir quoi faire et quoi demander
- Conclusion
Les 3 choses
Pour être un développeur 10x, vous devez avoir plusieurs années d’expérience de travail avec n’importe quel langage de programmation et ensemble d’outils que vous utilisez. Vous devez être bon pour résoudre des problèmes et écrire du code ; c’est une évidence.
Il est important de comprendre que la façon dont vous écrivez du code n’est pas ce qui fait de vous un développeur 10x, un ingénieur 10x, un programmeur 10x, ou peu importe comment vous voulez l’appeler.
Vous connaissez les 5 Ws : « Qui, quoi, où, pourquoi, quand ». Bien qu’ils s’appliquent tous au développement logiciel, je veux me concentrer sur les trois caractéristiques qui définissent les développeurs 10x.Ces trois choses différencient le développeur moyen du développeur 10x :
- Quoi
- Pourquoi
- Quand
Connaître le Quoi
Dans le monde de l’entreprise, les développeurs ont tendance à travailler sur des projets pour lesquels ils n’ont pas beaucoup de passion et qu’ils ne comprennent pas. Pour la plupart des développeurs, ce n’est pas un gros problème, tant qu’ils reçoivent de très bonnes instructions et que les attentes sont clairement définies.
Le problème est que les développeurs ne reçoivent généralement pas d’instructions adéquates. Au lieu de cela, nous utilisons cette chose appelée « développement agile ». Nous recevons un post-it avec quelques mots dessus et on s’attend à ce que nous sachions exactement ce qui doit être fait.
Le développement de logiciels est une question de communication. Les développeurs doivent savoir sur quoi nous travaillons, quels sont les problèmes que nous essayons de résoudre, et à quoi doit ressembler exactement le résultat. Plus nous en savons au départ, plus nous pouvons aller vite. Plus important encore, il est crucial de connaître l’intention du travail et ce qui fera de ce travail un succès.
Les mauvais développeurs passeront des heures à aller dans la mauvaise direction sur un projet sans poser de questions. Ils sont ce que j’appelle des développeurs -10x parce qu’ils n’obtiennent rien d’accompli et gaspillent le temps de tous leurs collègues. Presque tout le monde a rencontré certains de ces développeurs, et il peut être frustrant de travailler à leurs côtés. Et vous devez faire attention à ne pas prendre leurs habitudes !
Certains développeurs travaillent bien même sans beaucoup de détails. Ils font preuve d’une grande créativité et posent les bonnes questions. Ces licornes sont probablement des développeurs 10x. Ils savent comment comprendre les choses et élèvent souvent le niveau de toute l’équipe qui travaille autour d’eux.
L’essentiel est que les développeurs 10x sont vraiment bons pour déterminer rapidement ce qui doit être accompli et quelles questions poser.
Comprendre le pourquoi
Peut-être que le plus grand obstacle du développement logiciel est de comprendre le pourquoi. Si vous ne comprenez pas le problème que vous essayez de résoudre, il est vraiment difficile de le résoudre.
Pourquoi je piratais des scripts de terminal ensemble pour jouer à mon jeu MUD pendant que je dormais et que j’étais à l’école ? Je voulais atteindre le plus haut niveau du jeu, bien sûr. Je savais exactement pourquoi, et je faisais tout ce que je pouvais pour y parvenir.
La même approche s’applique à tout projet de développement logiciel. Les développeurs qui comprennent la verticale industrielle dans laquelle ils se trouvent et les problèmes qu’ils essaient de résoudre seront beaucoup plus productifs. Savoir pourquoi et comprendre la verticale permet également d’éviter le travail inutile, libérant du temps pour se concentrer sur les choses qui rendront un produit ou une fonctionnalité plus précieux pour les utilisateurs.
Le problème est que savoir pourquoi n’est pas suffisant. Vous devez avoir une passion pour le problème et le comprendre de l’intérieur et de l’extérieur pour vraiment être un développeur 10x. Je crois que la plupart des développeurs 10x sont aussi des gens de produit dans l’âme, dotés d’une bonne vision du produit.
Savoir quand faire quoi
Le timing est important pour les projets de développement logiciel. Choisir dans quel ordre travailler sur les éléments de votre backlog est une tâche apparemment facile qui est vraiment critique. Travaillez-vous sur quelque chose qui peut aider votre entreprise à décrocher un nouveau compte ou aller nettoyer une vieille dette technique ?
En tant qu’équipes de développement, nous devons constamment jongler avec ce sur quoi nous travaillons et quand nous le faisons.
Toutes les tâches de développement logiciel entrent dans ces trois catégories :
- Ce que nous devons faire
- Ce que nous devons faire
- Ce que nous voulons faire
Nous devons réaliser cette nouvelle fonctionnalité pour un client. Nous devons corriger des bogues dans notre logiciel. Nous voulons travailler sur la dette technique ou sur une nouvelle fonctionnalité sympa du produit. C’est toujours un acte d’équilibrage.
Nous devrions faire des éléments de travail de ces trois seaux simultanément. Nous ne pouvons pas passer tout notre temps sur la dette technique, mais peut-être devrions-nous y consacrer un petit pourcentage de notre temps.
Les développeurs doivent également savoir quand construire des architectures complexes dans leur code. Je préfère garder le code aussi simple que possible jusqu’à ce que je sois obligé d’ajouter une architecture dont je ne peux pas me passer autrement.
Les développeurs doivent également savoir quand éviter de courir après les objets brillants. Ils ont tendance à vouloir jouer avec de nouveaux outils et technologies, mais ces solutions peuvent seulement ralentir un projet plutôt que de l’aider à le faire plus rapidement.
Les développeurs 10x savent jongler avec les priorités et comprennent quand il faut investir du temps dans les architectures plutôt que de balancer du code spaghetti pour faire fonctionner quelque chose. Rappelez-vous, vos utilisateurs ne se soucient pas de la façon dont votre logiciel fonctionne ou de la fantaisie de l’architecture. Ils veulent simplement qu’il fonctionne. Les développeurs 10x comprennent cela.
Maîtriser le Quoi, le Pourquoi &Quand devenir un développeur 10x
Maintenant, parlons de la façon dont vous pouvez maîtriser les compétences importantes du Quoi, du Pourquoi et du Quand pour devenir un développeur 10x.
Débuter avec le Pourquoi
La première étape pour devenir un développeur 10x est de se passionner pour le logiciel et les problèmes que vous essayez de résoudre. Vous devez comprendre le problème de l’intérieur et de l’extérieur. Cela commence par l’enthousiasme pour l’entreprise pour laquelle vous travaillez et sa mission en tant qu’entreprise.
Ne vous contentez pas de faire faire quelque chose à un bouton parce que c’est ce que quelqu’un a dit de faire. Efforcez-vous de comprendre le pourquoi à un niveau plus élevé. Vous serez beaucoup plus précieux pour votre équipe et votre entreprise si vous restez concentré sur le pourquoi.
Soyez un bon développeur &Excellent résolveur de problèmes, pas le meilleur programmeur
Je me décrirais plutôt comme un hacker-développeur. Je suis le type qui peut sling un peu de code laid ensemble pour résoudre presque n’importe quel problème très rapidement. Mon code est rarement beau, mais il fonctionne. Et c’est ce qui compte.
Vous n’avez pas besoin d’écrire un code parfaitement architecturé avec des tests unitaires pour être un développeur 10x. Vous devez savoir quand et quand ne pas faire ces choses pour être un développeur 10x.
Un développeur 10x est bon pour résoudre des problèmes spécifiques et satisfaire les besoins de l’entreprise avec du code. La chose la plus intelligente que vous puissiez faire est de savoir jusqu’où aller dans un projet avant de le confier à quelqu’un d’autre qui pourrait être meilleur pour finaliser une partie de l’architecture et d’autres petits détails.
Le moment est dans vos tripes, ou il ne l’est pas
Savoir quand construire une architecture complexe par rapport à pirater quelque chose ensemble vient avec l’expérience et le développement de vos sens d’araignée. Soit vous avez cette intuition, soit vous ne l’avez pas.
Certains des développeurs les plus intelligents avec lesquels j’ai travaillé étaient les pires pour donner la priorité aux modèles et aux architectures sur les fonctionnalités et les calendriers. Ils voulaient faire de l’ingénierie à outrance et réécrire les choses encore et encore, s’efforçant d’obtenir un » code parfait » plutôt qu’un » code expédiable « .
Les développeurs 10x doivent utiliser leur expérience et leur instinct pour savoir quand se concentrer sur l’architecture et la perfection plutôt que de faire de la merde.
Savoir quoi faire et quoi demander
Une si grande partie du développement logiciel se résume à des compétences en communication. Malheureusement, beaucoup des notes et des exigences que nous recevons pour les éléments de travail ne sont pas très détaillées. Un développeur 10x sait comment les lire, appliquer le « pourquoi » qu’il connaît sur l’entreprise et poser des questions pertinentes.
Les meilleurs développeurs savent combien de temps passer sur quelque chose avant de demander de l’aide. Ils savent également quelles questions poser pour clarifier ce qui doit être fait pour faire avancer le projet.
Conclusion
J’écris du code depuis plus de 15 ans. Je dirais que je suis un développeur 10x, ou du moins je peux l’être. Je sais dans quoi je suis bon. Lorsque je fais les choses dans lesquelles je suis bon, je peux obtenir une quantité sérieuse de travail rapidement.
Si vous voulez prototyper un nouveau produit, je suis votre homme. Si vous avez besoin d’aide avec Angular, React ou tout autre développement frontal, je ne suis très certainement pas votre gars. Je serais un développeur -10x à ces tâches.
Les développeurs -10x ne sont pas un mythe. Ils existent. Ils sont très probablement des directeurs de développement, des architectes, des développeurs principaux ou des fondateurs d’entreprise. S’ils ne le sont pas, ils devraient probablement l’être. J’ai fini par être un fondateur d’entreprise, deux fois maintenant.
De plus, personne ne va être un développeur 10x tous les jours, toute la journée. Nous n’avons pas l’énergie ou la concentration pour travailler à ce rythme tous les jours. Nous ne sommes pas des robots.
Si vous comprenez le « quoi, pourquoi et quand » du développement logiciel, vous pouvez être plus productif et un meilleur membre de l’équipe – peut-être même un développeur 10x pendant quelques heures par jour. Et cela peut faire une grande différence.
Pendant que vous êtes ici et que vous cherchez comment vous améliorer, consultez notre outil d’analyse de code dynamique, Stackify Prefix. Il est gratuit et vous aidera à écrire un meilleur code.