- IA
- Développement
- Travail
Les nouvelles compétences pour le développement logiciel
8 décembre — 2023
Avec la venue de l'IA générative et les modèles incroyablement puissants comme GPT, un tout nouveau monde de possibilités est apparu pour le développement logiciel. L'intelligence artificielle révolutionne la façon dont on rédige du code et développe les logiciels.
Les assistants de code comme GitHub Copilot et Tabnine peuvent prendre quelques lignes de code et fournir instantanément des suggestions pertinentes pour les compléter. Ils peuvent écrire des tests automatisés afin de couvrir plusieurs scénarios gérés par des fonctionnalités complexes.
Start a conversation about your codebase.
Les obstacles pour rédiger du code s'amenuisent à mesure que des outils comme Framer (qui permet à l'utilisateur·trice de créer un site Web à partir d'une commande) et Phind (qui écrit littéralement du code pour l'utilisateur·trice) arrivent sur le marché.
D'autres outils qui peuvent aider les développeurs·euses à en faire plus avec moins gagnent en popularité, comme What The Diff, qui améliore les révisions de code en analysant les différences afin de fournir des renseignements pratiques. Ce n'est qu'une question de temps avant que l'IA s'approprie véritablement la révision de code, car de plus en plus d'outils automatisés peuvent repérer les améliorations de style de code, corriger des coquilles, proposer des optimisations de performance, etc.
Instant code refactoring.
Si l'IA peut rédiger et expliquer du code, puis même y trouver des bogues, est-ce que les développeurs·euses sont encore pertinents? Oui, certainement! Cependant, les compétences « classiques » du développeur ou de la développeuse devront être revues pour tirer le meilleur parti des outils qui lui sont maintenant offerts et miser sur la valeur unique qu'ils et elles apportent.
Comment les compétences en développement devront-elles être adaptées?
Ces nouveaux outils ont tous le même objectif clair : améliorer la productivité de la personne qui les utilise. Étant donné qu'ils s'intègrent bien aux outils dont les développeurs·euses se servent déjà, ce serait une erreur de ne pas en tirer parti.
Les assistants d'IA ont été entraînés au code existant, souvent un code source ouvert, pour devenir des experts dans la prédiction du code que les développeurs·euses souhaitent écrire. Si les équipes de développement veulent demeurer compétitives et qu’elles n’utilisent pas un assistant d'IA, cela se comparerait à l'utilisation d'un marteau au lieu d'un pistolet à clouer pour bâtir une maison.
Mais si tout le monde utilise maintenant le même pistolet à clouer (c.-à-d. l'IA), quelles sont les compétences uniques que les développeurs·euses doivent posséder pour s'assurer de bâtir les meilleures maisons (c.-à-d. les produits numériques)?
Mettre l'accent sur l'innovation et le développement sur mesure
Les modèles d'IA sont entraînés à l'aide de codebases et de produits existants. Pour le moment, ils ne peuvent pas connaître les choses qui n'ont pas encore été faites, car ils n'ont pas été entraînés à leur sujet.
Pour les développeurs·euses, cela signifie que certaines compétences demeureront très précieuses, notamment celles nécessitant d'explorer des territoires inconnus, comme trouver la façon de relier divers appareils entre eux ou intégrer son codebase à un fournisseur tiers.
Les modèles d'IA actuels n'ont pas de pensée logique. Ils ne peuvent donc pas savoir avec certitude qu'une chose est appropriée ni décrypter des problèmes complexes. Il sera toujours très utile de posséder la capacité de s'attaquer à un problème - pas juste aux requis- qui doit être résolu de manière créative parce que personne ne l'a encore fait.
Connaître la différence entre quoi faire et comment le faire
Chez Mirego, nous savons ce qui rend un produit numérique exceptionnel, ce sont des éléments comme la maintenabilité du code, le soucis du détail de l'expérience utilisateur, le peaufinage de la performance, l'alignement au pixel près et la qualité de la rédaction du contenu. Les éléments essentiels au succès d'un produit numérique sont de savoir ce qu'il faut faire - de même que ce qu'il ne faut pas faire.
Bien que les développeurs·euses puissent certainement tirer parti des outils d'IA pour les aider dans la façon de concrétiser ces éléments, les meilleur·es seront ceux et celles qui savent vraiment ce qu'il faut réaliser. En plus, ils·elles accorderont une attention toute particulière aux détails qui ne peuvent rivaliser avec aucune IA.
Se tenir au courant des technologies et pratiques émergentes
Afin que leur travail demeure pertinent, les développeur·euse·s doivent se tenir au courant des nouvelles avancées technologiques. Par exemple, au cours de la décennie passée, nous avons observé une augmentation des éléments suivants :
- Nouveaux langages de programmation fonctionnelle
- Informatique décentralisée, structures de données immuables et chaînes de blocs
- Programmation réactive et IU déclarative
- Développement multiplateforme qui vise un nombre toujours grandissant de plateformes
- DevOps, DevSecOps, etc.
Il fut un temps où les développeur·euse·s apprenaient un seul langage et l'utilisaient toute leur carrière. Cette époque est maintenant révolue. Ils·elles devront constamment apprendre de nouveaux langages de programmation, de nouvelles techniques et autres paradigmes. Cependant, les outils d'IA pourront réduire énormément les efforts à ce sujet. On apprend beaucoup plus rapidement un nouveau langage si un assistant nous suggère ce qu'on pourrait écrire ensuite au lieu d'y aller par essai et erreur, ou en faisant un copier-coller des réponses de Stack Overflow.
L'IA peut désormais prendre le contrôle des tâches banales du travail des développeurs·euses. Il est donc plus important que jamais de se concentrer sur les tâches plus cérébrales et approfondies qui peuvent ensuite être utilisées en combinaison avec les outils puissants d'IA.
Continuer à offrir une valeur ajoutée
L'IA peut aider les développeurs·euses à générer du code, mais pas à créer des produits numériques sur mesure. Les développeurs·euses qui auront du succès seront ceux et celles qui tireront parti des outils d'IA tout en concentrant leurs efforts sur les choses que l'IA ne peut pas (encore) faire. Ils·elles laisseront les outils régler la façon de le faire pendant qu'ils mettent l'accent sur ce qu'il faut faire.
Nous estimons qu'il est mieux de miser sur les efforts de développement aux endroits où nous pouvons véritablement ajouter de la valeur et laisser les éléments génériques être traités autrement (frameworks, projets gabarits, outils, etc.). Cela ne changera pas à l'avenir, les outils deviendront simplement meilleurs.