L’usine logicielle moderne : l’usine de demain (3/3)

Ludovic Yol
7 min readOct 13, 2022

Introduction

En tant que responsable de la plateforme de l’entreprise Alliance4U, j’ai été amené à préparer un webinar sur les usines logicielles. Afin de partager cette connaissance, j’ai décidé de découper le webinar en articles et les publier sur mon Medium. Vous pouvez trouver l’article précédent ci-dessous.

Dans le précédent article, nous avions fait un état des lieux sur les usines logicielles contemporaines. Nous avions conclu que l’usine logicielle moderne devait être agile, sécurisée, favoriser l’automatisation et qu’elle devait permettre de valoriser la donnée générée. Ce dernier point est déjà une réalité chez les plus innovants, mais peut être de l’ordre du futur pour beaucoup d’entreprises, et c’est ce qu’on va voir aujourd’hui. Cet article est le dernier de la série et je vous propose d’imaginer ensemble l’usine logicielle de demain !

Si l’usine logicielle moderne est déjà une réalité chez la plupart des entreprises du monde de la tech, et bien que les technologies aient bousculé le monde du numérique ces dix dernières années, ce n’est que le début !

La suite de l’article est une projection. Je vous y partage ma vision et je serai heureux d’en débattre en commentaires !

Non localisée / Cloud

La situation sanitaire de 2020 a accéléré la transition vers le cloud, avec notamment la possibilité de collaborer rapidement et efficacement depuis chez soi, ou avec des développeurs du monde entier. Les startups se construisent avec les experts métiers et techniques les plus aptes, quel que soit leur lieu de vie. Les développeurs nomades, ou full remote, sont de plus en plus fréquents. L’équilibre entre la vie professionnelle et personnelle est devenu un critère primordial, qu’il faut prendre en compte dans le choix des outils et l’organisation globale de l’entreprise.

Si vous faites parti des frileux qui pensent que l’impact du télétravail sur les entreprises est négatif, sachez que le Conseil National de la Productivité, en s’appuyant sur des données de la banque de France, a conclu un lien de corrélation entre le pourcentage de personnes en télétravail et le gain de productivité globale. D’ici à 20 ans, le passage à 25% de télétravailleurs pourrait faire gagner de 5% à 9% de productivité à l’échelle nationale.

L’usine logicielle ne doit pas être un frein à ces nouveaux besoins de télétravail et de mobilité. Souvent internalisées par les entreprises et rendues accessibles via un VPN, les usines logicielles ont tendance à migrer vers le cloud. Que ce soit en déployant soi-même ses outils chez un hébergeur, ou en utilisant des solutions clé-en-main, l’usine doit permettre le travail collaboratif à distance de façon fluide, avec le minimum de frictions possibles.

En bref, demain, l’usine logicielle sera accessible partout et se devra de répondre aux attentes des développeurs de demain. L’usine logicielle de demain devra être flexible et s’adapter à son projet et ses collaborateurs, pas l’inverse !

Centralisée

Les usines logicielles doivent se simplifier. Aujourd’hui, elles sont toutes composées d’une multitude d’outils (Project Management, Source Code, CI/CD, Environment, CI Tools, etc) qui sont assemblés dans une chaîne faite maison dans la plupart des cas. La maintenance d’une usine logicielle consomme du temps, de l’énergie et de l’argent. L’usine peut rapidement se complexifier et devenir un casse tête à gérer et à maintenir.

Cette complexité commence à atteindre ses limites et l’enjeu se résume à un mantra : Keep It Simple !

Demain, les usines logicielles les plus abouties seront celles basées sur une source unique de donnée, avec une approche centralisée, proposant une chaîne DevSecOps complète, avec une consommation de ressources réduite pour maintenir le système.

Les poids lourds du marché commencent déjà à proposer leurs solutions.

Prenons comme exemple Atlassian, l’entreprise propose une suite logicielle pour la gestion de projets (Jira) et la documentation (Confluence), mais cela ne s’arrête pas là ! Dès 2010, Atlassian a commencé son expansion en rachetant BitBucket pour la gestion du code source puis OpsGenie pour le monitoring. Elle intègre par la suite Percept.AI et Chartio, respectivement, pour fluidifier la gestion du support et explorer la donnée. A travers cette démarche, Atlassian vise clairement à construire une offre complète pour gérer son usine logicielle de bout-en-bout.

Ce ne sont évidemment pas les seuls. Azure propose sa chaîne Azure DevOps avec un board pour le suivi de projet, un repository de code et un outil de gestion d’artifacts. Même des outils Open Source, comme Gitlab, élargissent leurs périmètres fonctionnels pour couvrir toute la chaîne.

Le seul frein aujourd’hui réside dans l’uniformité de performance dans tous les domaines : Atlassian est leader du marché sur la gestion de projet agile avec son outil Jira, mais Gitlab reste la meilleure solution de gestion de sources. Les entreprises font donc le choix de multiplier les outils. Avec le temps, les solutions seront de plus en plus matures. A quand l’outil unique et ultime, pour tout faire ? Affaire à suivre.

No Code

Le No Code, ou Low Code, est un mode de développement logiciel qui masque la complexité du code source de l’application. On vient développer une application sans code avec différentes techniques : diagrammes, workflow, interfaces graphiques, etc.

Depuis déjà plusieurs années, il est possible de développer des sites web sans coder. Selon w3techs.com, 43,3% des sites Web dans le monde sont construits avec WordPress. Des plugins, comme Divi ou Elementor, proposent des outils clé-en-main pour permettre à des designers de créer des pages complexes et entièrement customisées sans écrire une ligne de code. Déjà bien présent dans le monde de la Data, et notamment dans les ETLs (Extract, Transform, Load) qui se chargent de transformer la donnée, la tendance est de plus en plus présente dans le monde de la tech ! Cependant, il restait difficile de gérer des cas d’usages complexes avec des outils No/Low Code.

Ces dernières années, la tendance a explosé dans le domaine des applications mobiles, avec des outils comme Bubble. Un autre outil, Stage, propose une interface ergonomique pour créer des applications via Drag & Drop, ainsi que des worflows pour gérer les cas d’usages complexes. Les outils de designer, comme Figma, travaillent activement sur leur module d’export afin de transformer un ensemble de maquettes en application entièrement fonctionnelle.

L’usine logicielle de demain devra donc prendre en compte cette transformation et intégrer ces nouvelles méthodes de développement.

Intelligente

Il est quasi-impossible d’évoquer le futur sans parler d’intelligence artificielle. Depuis déjà de nombreuses années, l’informatique et les robots nous aident au quotidien pour gérer les tâches répétitives et ennuyeuses. Ces dernières années, ces algorithmes deviennent de plus en plus intelligents afin d’améliorer notre productivité et accélérer le processus de création, au point de remplacer une partie de notre réflexion. Récemment, des projets comme MidJourney viennent même bousculer les domaines artistiques avec des propositions plus que convaincantes.

Le monde du développement logiciel ne fait pas exception.

En 2021, OpenAI propose la version beta de Codex, une intelligence artificielle qui transforme le langage naturel en code. Demandez à Codex de chercher un élément dans un tableau et l’outil écrira le code à votre place ! L’idée n’est pas de remplacer le développeur mais de l’assister pour gagner en productivité. Bien que l’intérêt reste dispensable à ce jour, qui sait de quoi demain sera fait ?

Un autre domaine de l’IA, en pleine croissance, est celui du testing et tout particulièrement son rôle dans l’automatisation des tests. Nous savons aujourd’hui automatiser tous types de tests : unitaires, intégration, charge et même front-end. Cependant, les tests coûtent chers à exécuter, mais aussi à maintenir. Il n’est pas toujours pertinents de lancer tous nos tests à chaque incrément. Les tests fonctionnels peuvent être réalisés par des robots. On voit même émerger des algorithmes qui viennent tester l’ergonomie d’une interface pour en améliorer l’accessibilité et le succès.

Certains parleront d’analyse statistique poussée plus que d’IA, mais les outils de monitoring peuvent, via du machine learning, apprendre à détecter les erreurs en production avant leurs apparitions. Cela est rendu possible grâce à une analyse intelligente et poussée de la donnée et permet de lever une alerte à l’équipe de développement pour enquêter sur le sujet. Le dicton dit “il vaut mieux prévenir que guérir” !

En somme, l’intelligence artificielle va révolutionner la manière dont nous allons concevoir, développer, tester, déployer et monitorer nos applications. L’avenir est prometteur, et il faut s’y préparer !

Pour conclure, je vous propose de réfléchir à la question suivante. Envisagez-vous un avenir dans lequel l’usine logicielle est complètement déportée dans le cloud, centralisée chez un fournisseur, avec des applications no-codées à l’aide d’intelligence artificielle ? Tout porte à croire que ce sera le cas, le monde nous pousse dans cette direction. Les entreprises les plus prospères ont déjà entamé cette transformation. Et plus tôt ce virage sera abordé, moins il y aura de chemin à faire !

En tout cas, je serai ravi de débattre de cette vision dans les commentaires. Cela se passe en bas de l’article ! 👇

Cet article conclu ma série d’article sur l‘usine logicielle moderne. J’espère que le contenu vous a plu et que vous avez appris des choses ! Merci d’avoir lu jusqu’au bout. N’hésitez pas à partager et à liker l’article ! Si vous souhaitez prendre contact avec moi, vous pouvez me contacter via LinkedIn ✌

--

--

Ludovic Yol

Mon objectif : Booster l’innovation au sein du groupe Alliance4U 🚀 Je suis responsable de la Plateforme de développement et du Lab innovation de Alliance4U ✌