Qu’est-ce qu’un bon développeur ?
Le métier de développeur ne connaît pas la crise et la demande de spécialistes en programmation augmente encore avec la transformation digitale des organisations. Pour répondre à ces besoins, d’innombrables formations ont été créées. Désormais, les cursus scolaires comme les BTS SIO, licence, master, etc. côtoient les titres professionnels et formations courtes qui promettent d’apprendre à coder en quelques mois, voire semaines. Les compétences et la qualité d’un développeur peuvent donc être très variables selon son parcours et son profil. Il devient difficile aussi bien pour les entreprises que pour les candidats eux-mêmes d’évaluer leurs compétences et de les comparer aux autres experts IT. Alors, au final, qu’est-ce qu’un bon développeur ? Dans cet article, nous vous partageons les compétences et qualités indispensables des as de la programmation !
Quelles sont les qualités d’un bon développeur ?
Quel que soit le secteur d’activité, les soft skill deviennent aussi voire plus importants que les compétences techniques. D’après une étude Monster, 90 % des recruteurs sont d’ailleurs convaincus que les compétences comportementales sont primordiales dans les CV et entretiens.
Dans l’IT, 5 soft skills sont particulièrement recherchés.
1 - La curiosité
La curiosité est une qualité que l’on retrouve régulièrement dans les offres d’emploi, car elle est liée à la veille, aux formations et aux montées en compétences continues. Dans l’informatique, elle est encore plus indispensable, car les langages, technologies, frameworks, méthodes, etc. sont en évolution permanente.
D’après le dernier rapport de Stackoverflow, les ¾ des développeurs professionnels apprennent au moins un nouveau langage ou une technologie par an. Cette tendance est accentuée par le fait que le développement est, pour beaucoup d’entre eux, un métier passion. Dans une autre étude de Codingame, 9 programmeurs sur 10 déclarent ainsi coder en dehors de leur temps de travail et passent près d’une heure par jour à programmer des projets personnels.
2 - La sociabilité
Oubliez le cliché du geek insociable et seul face à ses lignes de code ! Le développeur travaille quasi systématiquement au sein d’équipes techniques, mais aussi fonctionnelles. S’il travaille en ESN (Entreprise de Services Numériques), il est en plus régulièrement amené à changer d’équipes et d’environnement de travail.
La sociabilité est encore plus importante dans les entreprises qui pratiquent le peer programming, les revues de code ou qui font travailler simultanément plusieurs développeurs sur un même projet. Enfin, elle est indissociable de l’approche DevOps qui se généralise dans l’IT. En plus de ses compétences techniques, le DevOps a la responsabilité de faire le lien entre les équipes du développement informatique et celles en charge de l’opérationnel.
3 - Un bon sens de la communication
La sociabilité est directement liée à un autre soft skill : le sens de la communication.
Les compétences en communication sont corrélées à aux compétences en développement, car un bon programmeur est capable :
de clarifier les attentes des utilisateurs ou de participer directement à l’expression des besoins ;
de poser les questions adéquates pour définir le périmètre des projets (et pour les chiffrer précisément) ;
d’exposer les solutions techniques retenues en les vulgarisant ;
de partager son code et ses avancées ;
d’exprimer les points de difficultés et les blocages ;
de former si nécessaire les utilisateurs ;
de remonter les anomalies, éventuelles vulnérabilités, etc.
4 - La fainéantise
Oui, vous avez bien lu. Dans le développement, être feignant est une qualité recherchée !
Bill Gates aurait même déclaré : « Je choisis une personne paresseuse pour faire un travail difficile. Parce qu’une personne paresseuse trouvera un moyen facile de le faire. »
La paresse est donc un soft skill à cultiver, et ce pour 3 raisons.
D’abord, un développeur fainéant ne cherche pas à réinventer la roue. Lorsqu’il est confronté à un problème ou à un bug, il vérifie d’abord si une solution n’existe pas déjà avant de programmer « from scratch ».
Ensuite, s’il est confronté à des tâches répétitives comme l’import de données, le développeur paresseux créera des scripts d’automations plus efficaces pour effectuer les missions rébarbatives à sa place.
Par ces 2 actions, il diminue les temps de développement et donc les coûts pour son organisation. Sans oublier que les scripts et automatisations conçus pourront être réutilisés par son équipe ou sur d’autres projets.
Enfin, un développeur paresseux aura tendance à respecter naturellement les bonnes pratiques informatiques :
DRY (Don’t Repeat Yourself) : qui consiste à éviter la redondance dans le code pour faciliter le débogage, la maintenance et les évolutions.
KISS (Keep it Simple, Stupid) qui préconise d’éviter toute complexité non indispensable.
5 - La capacité d’abstraction
La capacité d’abstraction est un soft skill assez spécifique aux métiers du développement, de l’ingénierie ou de la conception. Elle consiste à savoir prendre du recul sur un projet ou une situation pour envisager différentes solutions.
En programmation, la capacité d’abstraction se rapproche de l’esprit d’analyse et aide à :
déboguer ou trouver d’autres techniques plus performantes ;
anticiper et penser aux futures fonctionnalités ;
proposer des axes d’amélioration ;
créer des solutions et outils innovants.
Quelles sont les compétences d’un développeur efficace ?
Si les soft skills recherchés sont communs à tous les développeurs, les compétences nécessaires pour être un bon programmeur dépendent directement de leur spécialisation.
Zoom sur 3 spécialités et les savoir-faire associés.
1 - Développeur front-end
Le développeur front end est responsable de l’interface d’un site web ou d’une application. Il doit impérativement maîtriser le triptyque HTML, CSS et JavaScript.
Mais, pour se démarquer et être un bon développeur, il devra également avoir de bonnes connaissances en :
ergonomie et expérience utilisateur (UX) ;
web design ;
normes d’accessibilités ;
respect des standards du web (W3C).
2 - Développeur back-end
Le développeur back-end gère la « partie cachée » d’un site ou d’une application, composée principalement du ou des serveurs et du SGBD (Système de Gestion des Bases de données). Il doit impérativement maîtriser un ou plusieurs langages de programmation et de requête (comme SQL).
Pour se démarquer, il peut aussi acquérir des compétences dans :
les frameworks comme CakePHP, Codeigniter ou Symphony ;
les microservices et leur maillage (service mesh) ;
la conception et l’utilisation d’API.
3 - Développeur full-stack
Les développeurs full-stack travaillent à la fois côté back-end et front-end. Ils doivent donc maîtriser les compétences de ces deux composants d’un site ou d’une application. Pour booster leur profil ou CV, ils peuvent aussi développer des connaissances et savoir-faire :
en écoconception (une compétence de plus en plus recherchée dans la Green Tech) ;
en gestion de projet pour pouvoir prendre en charge l’intégralité du cycle de vie d’un site ou logiciel ;
en cybersécurité (avec par exemple une approche DevSecOps).
Un bon développeur mêle donc des compétences techniques à des soft skills qui favorisent les échanges, la collaboration et la paresse !
Et pour vous, qu’est-ce qu’un bon dév ? N’hésitez pas à enrichir cette liste de qualité et compétences !
Source et liens utiles :
Commentaire
Connectez-vous ou créez votre compte pour réagir à l’article.