6 compétences non techniques dont chaque développeur de logiciel a besoin
Voir également:Compétences généralesLes développeurs de logiciels dirigent le monde. D'accord, ce n'est peut-être pas si dramatique, mais il n'en reste pas moins que le développement de logiciels est devenu l'un des domaines les plus percutants.
Presque tous les produits ou services que nous utilisons quotidiennement (sauf exceptions évidentes) ont une équipe de développeurs de logiciels derrière eux. C'est aussi un travail passionnant où les idées sont transformées en réalité et où l'on peut vraiment faire une différence.
Du point de vue de gagner sa vie, le développement logiciel est tout aussi intéressant, avec lala demande dépasse largement l'offre. Une baisse de la demande n'est certainement pas non plus dans un avenir prévisible.
Alors que les compétences techniques sont essentielles pour tout développeur de logiciels qui souhaite réussir sur le terrain, les compétences non techniques peuvent être tout aussi importantes. Beaucoup de gens ne seront pas d'accord mais, dans certaines situations, ces compétences non techniques peuvent même devenir plus importantes que les compétences techniques de base.
Alors, de quelles compétences non techniques parlons-nous exactement?

Des talents pour la résolution des problèmes
Lorsque vous parlez à des développeurs de logiciels chevronnés, ils résument souvent tout le développement de logiciels en un mot (ou deux, selon la façon dont vous l'orthographiez) - la résolution de problèmes.
À savoir, lorsque vous le réduisez à l'essentiel, le développement de logiciels est une pure résolution de problèmes.
Au niveau macro, chaque logiciel est une solution à un problème que les gens ont, même s'ils ne savent pas qu'ils l'ont. Au niveau micro, le développement de logiciels consiste à faire d'innombrables petites choses qui peuvent avoir des noms différents, mais qui ne sont que des problèmes qui nécessitent des solutions simples et élégantes.
Malheureusement, toutes les personnes qui travaillent dans le développement de logiciels ne le comprennent pas et beaucoup d'entre elles ne travaillent pas sur leurdes talents pour la résolution des problèmes, par conséquent.
Ils comprennent mal le problème et finissent par en créer d'autres. Ils s'en tiennent aux vieilles pratiques parce qu'ils avaient travaillé dans le passé malgré le fait que la nature du problème soit totalement différente. Ils perdent des jours et des semaines sur quelque chose qui aurait pu prendre quelques heures s'ils l'avaient abordé de la bonne façon.
Les exemples sont infinis.
Il n’est pas nécessaire qu’il en soit ainsi. La résolution de problèmes est une compétence qui peut être apprise et perfectionnée activement et quiconque veut faire du développement logiciel devrait y consacrer du temps.
Compétences d'apprentissage
Le développement logiciel évolue à un rythme incroyablement rapide, surtout si vous le comparez à d'autres domaines. Les technologies et les frameworks vont et viennent, de nouvelles plates-formes et appareils sont introduits et les traditionnels sont mis au rebut.
Souvent, cela se produit au milieu du développement d'un logiciel particulier.
Cela signifie qu’aucun développeur de logiciel ne peut tout apprendre sur son secteur et le considérer comme terminé. En d'autres termes, tout développeur de logiciel qui se respecte devra consacrer beaucoup de temps à se renseigner sur les derniers développements dans le domaine.
C’est là qu’on estcompétences d'apprentissagefera vraiment une différence.
Imaginons deux développeurs de logiciels qui sont absolument identiques à tous égards: formation, expérience, compétences actuelles en codage, etc. La seule différence est queDéveloppeur Aa de grandes compétences d'apprentissage etDéveloppeur Ba des compétences d'apprentissage moins que stellaires.
Un nouveau cadre de développement d'applications est développé, absolument supérieur à tout ce qui l'a précédé (cela ne se produit pas dans la vraie vie, d'ailleurs) et, du coup, tout le monde y travaille.
Ça prendDéveloppeur Adeux mois pour maîtriser le nouveau framework tout enDéveloppeur Best aux prises avec cela six mois plus tard.
Tout à coup, nos deux développeurs de logiciels auparavant identiques sont des mondes séparés. La seule raison -Développeur Aavait des compétences d'apprentissage supérieures.
Dans le monde réel, cela ne se résume pas à un seul cadre. Le développement de logiciels implique l'apprentissage et l'adoption de nouvelles pratiques en permanence. C'est pourquoi il est absolument essentiel que les développeurs de logiciels travaillent sur leurs compétences d'apprentissage.
Compétences de travail d'équipe
Très peu de développeurs de logiciels travaillent seuls sur des projets. Bien sûr, certains projets peuvent commencer par une seule personne, mais dans la grande majorité des cas, l'équipe produit augmentera en nombre avant bientôt.
Pour la plupart, les développeurs de logiciels travaillent en équipe.
Dans le développement logiciel moderne, surtout si nous parlons de développement logiciel Agile (nous y reviendrons plus tard), la capacité de l'équipe à bien collaborer est souvent le facteur crucial pour savoir si le logiciel est terminé à temps, selon les spécifications requises, et dans les limites du budget.
Une bonne collaboration en équipe garantit que les gens travaillent sur ce sur quoi ils devraient travailler, que tout le monde se sent à l'aise pour demander de l'aide (et l'obtient), que les problèmes sont détectés et traités tôt, que personne ne se sent surchargé de travail, etc.
Tout le monde n'est pas né en tant que véritable joueur d'équipe et beaucoup de gens ont du mal à vraiment adopter letravail en équipementalité. La bonne chose est que c'est une autre compétence qui peut être apprise, et c'est quelque chose que tous les développeurs de logiciels devraient étudier.
Compétences en leadership
Le développement logiciel est un domaine dans lequel il est possible d'avancer relativement rapidement. Il ne faut pas des décennies à quelqu'un pour devenir développeur de logiciels senior et être placé dans une position où il dirigera une équipe.
En fait, il est courant (au moins dans les bonnes entreprises / équipes de développement de logiciels) que les développeurs encadrent des personnes ayant moins d'expérience, même lorsqu'elles ne sont pas elles-mêmes trop expérimentées.
Cela signifie que les gens doivent développer leurs compétences en leadership plus tôt dans le développement de logiciels que dans la plupart des autres secteurs. Cette nécessité est encore exacerbée par le fait que la réalité du développement logiciel est souvent assez mouvementée et qu'un bon leadership peut vraiment faire une différence.
Il convient de souligner, cependant, que le leadership dans le développement de logiciels a tendance à différer du leadership dans certains autres secteurs (encore une fois,en particulier dans le développement de logiciels Agile). Dans le développement de logiciels, le leadership est moins autoritaire et prescriptif que dans d'autres domaines, les personnes occupant des rôles de «leadership» étant souvent pour la plupart des personnalités de soutien et de mentorat.
Cela étant dit, certains classiquescompétences en leadershipsera toujours la bienvenue.
Compétences agiles
Puisquesa «standardisation»en 2001, le développement logiciel Agile a parcouru un long chemin et, aujourd'hui, la majorité des projets de développement logiciel sont réalisés en utilisant l'un desles nombreux frameworks / méthodes / approches Agile, ou une combinaison de quelques-uns.
Le développement logiciel agile met l'accent sur les versions fréquentes de logiciels fonctionnels, la réduction de la documentation, l'auto-organisation des équipes, une collaboration accrue, une communication client améliorée et un certain nombre d'autres idées et pratiques visant à fournir de meilleurs logiciels.
La majorité des entreprises ne transmettront pas un bon développeur de logiciels simplement parce qu'elles n'ont pas les connaissances ou l'expérience en Agile. Certaines bases peuvent être adoptées relativement rapidement et facilement, le reste de l'acclimatation se produisant au fil du temps.
Cela étant dit, perfectionner ses compétences Agile peut certainement rendre un développeur de logiciels mieux adapté au monde moderne du développement de logiciels. De plus, les valeurs et les idées Agile peuvent aider un développeur à devenir meilleur dans ce qu'il fait, quelle que soit sa situation de travail actuelle.
La bonne nouvelle est que les ressources ne manquent pas en matière de développement logiciel Agile. D'une part, il existe un certain nombre deAgileetBlogs Scrumoù l'on peut trouver un trésor de connaissances théoriques et pratiques. Pour les développeurs qui aiment une approche plus pratique,outils Scrum gratuits et modernespeut être un excellent moyen d'apprendre pratiquement. Il existe également des cours et des organisations qui fournissent des certifications formelles.
Bonne empathie à l'ancienne
Quand on parle de développement logiciel,empathiepeut ne pas sembler une compétence particulièrement importante à posséder. Cependant, une fois que vous commencez vraiment à y penser, vous réalisez que cela peut faire la différence entre un développeur de logiciel décent et un développeur de logiciel vraiment génial.
D'une part, un développeur de logiciel doit pouvoir se mettre à la place de ses (futurs) utilisateurs. Sans cela, un logiciel qui a été développé à la perfection peut facilement échouer simplement parce que personne n'en a besoin, ou du moins, personne n'en a besoin sous cette forme.
Malheureusement, même les développeurs qui ne se sentent pas trop fiers ou myopes sont souvent dépassés par leurs préjugés inconscients et leurs croyances sur ce que les gens veulent.
En plus de cela, les développeurs de logiciels doivent faire preuve d'empathie pour les personnes qui travailleront sur leur logiciel à l'avenir. Parfois, un développeur devra choisir entre les deux:
- Compléter une nouvelle fonctionnalité (qui répond aux exigences les plus élémentaires) en trente minutes et créer un cauchemar absolu pour les personnes qui vont s'en inspirer ou la maintenir à l'avenir (se faisant également la cible d'innombrables futures malédictions et poupées vaudou dans le processus) .
- Passer une journée entière sur la fonctionnalité en question, écrire un code propre et maintenable qui mettra un sourire sur le visage de quelqu'un deux ans plus tard.
Alors que dans ces deux cas, la fonctionnalité sera fonctionnelle, n'importe qui dans l'industrie du développement logiciel vous dira que le deuxième choix est le seul éthique.
Il s'agit aussi de penser aux autres.
Mot de clôture
Malgré ce que beaucoup de gens pensent, il faut plus que simplement être capable de coder rapidement pour devenir un grand développeur de logiciels. Cela implique beaucoup de compétences et investir du temps et des efforts dans le développement de ces compétences a beaucoup de sens.
Continuer à:
La prise de décision
Compétences en développement personnel
Des Articles Intéressants
- 9 Compétences dont les jeunes ont besoin dans la main-d'œuvre future
- #MTtalk Review: Parlons L&D
- Compétences professionnelles que vous devez avoir après le COVID-19
- 'Oui!' - le pouvoir d'une promesse
- 20 signaux à suivre et il est temps de lâcher prise
- Gestion de l'argent pour les milléniaux: protégez vos revenus + conseils pour les booster
- Dyslexie: jouer avec vos forces
- 4 conseils pour amener votre équipe à penser de manière créative
- Un débat animé se concentre sur les styles d'apprentissage
- Comment échouer plus vite et mieux
- Leçons hebdomadaires de leadership
- L'art de lâcher prise: rejoignez notre #MTtalk
- 7 choses que vous devez savoir avant d'être vraiment indépendant
- Comment vous motiver dans la vie de tous les jours
- Quel est l’effet (ou l’effet) d’une mauvaise mémoire?