Connect with us

Technologie

L’art de développer des clients heureux

Published

on


Bien que les opinions des experts de l’industrie tendent à varier, il ya un consensus croissant sur ce qui constitue le développement de logiciels modernes, et quelques thèmes communs ont émergé dans les conversations Computer Weekly avait lors de la discussion sur le sujet.

Pour Mark Holt, directeur de la technologie chez Trainline, l’histoire du développement de logiciels a été de fournir des outils de programmation qui offrent des niveaux d’abstraction de plus en plus élevés. Un logiciel de plus en plus puissant n’est plus qu’un téléchargement. « Une base de données était autrefois une grande chose effrayante avec un accès restreint – maintenant vous pouvez télécharger 15 bases de données à partir d’Internet », dit-il.

Bola Rotibi, directeur de recherche chez CCS Insight, définit le développement de logiciels modernes comme la tâche de créer des applications cloud-native, cloud-first et multicloud. « Il s’agit également d’adopter des données sur les données et d’utiliser l’intelligence artificielle [AI] et l’apprentissage automatique », dit-elle.

Mais le développement logiciel moderne est aussi une question de réutilisation du code granulaire et d’outils à faible codage.

Ai transférant la programmation vers les données

En dehors de tout ce qui concerne le cloud, l’accent a été mis sur le modèle de base qui sous-tend un système logiciel, afin de refléter l’importance des données. L’IA représente le summum de ce modèle basé sur les données pour les architectures d’applications. L’IA est « programmée » en la formant à l’aide de données d’échantillons; il peut alors prendre des décisions pour lui-même en utilisant des données du monde réel. Plus les données de formation sont bonnes, plus l’IA est susceptible de prendre la bonne décision lorsqu’elle est présentée avec un jeu de données qu’elle n’a jamais rencontré auparavant.

En regardant le rôle de l’IA dans le développement de logiciels, il ya eu beaucoup de discussions sur le web sur OpenAI GPT-3, une nouvelle IA pour le traitement du texte. Ses concepteurs dis-le fournit une interface générale « texte, texte », qui peut fonctionner sur n’importe quelle tâche de langue anglaise. En juin 2020, OpenAI a lancé une interface de programmation d’applications (API) pour GPT-3. Dans un billet de blog décrivant l’algorithme, OpenAI a déclaré: « Compte tenu de toute invite de texte, l’API va retourner une finition de texte, en essayant de correspondre au modèle que vous lui avez donné. Vous pouvez le « programmer » en lui montrant quelques exemples de ce que vous aimeriez qu’il fasse; son succès varie généralement en fonction de la complexité de la tâche. L’API vous permet également d’affiner vos performances sur des tâches spécifiques en vous formant sur un jeu de données (petit ou grand) d’exemples que vous fournissez, ou en apprenant des commentaires humains fournis par les utilisateurs ou les labelers.

En effet, la programmation gpt-3 implique de lui montrer quelques exemples; il figure alors tout le reste pour lui-même.

Le développeur de logiciels Twilio Miguel Grinberg a récemment téléchargé un exemple de la façon dont il a utilisé GPT-3 et le cadre Flack pour construire un chatbot Twilio à l’aide de Python. Ce qui est intrigant au sujet de l’application, c’est que les étapes qu’il décrit, qui impliquent un code Python assez basique, invoquent en fait l’un des moteurs d’IA les plus puissants qui existe, pour fournir des réponses humaines à des questions aléatoires.

Pourquoi s’arrêter à produire des réponses en anglais? Certains commentateurs sur le web ont utilisé GPT-3 pour écrire des programmes. Crowdbotics est l’une des entreprises qui voit GPT-3 comme révolutionnaire pour le développement de logiciels. Dans un récent billet de blog, l’entreprise a écrit : « Nous pensons que l’émergence d’interfaces de langage naturel de haute qualité aura un impact transformateur sur la plupart des outils technologiques utilisés par les humains. Toute entreprise technologique ayant un produit qui contient des interfaces utilisateur devra trouver une stratégie pour la façon dont gpt-3 affectera son activité ou sera supplantée par des outils qui utilisent le langage de manière plus intelligente.

Sri Shivananda, directeur de la technologie chez PayPal, croit que l’IA pourrait être formée pour créer certaines applications. Le code est fait de blocs de construction, qui peuvent être construits pour fabriquer de grands systèmes complexes. En tant que tel, un programmeur peut écrire un script pour accélérer une tâche répétitive. Cela peut être amélioré dans une application simple. Finalement, il pourrait devenir un système de paiement. Au bas de la pile de logiciels, il y aura une base de données et un système d’exploitation. « L’IA peut aider au codage », dit Shivananda. « Vous pouvez créer des connaissances en code et en logique dynamique, mais l’écriture de code basée sur des règles ne peut aller jusqu’à présent. »

Bien que certains codes soient écrits par AI, la programmation a des niveaux de complexité différents, ce qui signifie que l’IA peut être mieux adaptée à certaines tâches que d’autres. Les processeurs de texte, par exemple, peuvent corriger les phrases intelligemment. « Tout processeur de document offre déjà beaucoup de vérification de grammaire de base », dit Shivananda. Le traitement de texte lit les phrases et applique les règles de grammaire. La même technique est utilisée dans les éditeurs de programmation et les environnements de développement interactifs pour corriger la syntaxe.

Une telle vérification basée sur des règles existe depuis que les programmeurs ont commencé à utiliser des compilateurs et des langages de programmation pour développer des applications. Les compilateurs et les outils d’analyse de code statique vérifient efficacement que les lignes de code sont construites au bon format.

Mais Boris Paskalev, PDG et co-fondateur de DeepCode, déclare : « Les compilateurs et l’analyse de code sont loin d’être parfaits. Ils sont finalement construits et conçus pour attraper et prévenir des problèmes spécifiques qui font partie de la conception d’un langage donné, ainsi que des éléments de la connaissance des architectes et des développeurs de construire ces systèmes.

Paskalev dit bugs non-trivial et les questions qui existent dans le développement de logiciels sont liés à la complexité ou l’ambiguïté du langage de programmation utilisé par le développeur de logiciels. Ces nuances sont couvertes par les compilateurs de code ou les outils d’analyse de code existants. « Dans de tels cas, l’IA et la communauté mondiale du développement viennent en apprenant automatiquement des centaines de millions de bogues déjà résolus par les développeurs à travers le monde et en empêchant/en alertant tous les développeurs au cas où ils alevaient les mêmes problèmes ou des problèmes similaires », explique Paskalev.

Il affirme que le système de DeepCode a récemment été utilisé pour identifier un problème dans un système intégré complexe pour les moteurs, où « les spécialistes souffraient depuis des mois à la recherche d’un problème grave ». Paskalev dit système DeepCode, qui est formé sur des millions de bugs que d’autres développeurs ont déjà fixé, a été appliqué au système intégré, et identifié le problème « en quelques secondes ».

Les consommateurs ont pris l’habitude de voir des produits connexes et des recommandations lorsqu’ils font leurs achats en ligne. L’idée d’avoir un site de commerce électronique suggère que les gens qui ont acheté un jouet à piles particulier ont également acheté des piles AA, peuvent et doivent être appliquées à la programmation.

La règle de ne jamais réinventer la roue signifie que la programmation logicielle s’appuie fortement sur les composants pré-construits, les bibliothèques de logiciels et, plus récemment, les microservices, pour permettre aux programmeurs d’ajouter rapidement de nouvelles fonctionnalités à leurs applications. Grâce, en partie, au succès de l’open source, les programmeurs du monde entier sont à la fois des consommateurs de code open source et contribuent au code, en trouvant de nouvelles façons de faire les choses. « l’open source est une voie à double sens. Vous contribuez et partagez comme un réseau social », explique Shivananda.

Les programmeurs ont toujours dû faire face à une courbe d’apprentissage pour maîtriser une nouvelle bibliothèque de programmation. Mais à mesure que les systèmes sont devenus plus complexes, l’ensemble des API, des composants et des microservices disponibles pour réaliser une tâche de programmation donnée s’est étendu au-delà de la capacité de tout être humain à comprendre pleinement. Crowdbotics dit GPT-3 peut intelligemment recommander des paquets de code open source pour résoudre les problèmes de développement. Une autre utilisation possible est de traiter une spécification formelle. En tant qu’assistant de programmation, il peut même être possible pour une IA telle que GPT-3 de vérifier que le code qu’un programmeur humain crée est conforme à la spécification formelle.

Selon Paskalev, lors de l’utilisation de l’apprentissage automatique pour capturer toute logique sémantique et les interactions possibles, les transitions et les constructions dans le code, une IA bien formée n’aura aucun problème à expliquer ce que le programmeur essaie de faire. AI offre également aux programmeurs le potentiel d’aplatir la courbe d’apprentissage en s’appuyant sur la sagesse des masses pour déduire quelle tâche le programmeur essaie d’atteindre, et de recommander les approches les plus populaires que d’autres ont pris.

« Nous avons déjà vu que travailler d’une manière plus localisée/sémantique, mais cela s’étendra davantage vers la logique d’entreprise et une portée architecturale plus large », explique M. Paskalev. « Cette expansion nécessitera des ensembles de données et une puissance de calcul beaucoup plus importants qu’aujourd’hui, ainsi que de nouveaux modèles d’IA qui se nourrissent des modèles et des systèmes d’IA existants en tant que points de données. J’appelle cela une IA d’IA, encapsulant diverses techniques d’IA, représentations, modèles et jeux de données. C’est à ce moment-là que nous nous rapprochons de l’IA réelle et que nous nous éloignons de l’intelligence la plupart du temps augmentée dont nous bénéficions aujourd’hui.

L’IA influencera inévitablement les outils de développement de logiciels, en soutenant le débogage et en aidant les développeurs à écrire rapidement du code propre en utilisant les bibliothèques de programmation les plus appropriées disponibles sur Internet. Il est difficile de prédire si GPT-3, ou quelque chose comme ça, remplacera le codage à la main, mais les outils à faible code gagnent en popularité, parce qu’ils abaissent la barrière technique à l’entrée, de sorte que les gens de l’entreprise peuvent écrire des applications.

Mais pour Holt de Trainline, bien que beaucoup de ces outils sont parfaits pour la construction d’une simple application de style « onjou mond » que les programmeurs utilisent souvent pour apprendre les bases d’un nouveau langage de développement logiciel, combien peuvent travailler à l’échelle de l’entreprise?

« a meilleure ligne de code est celle que vous n’avez pas à écrire, mais il ya un danger. Il faut limiter l’utilisation de la dernière chose », dit-il.

Il ya, par exemple, de nombreuses bibliothèques JavaScript qui vont et viennent à la mode. Comme Holt points out, le risque pour une entreprise est que trouver des développeurs avec le savoir-faire sera beaucoup plus difficile une fois que la bibliothèque n’est plus à la mode. Il est plus important de se concentrer sur l’objectif final, et pas nécessairement obtenir trop captivé dans la technologie pour l’atteindre. « Optimisez vos outillages, vos personnes et vos processus pour créer la meilleure expérience client », dit-il.

Indépendamment de la technologie sous-jacente, c’est peut-être l’objectif principal d’un développeur de logiciels moderne – le développement de logiciels modernes est de construire des applications qui offrent la meilleure expérience client possible.

Click to comment

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Trending