Connect with us

Technologie

Portrait du développeur de logiciels en tant qu’artiste

Published

on


Création d’applications, d’ingénierie de données et de services sur pc, appareils mobiles, colonne vertébrale du cloud et dans toute l’Internet des objets (IoT), le développeur est l’artiste, le clavier est la palette de couleurs et la ligne de commande est le chevalet et la toile du peintre.

L’art est classé dans un certain nombre de genres, tels que classique, abstrait, post-moderne et renaissance. De même, la programmation logicielle se divise dans divers domaines, catégories et sous-genres, tels que la chute d’eau, agile, mêlée ou en couple, le développement rapide d’applications (RAD) et maintenant à faible code et sans code (pour les gens d’affaires) dans le spectre plus large de la création de code.

En allant plus loin, certaines personnes classent différents types de programmation par les différents types de langage, tels que déclaratif, concomitant, flux de données, fonctionnel, et ainsi de suite. D’autres les séparent par appareil cible comme bureau, mobile, le développement de logiciels de firmware intégrés.

Pour ajouter à la confusion sur la façon de catégoriser le développement de logiciels, les pratiques de développement modernes sont souvent associées à des approches natifs du cloud, du cloud et du multicloud.

Il y a ceux qui diront que le développement de logiciels modernes embrasse la perspicacité de données et de big data et fait l’utilisation inhérente de l’intelligence artificielle (IA) et de l’apprentissage automatique. Computer Weekly a demandé à un certain nombre d’experts de l’industrie de définir ce que signifie être un développeur de logiciels moderne.

Il existe une école de pensée qui classe le développement de logiciels modernes comme étant principalement centré sur les services et l’évolutivité sur le Web, ce qui permet au développeur de créer du code capable d’être déployé sur les piliers des services connectés. D’autres développeurs de logiciels s’efforcent de construire des composants et des cadres réutilisables qui constituent les éléments fondamentaux des nouvelles applications.

Aujourd’hui, il existe un segment spécialisé du marché des logiciels d’entreprise qui se définit comme des spécialistes de la modernisation des applications. Souvent axée sur la migration des applications héritées, mainframe et pré-cloud, la poussée des fournisseurs d’outils logiciels dans cet espace est vers les microservices, les machines virtuelles, les conteneurs et les Kubernetes.

Une architecture logicielle moderne

Volterra fournit une plate-forme cloud distribuée pour déployer, connecter, sécuriser et exploiter des applications et des données sur les sites multinus et bords. Son PDG et fondateur, Ankur Singla, pense que les microservices auront un rôle de plus en plus important à jouer dans la forme future immédiate du développement d’applications logicielles. Singla dit que la poussée observée avec l’adoption kubernetes et une sélection d’autres facteurs sont les raisons microservices deviendra plus grand public en 2020 et après.

« Les microservices font partie de l’ADN de Kubernetes – c’est la principale méthode par laquelle les applications sont développées et déployées lors de l’utilisation de Kubernetes », explique-t-il. « Avec l’essor de Kubernetes, les acteurs de la technologie publient des outils et des cadres open source qui répondent aux défis du microservice et, en fin de compte, permettent à d’autres organisations de les adopter correctement. »

À titre d’exemple, Singla dit que Microsoft a récemment lancé le projet dapr open source. Microsoft décrit Dapr comme un runtime portable, axé sur les événements, qui permet aux développeurs de créer facilement des applications résistantes, apatrides et apatrides qui s’exécutent sur le cloud et le bord et adoptent la diversité des langues et des cadres de développeurs.  M. Singla indique qu’un certain nombre de startups intensifient également leurs efforts pour résoudre ces problèmes.

Écrire une fois, déployer sur n’importe quel appareil

Selon Nginx, société de serveurs web open source, une application moderne est une application qui prend en charge plusieurs clients – que le client soit une interface utilisateur basée sur la bibliothèque React JavaScript, une application mobile fonctionnant sur Android ou iOS, ou une application en aval qui se connecte à une application back-end via une interface de programmation d’application (API).

« On s’attend à ce que les applications modernes aient un nombre indéfini de clients consommant les données et les services qu’ils fournissent, » dit Chris Stetson, architecte en chef et directeur principal de l’ingénierie de microservices chez Nginx. « Une application moderne fournit une API pour accéder à ces données et à ces services. L’API est cohérente, plutôt que sur mesure pour différents clients qui accèdent à l’application. L’API est disponible sur HTTP(S) et donne accès à toutes les fonctionnalités et fonctionnalités disponibles via l’interface utilisateur graphique (GUI), ou une interface de ligne de commande (CLI). »

L’examen de la capacité des entreprises à l’échelle du Web à développer de nouveaux produits et services alimentés par des logiciels suggère que le développement moderne est caractérisé par un degré élevé d’expérimentation et d’itération. Ce qu’on appelle l’informatique du vieux monde ne donne pas carte aux entreprises modernes qui veulent imiter le succès des géants du web. Cela signifie qu’il est maintenant nécessaire deles commentaires des clients et des utilisateurs dans le processus de développement logiciel, ce qui suggère que les applications sont créées avec l’expérience utilisateur (UX) sensibilité branchée sur leur ADN de base.

Les objectifs des pratiques modernes de développement de logiciels sont de plus en plus axés sur le temps à la valeur. Chris Bailey, architecte en chef des solutions cloud-natives, IBM Cloud Paks for Applications chez IBM, soutient que ces pratiques devraient non seulement se concentrer sur la capacité de fournir des logiciels rapidement, mais, surtout, elles doivent s’assurer que les logiciels offrent une réelle valeur utilisateur et commerciale.

Équipes multidisciplinaires

Bailey croit que les équipes de développement de logiciels doivent devenir multidisciplinaires et plus autonomes, réduisant ainsi les transferts et les dépendances à la planification des autres équipes. Il dit qu’ils devraient également adopter le développement axé sur le comportement (BDD) et le développement axé sur les tests (DDT) afin que les logiciels soient basés sur la satisfaction des besoins des utilisateurs et des exigences de qualité.

Bailey affirme que les équipes de développement de logiciels utilisent l’intégration continue pour augmenter la vitesse et s’assurer que la vérification continue de la qualité se produit dans le cadre du processus de développement. Il dit qu’ils ont également tendance à utiliser la livraison continue avec des capacités telles que les rejets de canaris afin de limiter les risques et de valider et d’appliquer continuellement la résilience.

Bailey croit que les pratiques modernes de développement de logiciels impliquent la construction de logiciels d’une manière qui rend le code facile à gérer. Cela signifie l’ajout de contrôles de santé, d’observabilité et de contrôles opérationnels cohérents, ce qui, dit-il, facilite la gestion et l’exploitation des applications une fois qu’elles sont en production.

Les pratiques de développement de logiciels vont de pair avec la gestion du changement et la diversité de la pensée d’une large base de personnes. Il fut un temps où le logiciel a été développé pour servir des fonctions commerciales génériques, le tout dans une seule application monolithique qui a couru sur un système central et pourrait être consulté via un terminal muet. De nos jours, l’architecture préférée pour les nouveaux projets de développement de logiciels est souvent fortement composantisée, où les blocs de construction individuels peuvent fonctionner sur différents serveurs, conteneurs ou même divisés sur différents nuages.

L’application frontale doit non seulement s’exécuter sur n’importe quel appareil, mais les développeurs sont encouragés à créer des interfaces utilisateur qui engagent les utilisateurs finaux. Du point de vue de l’utilisateur final, les applications avant et arrière doivent créer une bonne expérience utilisateur.

N’importe quelle entreprise peut assembler les meilleurs outils et services de développement, mais cela ne garantira pas nécessairement le succès, explique Catherine Wong, chef de produit et vice-présidente exécutive de l’ingénierie chez Domo, spécialisée dans les outils de business intelligence basées sur le cloud, la visualisation de données et l’intégration des données.

« Si c’était aussi simple, nous verrions beaucoup plus de startups réussir », dit-elle. Wong croit qu’il ya, bien sûr, une multitude de raisons pour lesquelles la construction et la mise à l’échelle des logiciels est si difficile. Bien que l’écriture de millions de lignes de code et de bits et d’octets distribués soient absolument importants, le succès exige un effort d’équipe.

« Pour la majorité d’entre nous, le développement de logiciels est un sport d’équip », dit-elle. « Nos équipes ont depuis longtemps des rôles bien définis, comme les ingénieurs et toutes leurs spécialisations, architectes, chefs de produit, fournisseurs de qualité, concepteurs, chefs de projet et rédacteurs techniques. Ce sont encore des fonctions pertinentes, mais la façon dont nous permettons la diversité de la pensée et de l’expérience, ainsi que la façon dont nous nous entraînons pour une empathie accrue et une meilleure communication entre l’équipe, est devenue plus critique que n’importe quel titre d’emploi.

Selon Wong, cet accent mis sur la diversité influence considérablement l’impact commercial du logiciel en cours de développement et, plus important encore, sur le plan humain, il étend les gestionnaires de projets et de produits pour cultiver un environnement d’inclusion, d’innovation et de croissance. « Au fil des ans, j’ai vu d’innombrables exemples de la façon dont l’art du développement de logiciels et les éléments humains de la diversité et de la collaboration sont ce qui différencie vraiment un produit et sa rapidité de réponse au marché », dit-elle.

Click to comment

Leave a Reply

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

Tendance