Les développeurs vont-ils développer leurs propres remplaçants ?

15 juil. 2019

4min

Les développeurs vont-ils développer leurs propres remplaçants ?
auteur.e

Est-ce qu’un jour les développeurs seront tentés de casser leurs ordinateurs, de saboter leurs propres programmes et de se battre pour que leur métier ne soit pas remplacé par les logiciels et les machines qu’ils ont créés ? Ou est-ce que l’intervention humaine sera toujours nécessaire ?

Avec l’automatisation rapide du travail, depuis la production jusqu’à la médecine, il est naturel que, de toutes les professions à risque d’être remplacées par l’Intelligence Artificielle (IA), tout le monde mise sur le secteur de la technologie lui-même. L’ingénierie logicielle peut-elle être automatisée, entraînant le licenciement des développeurs ? Grâce aux progrès de l’apprentissage automatique, les IA peuvent acquérir de nouvelles compétences à partir d’une certaine quantité de données, parfois même plus efficacement que les humains. Il semblerait donc possible que la conception d’IA soit elle aussi automatisée, ce qui rendrait obsolètes les développeurs de logiciels.

L’automatisation est un élément essentiel du développement de logiciels : en effet, le but même d’un développeur est souvent de rendre son intervention facultative en créant de nouveaux scripts pour automatiser certaines tâches. « Au cœur du développement de logiciels se trouve le concept d’abstraction » affirme l’ingénieur en informatique George Ash. « Une abstraction est un script empaqueté qui complète une action. Ce qui compte, dans une abstraction, ce n’est pas comment le procédé se termine, mais plutôt qu’il produise le résultat correct. Une partie du travail de développeurs de logiciels est de créer des abstractions qui pourront être utilisées. De ce fait, les programmeurs s’excluent déjà eux-mêmes de leur travail. »

En d’autres mots, les développeurs créent des algorithmes si compliqués qu’eux non plus ne savent pas précisément comment ils vont fonctionner : ils savent juste qu’ils vont produire le résultat attendu. Il s’agit de l’un des aspects les plus importants et potentiellement effrayants de l’apprentissage machine. Les machines atteignent un niveau où elles peuvent apprendre de leurs erreurs (lorsqu’on leur soumet les bonnes informations) sans intervention du créateur du programme. Parfois, les développeurs eux-mêmes ne savent pas comment se comportera leur algorithme après un certain point. Vu la rapidité des progrès de l’apprentissage machine, il serait tout à fait plausible qu’un développeur puisse créer un programme qui imite son travail, et qui apprenne à son tour à coder mieux que son auteur.

La valeur des compétences non techniques

Dans le podcast Recode Decode, l’entrepreneur Mark Cuban, spécialiste des technologies, admet que les développeurs pourraient devenir obsolètes plus tôt que nous ne le croyons. Pour lui, « dans vingt ans, si tu es un programmeur, tu pourrais être au chômage… Puisqu’il s’agit juste de maths, quoi qu’on fasse faire à l’IA, quelqu’un devra connaître le sujet ». Et poursuit en affirmant que les soft skills, telles que la communication et la créativité, seront beaucoup plus appréciables que les capacités telles que la connaissance de langages de programmation, dont « la valeur continuera de diminuer ».

Lorsqu’on code, la créativité est très importante, et même si on se demande si les machines seront un jour aussi créatives que les humains, l’intervention humaine reste encore essentielle dans la programmation. Bien des aspects du développement ont déjà été automatisés, mais c’est justement parce que l’automatisation est si rapide que les développeurs sont demandés. En effet, s’il existe désormais des solutions pour compléter les tâches ingrates liées au développement de logiciels, elles doivent être intégrées aux programmes existants.

Mais les développeurs font déjà tout ça. De nombreuses fonctions de la programmation, telles que la création de serveurs HTTP, sont déjà automatisées. Au fur et à mesure que les logiciels intègrent de nouveaux scripts, de nouveaux problèmes vont inévitablement émerger, et le principal rôle des développeurs est de les résoudre. Si les développeurs réussissent à s’adapter aux changements de leur secteur, qui automatise de plus en plus leur travail, alors ils auront toujours un rôle.

Même si une machine était capable de développer un logiciel, un humain devrait de toute façon communiquer avec elle pour lui dire quoi faire et quoi construire.

L’ingénieur informatique George Ash

Et les opportunités pourraient se multiplier… L’automatisation aiderait les ingénieurs informatiques à se délester de beaucoup de tâches chronophages et ingrates, en leur laissant plus de temps pour résoudre des problèmes et être créatifs, des qualités qui font briller les meilleurs développeurs. De plus, avec les progrès de l’automatisation, qui permettent d’avoir de moins en moins recours à l’intervention humaine pour la réalisation de logiciels, les entreprises en créeront davantage, multipliant ainsi les opportunités pour les ingénieurs informaticiens de talent. Cela profitera autant aux développeurs freelance qu’aux employés à temps plein qui travaillent sur leurs propres projets : leur métier devenant moins complexe, ils pourront en faire plus, et les possibilités se multiplieront.

Bien qu’il semble en théorie possible qu’un ordinateur prenne la main sur l’intégralité du développement de logiciels, un certain degré d’intervention humaine restera probablement toujours indispensable. Comme le résume George Ash, « même si une machine était capable de développer un logiciel, un humain devrait de toute façon communiquer avec elle pour lui dire quoi faire et quoi construire. Si elle parlait anglais, il s’agirait d’IA Générale. Autrement, il faudra lui parler dans son propre langage, ce qui est le but de la programmation ».

Seuil de compétences plus élevé

La création de l’IA Générale, capable de comprendre le langage naturel, est un enjeu appelé le « problème de l’IA-complète ». Le résoudre signifierait avoir créé une IA aussi intelligente que l’être humain. Le PDG et fondateur de R2ai, Yiwen Huang, explique que l’IA Générale ou Forte deviendra une réalité plus tôt que nous ne le croyons. Il affirme aussi que l’industrie technologique est dans un processus constant d’automatisation, « de nouveaux métiers et de nouveaux emplois apparaîtront toujours ».

Mais, alors que les développeurs créatifs seront toujours recherchés, le niveau des capacités requises pour accéder à la profession sera plus élevé. Si d’un côté l’automatisation des tâches plus ennuyeuses permettra aux développeurs de travailler à des projets qui ont un véritable impact, certaines capacités, que les IA ont du mal à développer, deviendront plus recherchées. Les meilleurs développeurs et les plus doués se distingueront par leur association de créativité, d’intelligence émotionnelle, de capacité à résoudre des problèmes et de savoir-faire. Il faudra innover pour trouver des manières créatives d’utiliser les outils et les programmes d’automatisation, mais aussi pour trouver des nouvelles manières de les utiliser pour résoudre les problèmes des êtres humains et de la société, y compris dans des applications externes à l’industrie technologique.

Ce que font les ingénieurs informatiques, c’est essentiellement trouver des solutions à des problèmes de façon créative. Et si l’IA est très bien partie pour la résolution de problèmes, il est difficile de programmer la créativité dans un algorithme. Si les développeurs de l’apprentissage machine sont prêts à suivre le rythme naturellement changeant du secteur et continuer à trouver des solutions innovantes, alors ils ne risquent pas d’être prochainement victimes de l’automatisation. La supervision humaine sera toujours nécessaire dans le développement : les ingénieurs logiciels sont à l’abri de ce phénomène, du moins pour l’instant.

Article en collaboration avec Are We Europe.

Illustration : Eddie Stok