Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Système de contrôle d'automatisation

Automatiser le développement de logiciels et accélérer l'innovation

Le développement de logiciels traditionnels est lent. C'est juste pour repenser.

Il y a près de trois ans, Satya Nadella de Microsoft a déclaré que "chaque entreprise sera une entreprise de logiciels". Aujourd'hui, le marché mondial des logiciels de 500 milliards de dollars est en passe de doubler pour atteindre 1 000 milliards de dollars d'ici 2030.

J.P. Morgan est enregistré comme ayant 40 000 ingénieurs en logiciel (plus qu'Alphabet) dans son dernier dossier. Toutes les grandes entreprises se précipitent pour embaucher des ingénieurs afin de surpasser leurs concurrents. Le gros problème est que le développement de logiciels traditionnels est lent, fragmenté et inutile.

Par exemple, chaque semaine, l'ingénieur logiciel moyen passera 4 heures à attendre la fin des tests, 3,5 heures à attendre les versions et 3 heures à la gestion de l'environnement - plus d'un quart de leur semaine de travail ne créant rien de valeur. Lorsque vous considérez que les ingénieurs sont souvent les personnes les mieux payées dans les organisations, c'est clairement un gros problème. Cependant, les choses changent.

L'une des principales plateformes de développement, CircleCI, a fait le pari que l'IA et l'automatisation seraient la clé pour accélérer l'innovation logicielle et libérer les ingénieurs pour effectuer un travail important. Au cours de la dernière année, la société a introduit un certain nombre d'améliorations en matière d'automatisation et d'apprentissage automatique qui ont réduit de 50 % le temps d'attente des ingénieurs. C'est l'une des nombreuses raisons pour lesquelles plus de 300 000 développeurs, dont ceux de Facebook, Spotify, GoPro, InstaCart et bien d'autres, se sont tournés vers CircleCI pour aller plus vite.

À la tête de l'entreprise, Jim Rose - un fondateur à six reprises avec des investissements passés de Google Ventures, Foundation Capital et Marc Andreessen. Depuis qu'elle a rejoint CircleCI il y a un peu plus de quatre ans, Rose a augmenté ses revenus de plus de 450 % et a fait de l'entreprise une entité vraiment passionnante.

Souhaitant en savoir plus sur l'automatisation du développement de logiciels et l'accélération de l'innovation, Information Age s'est entretenu avec Rose à ce sujet.

Quel est l'état actuel du marché des logiciels ?

À l'heure actuelle, de nombreuses entreprises et personnes effectuent manuellement différents processus. Lorsque vous pensez au processus de transformation numérique, il s'agit vraiment d'essayer de favoriser une équipe de développement de logiciels.

L'une consiste à extraire les logiciels des centres de données sur site et à les intégrer dans des environnements cloud natifs, où vous pouvez accéder instantanément au calcul.

La seconde est que les logiciels, traditionnellement ou dans de nombreux cas, ont été considérés comme une ligne directrice ou un complément à l'activité principale. Maintenant, vous avez toutes sortes d'entreprises, des banques aux constructeurs automobiles en passant par les détaillants, qui réalisent toutes que le logiciel est au cœur de ce qu'elles font. Ils doivent donc déterminer ce qu'ils possèdent et ils doivent consolider leurs actifs et les intégrer en tant que norme.

Une fois que les entreprises ont cet accès instantané au calcul et qu'elles ont mis en place des structures dans lesquelles les développeurs peuvent travailler, ce qui se passe entre les deux aujourd'hui est généralement une sorte de méli-mélo de plates-formes et de processus différents.

Dans la plupart des cas, vous avez de très longs processus de publication de logiciels en cascade qui comportent de nombreuses étapes manuelles, puis de nombreux scripts manuels. Dans certains cas, pour les magasins plus avancés, ils peuvent disposer de la première génération de solutions d'automatisation, mais à mesure que les équipes accélèrent, celles-ci commencent à se rompre.

Et maintenant, c'est là que nous entrons et aidons les entreprises à naviguer. Au fur et à mesure que leurs équipes logicielles accélèrent, ils construisent plus de logiciels et essaient de le faire plus rapidement ; afin d'être à la fois réactif aux opportunités du marché, mais également réactif aux changements négatifs potentiels. Les entreprises ont juste besoin de repenser complètement la façon dont tous ces éléments sont assemblés.

Cette vitesse est-elle le principal obstacle au développement de logiciels ?

Les entreprises et les équipes de développement tentent d'accélérer à mesure que le marché s'accélère. Ils essaient de comprendre comment travailler rapidement afin de saisir les opportunités.

La seule façon d'y arriver est d'automatiser vraiment toutes les étapes qui ne nécessitent pas nécessairement une intervention humaine, car au lieu de le faire en quelques minutes, heures et jours, vous pouvez le faire en quelques secondes.

À mesure que les équipes s'accélèrent et que le logiciel est votre vitrine principale pour votre client, vous devez vous assurer que les niveaux de qualité sont élevés ; vous devez vous assurer qu'il ne plante pas ou que vous n'avez pas de failles de sécurité, par exemple.

Ainsi, lorsque vous pensez à l'agilité, il s'agit d'essayer de devenir plus agile, tant du point de vue de la qualité que du point de vue de la vitesse.

Aux États-Unis, tout est une question de vitesse, mais en allant plus vite, en intégrant de plus petits morceaux et en étant capable de publier des logiciels de manière plus cohérente, votre logiciel s'améliore de manière inhérente. Toutes ces craintes liées au déploiement disparaissent lorsque vous le faites cinq, huit ou 15 fois par semaine, et dans certains cas, nous avons des clients qui le font 100 fois par jour.

Le déploiement devient un non-problème.

Du côté de la qualité, l'un des gros problèmes du développement logiciel dans le passé était que si vous ne publiiez qu'une fois par trimestre, vous avez vraiment du mal à vous assurer que tous les changements que vous introduisez dans votre application fonctionnent réellement ensemble. Souvent, vous voyez des entreprises faire une version big bang, puis après avoir fait une version big bang, elles passent les 60, 90 jours suivants à essayer de réparer toutes les choses qui ont régressé et cassé. Dans cette méthode, votre cycle logiciel ralentit, mais la qualité de l'application elle-même en souffre également.

D'un point de vue agile, c'est ce que les gens essaient d'aborder.

Comment une organisation peut-elle évoluer pour accueillir, soutenir et favoriser les équipes de développement de logiciels ?

Il existe plusieurs façons.

La première est que les développeurs sont difficiles à embaucher et vous voulez donc vous assurer que tout le temps passé du point de vue du développement est consacré à la création de votre logiciel spécial, quel qu'il soit; si vous êtes une banque, créez une excellente application bancaire, si vous êtes une application de commerce électronique, créez une très bonne application de commerce électronique. Je pense que l'un des grands domaines dans lesquels les gens ont sous-investi est que les développeurs de logiciels ont historiquement construit des choses. C'est ce qu'ils font, ils créent des logiciels. Le cycle de développement a donc été sous-investi du point de vue des applications tierces.

Il y a juste des choses comme, par exemple, tester l'automatisation et l'infrastructure de livraison continue que les équipes ne devraient pas avoir à construire par elles-mêmes. Vous feriez bien mieux de l'acquérir auprès de quelqu'un d'autre qui se spécialise dans ce domaine afin que vous puissiez vous concentrer sur ce pour quoi vous êtes doué. Ce serait comme dire à quelqu'un qu'il doit construire une cafetière et lui donner un tas de tuyaux en cuivre, de la soudure et des vannes. Vous ne feriez jamais ça. Mais historiquement, le développement a été traité de cette façon. Il est donc essentiel de mettre en place les bons outils et plates-formes, d'un bout à l'autre de la pile, du centre de données jusqu'aux outils de planification.

Je pense que la deuxième partie est que dans un modèle de cascade traditionnel, le développement logiciel joue généralement le rôle de receveur, de sorte que l'application est définie beaucoup plus tôt dans le processus, puis au moment où l'équipe de développement l'obtient, un certain nombre de décisions ont été prises. cela peut ou peut ne pas fonctionner réellement et peut ou non être faisable ou facile à faire.

Il y a cette notion de décalage à gauche, qui tente de pousser le développement de plus en plus haut dans le cycle de planification afin que les préoccupations ou les besoins de l'équipe de développement soient pris en compte aussi bien dans la construction de l'application que dans sa livraison. Et puis, lorsque vous y réfléchissez d'un point de vue opérationnel, cela signifie que vous devez également réfléchir à la façon dont une application est exploitée beaucoup plus tôt dans le cycle de vie. Par exemple, si vous essayez de créer des applications cloud natives, vous devez les concevoir d'une manière très particulière, ce qui signifie que vous devez prendre cette décision et faire partie de ce processus beaucoup plus tôt.

Lorsque les équipes adoptent davantage de processus agiles axés sur les logiciels, vous vous retrouvez avec une triangulation des préoccupations. Vous avez les gens, les propriétaires d'entreprise et les chefs de produit qui possèdent pourquoi vous construisez quelque chose. Les architectes techniques et les développeurs de logiciels parlent vraiment de la façon dont vous le construisez. Et puis vous avez les opérateurs, ceux qui sont chargés de l'exécuter réellement, qui déterminent ce que vous exécutez réellement à la fin de tout ce processus. Il faut donc que tout le monde soit impliqué. Et cela peut être une transition difficile pour certaines entreprises.

Comment l'IA et l'automatisation peuvent-elles stimuler et améliorer l'innovation logicielle ?

Avec l'automatisation, vous pouvez automatiser des tâches à la fois prédéterminées et auto-apprenantes. Un exemple de cela pourrait être si chaque fois que vous essayez de publier un logiciel, vous devez effectuer un test tiers par rapport à un autre système de paiement tiers. Dans le passé, avec ces tâches, vous deviez embaucher une équipe d'assurance qualité qui essayait essentiellement de traiter les transactions et de tout faire manuellement, ce qui est incroyablement lent. C'est aussi incroyablement rempli d'erreurs et de complications.

Ce sont des exemples parfaits de tâches qui devraient être entièrement automatisées dans votre suite de tests - toutes ces choses que vous savez que vous allez faire encore et encore, vous devez automatiser ces tâches pour les rendre déterministes et prévisibles. Et puis finalement rapide.

Il existe des opportunités de prendre ces tâches répétitives pour lesquelles chaque minute passée par un développeur à faire ces choses encore et encore est une perte de temps et, très franchement, une perte d'argent.

Ainsi, lorsque vous regardez l'IA et les logiciels en cours de construction, au lieu de penser à pousser un logiciel déterministe prédictif, ce que vous faites, c'est pousser un modèle. Et le modèle est un bac à sable de notions préconçues sur la façon dont quelque chose pourrait fonctionner, puis au fur et à mesure que les gens le traversent et que des tests sont exécutés, le modèle change et évolue à mesure qu'il en apprend davantage sur la façon dont les choses fonctionnent ou non. travail. Cela met une pression incroyable sur le système de test.

Lorsque vous pensez à certains des faux pas de l'IA lorsque vous avez des situations où il y a un parti pris inconscient intégré à l'IA, où l'IA se déchaîne et commence à bloquer les gens hors de certaines applications, ou ferme les choses, ce sont toutes des situations où d'un perspective de test qui sont difficiles.

Cela devient de plus en plus compliqué, mais cela devient aussi beaucoup, beaucoup plus rapide et réactif. Vous ne verrez donc que l'inclusion de l'IA et de l'apprentissage automatique dans le développement de logiciels pour continuer à augmenter. Mais maintenant, vous devez disposer de tous les frameworks nécessaires pour pouvoir tester tous ces changements.


Système de contrôle d'automatisation

  1. Qu'est-ce qu'un rédacteur de service automobile et que fait-il ?
  2. Conception et développement d'un robot d'inspection à faible coût
  3. SABIC et Nottingham Spirk s'associent pour accélérer le développement de l'innovation
  4. L'automatisation intelligente des bâtiments et l'avenir du développement immobilier dans les villes
  5. Seegrid crée le groupe de recherche et développement « Blue Labs »
  6. AMRC stimule l'innovation dans la technologie et l'économie circulaire
  7. ABB Robotics :Innovation technologique et R&D robotique
  8. Bright Machines lance le matériel et les logiciels Microfactory
  9. Logiciel de gestion des stocks :fonctionnalités et avantages