7 erreurs de carrière mortelles commises par les développeurs

Vous ne trouverez pas de pénurie de phrases de motivation de carrière entourant l'échec: échouer rapidement, l'échec construit le caractère, la clé du succès est l'échec, les erreurs vous font grandir, n'ayez jamais peur d'échouer. Mais l'idée de se tromper sur votre chemin vers le sommet de l'industrie du logiciel est probablement malsaine. Chaque développeur aura sa part de faux pas dans sa carrière, mais pourquoi ne pas apprendre de l'expérience des autres et éviter les erreurs les plus coûteuses?

C'est ce que nous avons fait: nous avons discuté avec un certain nombre de professionnels de la technologie qui nous ont aidés à identifier les domaines où les erreurs sont facilement évitées. Pas étonnant, la clé d'une solide carrière de développeur passe par la symétrie: ne pas rester avec une pile ou un travail trop longtemps, par exemple, mais encore une fois, ne pas changer de langue et d'employeur si souvent que vous soulevez des signaux d'alarme.

Voici quelques-uns des pièges de carrière les plus notables pour les ingénieurs - un champ de mines que vous pouvez facilement éviter lorsque vous naviguez sur un marché technologique en constante évolution.

Erreur n ° 1: rester trop longtemps

De nos jours, il est rare d'avoir une carrière de plusieurs décennies en tant que développeur dans une entreprise. À bien des égards, c'est un insigne d'honneur, montrant votre importance pour l'entreprise ou du moins votre capacité à survivre et à prospérer. Mais ceux qui ont construit une carrière dans une seule entreprise peuvent soudainement se trouver du mauvais côté de la réduction des effectifs ou du «redimensionnement», selon le mot à la mode à l'époque.

Les opinions varient sur la durée de votre séjour au même endroit. Praveen Puri, un consultant en gestion qui a passé 25 ans en tant que développeur et chef de projet avant de créer sa propre entreprise, n'a pas peur de lancer des chiffres.

«Plus vous restez longtemps au même poste, plus vos compétences et votre salaire stagneront, et vous vous ennuierez et vous agitez», dit Puri. «D'un autre côté, si vous changez d'emplois multiples après moins de deux ans, cela envoie un signal d'alarme. D'après ma propre expérience, je suis resté trop longtemps à un emploi où j'ai travaillé pendant 14 ans - j'aurais dû quitter après six ans. J'ai quitté d'autres postes au bout de quatre ans en moyenne, ce qui est probablement à peu près correct. »

Michael Henderson, directeur technique de Talent Inc., voit deux inconvénients majeurs à rester trop longtemps au même endroit. «Premièrement, vous courez le risque de limiter votre exposition à de nouvelles approches et techniques», dit-il, «et deuxièmement, votre réseau professionnel ne sera pas aussi profond ou aussi varié que quelqu'un qui change d'équipe ou d'entreprise.»

Se concentrer trop sur une pile utilisée par votre employeur actuel est évidemment une bonne chose pour l'entreprise, mais peut-être pas pour vous.

«C'est un avantage pour les autres employeurs à la recherche d'un ensemble de compétences très spécialisées, et chaque entreprise est différente», déclare Mehul Amin, directeur de l'ingénierie chez Advanced Systems Concepts. «Mais cela peut limiter votre croissance et vos connaissances dans d'autres domaines. De toute évidence, rester quelques mois à chaque poste n'est pas une bonne idée pour votre CV, mais le roulement du personnel est assez élevé ces jours-ci et les employeurs s'attendent à ce que les jeunes travailleurs comme les récents diplômés universitaires bougent un peu avant de rester à long terme dans une entreprise.

Erreur n ° 2: saut d'emploi

Regardons le revers de la médaille: vous déplacez-vous trop? Si c'est un problème, vous pourriez vous demander si vous obtenez vraiment ce dont vous avez besoin de votre temps dans une entreprise.

Charles Edge, directeur des services professionnels de la société de gestion d'appareils Apple JAMF Software, déclare que les responsables du recrutement peuvent hésiter s'ils cherchent à placer quelqu'un pendant longtemps: «À l'inverse, si une organisation brûle des développeurs chaque année, un employé qui a être dans une entreprise depuis 10 ans peut représenter un défi culturel. Je passe beaucoup de temps à développer mon personnel, donc je les veux avec moi pendant longtemps. Cependant, changer d'emploi peut vous exposer à de nombreuses techniques et technologies. »

Ceux qui avancent trop vite risquent de ne pas voir tout le cycle de vie du projet, prévient Ben Donohue, vice-président de l'ingénierie chez MediaMath.

«Le danger est de devenir un mercenaire, une arme à feu, et vous manquez l'opportunité d'acquérir un sentiment de propriété sur un produit et d'établir des relations durables avec les gens», dit Donohue. «Peu importe votre talent et vos connaissances en tant que technologue, vous avez toujours besoin de la capacité de voir les choses du point de vue d'un utilisateur, et il faut du temps pour connaître les besoins des utilisateurs auxquels votre logiciel répond et comment ils l'utilisent. ton produit."

Hilary Craft, responsable de la succursale informatique chez Addison Group, se dit clairement: «Le saut constant de travail peut être considéré comme un signal d'alarme. Les employeurs embauchent en fonction de leurs compétences techniques, de leur fiabilité et, le plus souvent, de leur culture. La stabilité et l'achèvement du projet complètent souvent ces besoins de recrutement. Pour les entrepreneurs, c'est une bonne règle de terminer chaque projet avant de passer au rôle suivant. Certains professionnels ont tendance à «évaluer» pour gagner le taux horaire le plus élevé possible, mais à leur tour, ils brûlent des ponts, ce qui ne sera pas rentable à long terme. »

Erreur n ° 3: transmettre une promotion

Il y a un moment dans la vie de chaque développeur où vous vous demandez: est-ce cela? Si vous aimez coder plus que diriger la série, vous pourriez vous demander si rester sur place pourrait bloquer votre carrière.

«Passer à la direction doit être une décision prudente et réfléchie», déclare Henderson de Talent Inc.. «La gestion est un changement de carrière - pas la progression logique de la voie technique - et nécessite un ensemble différent de compétences. De plus, j'ai vu de nombreuses entreprises pousser de bons talents techniques dans la gestion parce que l'entreprise pense que c'est une récompense pour l'employé, mais cela s'avère être une erreur à la fois pour le directeur et pour l'entreprise.

Apprenez à connaître votre propre environnement de travail, déclare Puri, consultant en gestion, ajoutant qu'il n'y a pas de réponse universelle à cette question.

«J'ai travaillé dans des endroits où les gestionnaires mécontents n'avaient aucun pouvoir réel, étaient surchargés de paperasse et de réunions, et devaient faire de la politique», dit Puri. «Dans ces environnements, il serait préférable de rester en développement. À long terme, je recommanderais à tout le monde de se lancer dans la gestion, car les carrières de développement stagnent après 20 ans et vous ne recevrez pas beaucoup plus de rémunération.

Une autre façon de voir cela pourrait être l'auto-préservation. Scott Willson, directeur marketing produit chez Automic, pose la question: «Qui mettront-ils à votre place? Sinon, ils peuvent promouvoir l'employé le plus incompétent ou le plus désagréable simplement parce que perdre leur productivité dans les tranchées ne sera pas aussi important que de perdre des employés plus qualifiés. Parfois, accepter une promotion peut vous mettre, vous et vos collègues / amis, en contrôle de votre bonheur au travail. Tout le monde devrait être à la direction au moins une fois dans sa carrière, ne serait-ce que pour comprendre pourquoi et comment la direction et les entreprises fonctionnent. »

Erreur n ° 4: ne pas payer en avant

Une erreur moins évidente pourrait être de rester trop concentré sur votre propre cheminement de carrière sans tenir compte des développeurs juniors de votre bureau. Ceux qui s'associent avec de jeunes programmeurs sont fréquemment sollicités lorsqu'une équipe a besoin de leadership.

«J'ai constaté que le mentorat de développeurs juniors m'a amélioré dans mon travail parce que vous apprenez n'importe quel sujet plus en profondeur en l'enseignant que par toute autre méthode», déclare Willson d'Automic. «De plus, comme les développeurs ont souvent du mal à acquérir des compétences interpersonnelles, le mentorat offre de formidables opportunités de perfectionner ces compétences en relations humaines.

Si l'expérience est le meilleur enseignant, enseigner aux autres ne fera qu'approfondir vos connaissances, déclare JAMF Software's Edge. Cela dit, il ne le tient pas contre un développeur occupé si cela ne s'est pas encore produit.

«Regardons les choses en face: aucune équipe de développement n'a jamais eu suffisamment de ressources pour fournir ce que la gestion des produits attendait d'elle», déclare Edge. «Lorsque les développeurs seniors n'ont pas le temps d'encadrer les jeunes développeurs, je comprends parfaitement. Ne dites pas que c'est parce que 'je ne suis pas bon avec les gens.' »

Erreur n ° 5: coller à votre pile

Votre expertise dans une pile peut vous rendre inestimable pour votre lieu de travail actuel, mais est-ce que cela aide votre carrière? Cela peut-il faire mal d'être trop concentré sur une seule pile?

Donohue de MediaMath ne tire aucun coup de poing sur celui-ci: «Bien sûr que c'est le cas - il n'y a pas de rôle moderne en génie logiciel dans lequel vous n'utiliserez qu'une seule technologie pendant toute la durée de votre carrière. Si vous prenez un développeur Java qui travaille en Java depuis 10 ans et qu'il commence soudainement à travailler sur une application JavaScript, il l'écrira différemment d'une personne ayant des années d'expérience similaires en tant que développeur Python. Chaque technologie que vous apprenez influence vos décisions. Certains diront que ce n'est pas une bonne chose - si vous adoptez une approche orientée objet Java pour un langage au typage lâche comme JavaScript, vous essaierez de lui faire faire des choses qu'il n'est pas censé faire. »

Cela peut nuire à votre trajectoire d'être trop concentré sur une pile, dit Henderson de Talent Inc., mais peut-être pour des raisons différentes de celles que vous pensez.

«Chaque pile aura une culture et une perspective différentes, ce qui, en fin de compte, élargira et accélérera la croissance de votre carrière», déclare Henderson. «Par exemple, je trouve que de nombreux développeurs C # ne connaissent l'écosystème Microsoft que lorsqu'il existe un monde bien plus vaste. Java a, sans doute, le meilleur écosystème, et je trouve souvent que les développeurs Java sont les meilleurs développeurs C # car ils ont une perspective plus large. »

Willson d'Automic dit que la compétence - mais pas la maîtrise - avec une pile devrait être la référence avant de passer à une autre.

«Il est temps de passer à autre chose lorsque vous maîtrisez la compétence, mais pas nécessairement très bien», déclare Willson. «Je ne prône pas la médiocrité, bien au contraire. Je dis qu'avant de partir pour apprendre une nouvelle compétence, assurez-vous que vous êtes bon, compétent ou au-dessus de la moyenne dans cette compétence avant d'envisager de passer à autre chose.

Enfin, Henderson de Talent Inc. propose cet avertissement: «Évitez le piège de l'attente que chaque nouvelle langue est simplement l'ancienne avec une syntaxe différente. Les développeurs de C # et Java qui tentent de forcer JavaScript dans une approche orientée objet classique ont causé beaucoup de douleur. »

Erreur n ° 6: Négliger les compétences générales

Les programmeurs sont généralement moins extravertis que, disons, les vendeurs. Pas de secret là-bas. Mais les compétences générales peuvent être acquises au fil du temps, et certaines des nuances du développement d'une carrière réussie - comme apprendre auprès de mentors et développer des relations - peuvent être absentes de votre carrière jusqu'à ce qu'il soit trop tard.

«Cela améliore le logiciel lorsque les gens parlent», déclare Donohue de MediaMath. «Les compétences générales et les conversations avec les clients peuvent également donner un grand sentiment de compassion qui améliorera votre façon de construire. Vous commencez à penser à ce dont les clients ont vraiment besoin au lieu de la sur-ingénierie. »

Henderson de Talent Inc. affirme que votre travail avec d'autres personnes est un élément crucial du développement d'une carrière de développeur réussie.

«Toutes les activités humaines sont sociales et le développement ne fait pas exception», dit Henderson. «Une fois, j'ai été témoin d'un échange sur la liste de diffusion Angular où un développeur novice a posté du code avec des questions. En moins d'une heure - et grâce à l'aide de cinq personnes - il avait un code angulaire idiomatique solide comme le roc, une compréhension plus riche de la nuance angulaire et des pièges, et plusieurs nouveaux contacts. Bien que les trolls puissent parfois nous faire perdre la foi, le monde est plein de gens extraordinaires qui veulent s'entraider.

Willson d'Automic dit qu'un manque de compétences générales est un tueur de carrière. Ensuite, lorsque des programmeurs moins compétents avancent, les développeurs qui n'ont pas de compétences en relations humaines - ou ne les exercent tout simplement pas - se demandent pourquoi. Pourtant, tout le monde aime les patrons, dit-il, «qui font preuve de tact et de communication efficace».

«Pour améliorer vos compétences générales, Internet, les cours en ligne, les amis et les mentors sont des ressources inestimables si ... vous êtes humble et restez coachable», dit Willson. «En outre, nous atteindrons tous un point de notre carrière où nous devrons nous appuyer sur les relations pour obtenir de l'aide. Si personne n'est disposé à rester dans votre coin, alors vous, et non eux, avez un problème et vous devez le résoudre. Au cours de ma carrière, j'ai privilégié les personnes coachable plutôt que les inconditionnelles lorsque j'ai dû prendre des décisions difficiles en matière de personnel.

La programmation n'est qu'un aspect du développement, déclare Puri, consultant en gestion. «L'essentiel est de pouvoir communiquer et comprendre les objectifs et les idées de l'entreprise, entre des groupes de personnes ayant différents niveaux de compétences techniques. J'ai vu trop d'informaticiens essayer de communiquer trop de détails techniques lorsqu'ils parlent avec la direction. »

Erreur n ° 7: ne pas élaborer une feuille de route de carrière

Développer des objectifs et y revenir au fil du temps - ou à l'inverse développer une approche agile et aller-avec-le-flux - ont tous deux leurs partisans.

«Je conçois moins pour des objectifs que pour des systèmes qui me permettent de m'améliorer rapidement et de saisir les opportunités au fur et à mesure qu'elles se présentent», déclare Henderson. «Cela dit, je recommande de dresser une liste d'expériences et de compétences que vous aimeriez acquérir et de l'utiliser comme carte, en la mettant à jour au moins une fois par an. Savoir où vous êtes allé est aussi utile que savoir où vous voulez aller. »

Et bien sûr, peut-être tout aussi important - là où vous ne voulez pas aller.

«Au début de ma carrière, je n'avais pas encore appris à dire non», déclare Edge, de JAMF Software. «J'ai donc accepté un plan de projet qu'il n'y avait aucun moyen de réussir. Et je savais que cela ne pouvait pas. Si j'avais été plus assertif, j'aurais pu influencer le plan qu'un groupe de personnes non techniques a élaboré et épargner du temps et de l'argent à mon employeur de l'époque, mes collègues de travail beaucoup de douleur et, finalement, la relation que nous avions avec le client. "

Willson d'Automic donne un discours d'encouragement tout droit sorti du livre de jeu de l'entraîneur de football en chef de l'Université de l'Alabama, Nick Saban, qui prêche d'avoir confiance en votre processus: «L'objectif est de suivre un processus de succès et d'utiliser ce processus comme référence pour vous responsabiliser . Pour développer votre démarche, vous devez trouver des mentors qui ont obtenu ce que vous souhaitez obtenir. Découvrez ce qu'ils ont fait et pourquoi ils l'ont fait, puis personnalisez, peaufinez et suivez. "