Industrialisation informatique : quelles difficultés pour réussir ?

Publicado: | Actualizado:

Impossible de nos jours de monter un projet sans se pencher sur la question de l'industrialisation informatique. Passage obligé pour presque toutes les startups modernes, elle permet de standardiser et d'automatiser la plupart des processus nécessaires au fonctionnement de l'entreprise ou du projet. Cela est valable pour tous les types de projets nécessitant un support informatique : site web, plateforme de commerce en ligne, application smartphone, mais aussi les projets les plus complexes tels que les applications décentralisées fonctionnant sur des blockchains. Qu'est-ce que l'industrialisation informatique, et comment réussir cette étape phare de l’industrialisation de projet ?

Impossible de nos jours de monter un projet sans se pencher sur la question de l'industrialisation informatique. Passage obligé pour presque toutes les startups modernes, elle permet de standardiser et d'automatiser la plupart des processus nécessaires au fonctionnement de l'entreprise ou du projet. Cela est valable pour tous les types de projets nécessitant un support informatique : site web, plateforme de commerce en ligne, application smartphone, mais aussi les projets les plus complexes tels que les applications décentralisées fonctionnant sur des blockchains. Qu'est-ce que l'industrialisation informatique, et comment réussir cette étape phare de l’industrialisation de projet ?

Qu'est-ce que l'industrialisation informatique ?

L'étape d'industrialisation informatique est la dernière à mettre en place avant le lancement définitif d'un projet en ligne. Le but de celle-ci est de rendre le projet ou l'entreprise la plus automatisée possible. Ce faisant, elle devient moins chronophage, plus rationnelle et de ce fait beaucoup plus rentable. Jusqu'ici, le développement pourrait être qualifié d'artisanal. Les développeurs travaillent le code petit à petit, en font des tests manuels, et ils adaptent de manière empirique la taille des serveurs et les corrections à apporter au logiciel. Puis vient enfin l'étape d'industrialisation. On pourra fournir de nombreuses instructions  (ou biais algorithmiques) aux ordinateurs pour cela.

Il faudra commencer logiquement par standardiser tous les formats et les processus, définir des conventions de codage, un langage et un cadre de travail commun pour tous les développeurs qui interviennent sur le projet. Cela facilitera leur travail et évitera les erreurs sur le long terme. Certains logiciels de framework permettent de facilement standardiser un cadre de travail. La standardisation permet, en deuxième lieu, d'automatiser la plupart des processus, notamment les modifications du code au fil de l'eau. La standardisation préalable facilitera énormément l'écriture des scripts d'automatisation.

Au fur et à mesure de l'évolution du projet, on adaptera alors l'infrastructure informatique, si besoin le nombre de hubs et les pipelines pour garantir la scalabilité. Si les tests sont eux aussi automatisés, on pourra élargir l'automatisation au déploiement de toutes les nouvelles fonctionnalités et applications une fois produites.

Le travail des développeurs ne s'arrête heureusement pas avec l'automatisation des processus de base, et il restera à écrire les scripts de tests en fonction du contexte et de l'utilisation du réseau et du système informatique. Certains outils logiciels permettent d'aider à créer ces tests avant de les automatiser. Ils devront majoritairement concerner la performance du système et surtout la sécurité.

L'industrialisation informatique implique une part de tâches passives après sa mise en route, principalement en ce qui concerne la surveillance et la maintenance. Si un système automatique peut facilement détecter des bugs ou certains actes de malveillance, il faudra garder un œil humain professionnel sur l'ensemble du système pour repérer les axes d'amélioration possibles. Par exemple, étendre les notifications en cas de problème aux membres de l'équipe qui en sont responsables, prévoir un calendrier de maintenance...

Différentes étapes sont mises en place pour industrialiser un processus et son système informatique :

  • Une analyse des processus informatiques qui sont en place,
  • Une définition des objectifs,
  • Un choix des outils,
  • La formation des équipes,
  • Un suivi régulier,
  • Une adaptation continue.

Projet IT vs projet Big Data : quelles sont les différences ?

Dans les grandes lignes, les projets Big Data et IT peuvent sembler similaires. Ils diffèrent cependant dans leur finalité et dans l'utilisation faite des données qu'ils manipulent.

Déjà, leurs objectifs divergent. Les projets IT visent à créer et mettre en service des applications et des logiciels, voire des structures informatiques complexes, et tous les processus qui en découlent comme la gestion des systèmes. À titre d'exemple, développer des sites web ou des applications pour smartphone, voire des réseaux sociaux (le développement reste côté IT tandis que la gestion sera plus orientée Data). Les projets Big Data, eux, ont pour but de collecter des données, les stocker, les traiter, sur des volumes conséquents pour en extraire des tendances, que l'on appelle des insights. Ces données sont ensuite utilisées pour améliorer le système (à nouveau côté IT), voire créer des modèles prédictifs ou de prise de décisions. Les projets Data cherchent donc à analyser des comportements d'utilisateurs, détecter des tendances, des risques potentiels, et servent à l'optimisation in fine des logiciels.

Concernant les données traitées, une grande différence apparaît lorsque l'on observe les volumes, vitesses et variétés de celles-ci. Par exemple, les projets IT traitent des volumes modérés et n'utilisent que les données nécessaires à leur activité d'amélioration et de gestion du système. La vitesse de traitement est relativement basse et demeure à échelle humaine, ce qui limite les investissements nécessaires en serveurs et calculateurs puissants. Bien souvent, l'analyse est faite par des humains. Du côté des projets Data, en revanche, la quantité de données traitées atteint bien souvent les Tera, voire les Petabytes. D'où la nécessité d'avoir un débit très élevé et une automatisation poussée pour structurer les bases de données. Celles-ci concernent toutes les données que l'on peut récolter, jusqu'au temps de passage d'un curseur sur un logo. L'analyse d'une telle quantité de data est bien entendu dévolue à des ordinateurs et des serveurs de très grande capacité, très onéreux. La solution se trouve peut-être dans la conception décentralisée, à la manière des blockchains, qui permet à tous les utilisateurs de faire partie d'un même réseau et donc de partager une partie de leurs ressources au bénéfice du bon fonctionnement des logiciels et de la structure informatique.

Les outils et technologies diffèrent aussi entre les deux familles de projets. Là où les projets IT utilisent souvent des serveurs classiques et des bases de données SQL, les Big Data préfèreront se tourner vers de la haute technologie dédiée au stockage et au traitement des quantités colossales de données telles que Hadoop et Spark. En dehors de ces aspects purement techniques, une dernière différence de taille existe entre les deux. Il s'agit simplement des compétences et profils des experts qui travaillent sur le projet, qui influenceront aussi le recrutement pour ces derniers. Ainsi, pour un projet IT, les entreprises auront à cœur de recruter des développeurs classiques, des administrateurs système, des chefs de projet IT... car les compétences requises concernent la gestion des systèmes informatiques et le développement classique de logiciels. Alors que le recrutement pour un projet Big Data se concentrera sur des profils de spécialistes : data engineers, data scientists, architectes data, voire des experts en apprentissage automatique et IA. De ce fait, les diplômes et formations recherchées seront différents. Là où les compagnies IT recruteront en sortie d'école informatique, les Big Data trouveront leurs futurs salariés en sortie de formations spécialisées data, MBA Data Science, ou ingénierie data. 

Les deux filières sont certes complémentaires et bénéficient d'un tronc de compétences commun, mais in fine la spécialisation est obligatoire tant les domaines couverts lors de ces formations sont denses.

BI

Big Data

Rôle

fournit de rapports pertinents

collecte, intègre, analyse

Sources

pioche les informations via équipements opérationnels de l’entreprise

cherche les données dans des environnements à la fois internes et externes

Types de données

données internes à l’entreprise

données à la fois structurées et non structurées

Utilisation

orienter les décisions des managers

prédire les tendances futures

Stockage

données sont rassemblées sur un serveur central

système de fichiers distribués.

Tableau comparatif IT vs Big Data

Les enjeux de l’industrialisation informatique

L’industrialisation informatique offre de nombreux avantages aux entreprises qui l’utilisent. Elle permet ainsi une meilleure efficacité et offre :

  • L’amélioration des offres de service et des produits,
  • Une garantie de qualité et de disponibilité des produits,
  • Un respect des délais et des budgets,
  • Une fluidité des échanges,
  • La capacité de mesurer les actions et de mettre en place les ajustements nécessaires
  • Une standardisation des services,
  • Une réduction des coûts,
  • Une productivité et une efficacité renforcée.

Lorsque l’industrialisation informatique est menée avec soin, elle offre donc de nombreux avantages à l’entreprise et à ses équipes dans différents domaines : productivité, maîtrise des coûts, efficacité des processus et valorisation du système de l’ensemble des informations.

Solutions pour accélérer l'industrialisation informatique

Bien qu'obligatoire, la phase d'industrialisation informatique n'est pas forcément longue et fastidieuse (même si elle présente des difficultés), dans la mesure où elle est bien organisée en amont et où certaines étapes importantes sont respectées. Voici quelques solutions d'industrialisation.

Comme nous l'avons dit plus haut, l'aspect le plus important de l'industrialisation Data ou IT est la gestion de projet. En utilisant les bons outils dès la conception du projet, il sera rapidement possible de passer à l'automatisation. Ces outils concernent surtout l'intégration logicielle et le déploiement continu, ainsi que les tests préliminaires à une mise en ligne définitive. Ces petits détails permettent, si on a eu soin d'y consacrer du temps dès le début, de mettre en place très rapidement des cycles courts et itératifs, tout en permettant aux développeurs de se consacrer à des ajustements simples et rapides en fonction des retours.

À ce sujet, dès la phase de test, il faudra veiller à recueillir tous les feedbacks des utilisateurs, de la version bêta à la version définitive, et leur apporter l'attention qu'ils méritent. Ajuster les logiciels aux utilisateurs avant la mise en ligne définitive peut faire gagner un temps précieux par la suite.

Mais le mot d'ordre à respecter à tout prix pour une industrialisation réussie, c'est la standardisation. Adopter des standards pour tout : la communication, les méthodes de travail, mais aussi les langages de codage, les plateformes de développement... Si deux développeurs peuvent arriver au même résultat sous Python et Java, la différence de langage de programmation pourra poser problème au moment de faire coexister les deux parties du code dans un seul. Penser à définir les standards dès le début du projet évite ce genre de déconvenues. Car reprogrammer une partie d'un logiciel est une étape longue dont toute entreprise se passerait volontiers.

Si le projet s'y prête, particulièrement les projets Data, l'utilisation d'outils de gestion de pipelines de données comme Kubeflow permet de combiner les phases de tests tout en déployant automatiquement sur les serveurs.

En tout état de cause, l'industrialisation d'un projet informatique est une aventure en soi, et doit être préparée bien en avance au travers de réunions auxquelles devront participer tous les acteurs, créatifs comme développeurs, afin de planifier un calendrier efficace.

À ce dernier sujet, planifier toutes les étapes de l'industrialisation avec les développeurs et codeurs peut aussi faire gagner un temps précieux, car en entreprise, toute tâche qui n'est pas soumise à une date butoir aura tendance à s'éterniser, au profit d'autres tâches moins importantes, menant à un risque important de désorganisation au sein des différents services de l'entreprise travaillant sur le projet.

Industrialisation de la donnée : un cas particulier

L’industrialisation des données est, à ce jour, un enjeu stratégique très important pour les entreprises. Le volume de plus en plus grand de données doit être pris en compte par les entreprises. Cela impacte :

  • la chaîne de valeur, 
  • la collecte 
  • l’exploitation,
  • le stockage,
  • la gouvernance.

Elle repose sur la mise en place d’architectures, d’outils et de processus qui permettront de gérer et exploiter les données de façon automatisée.

Il est très utile pour traiter de grands volumes de données de mettre en place l’industrialisation informatique. Et pour cela, deux Frameworks open source : Hadoop et Spark, sont devenus des standards.

Hadcoop est un outil de stockage. Il repose sur trois composants principaux : HDFS, MapReduce et YARN. Spark est, pour sa part, un moteur de traitement unifié. Il repose sur le concept de RDD (Resilient Distributed Datasets) et présente de nombreux avantages : performance, polyvalence, facilité de développement, APIs avancées.

Avec ses deux outils (principalement Spark), il sera possible d’utiliser les données plus rapidement et facilement.

Il est aussi indispensable que les données soient de grande qualité. Cela permet de garantir des analyses et des décisions bien choisies. Une bonne et efficace gouvernance a besoin d’une organisation dédiée présentant des rôles clairs et des processus formalisés. Cette industrialisation utilise les données. Il sera donc très important de sécuriser au mieux ces données. De nombreux outils pourront permettre cela (Apache Ranger, Cloudera Navigator) et pourront offrir une gestion centralisée, un contrôle soigné et une grande traçabilité. Disposer du cycle de vie des données est aussi important. Pour cela, on utilise le data lineage.

Il ne faut pas oublier que la gestion des métadonnées est particulièrement cruciale. Cela permettra de documenter et organiser les actifs de données.

N’oublions pas que l’industrialisation des données repose sur un écosystème technologique particulièrement riche et aussi décisif, tout comme le traitement en temps réel des flux de données.

L’Intelligence artificielle (et le Machine Learning) joue aussi un rôle important pour les données et leur utilisation. Industrialiser script ia est très intéressant. Il sera ainsi possible d’extraire automatiquement des insights prédictifs, de détecter des fraudes en temps réel, d’optimiser la dynamique des prix ou encore de prévoir la demande et la gestion des stocks.

Il ne faut pas oublier que l’industrialisation des données peut soulever des questions éthiques et réglementaires. Il sera indispensable de prendre en compte le RGPD (Règlement Général sur la Protection des Données).

Conclusion

L’industrialisation informatique correspond aux méthodes et pratiques qui automatisent les processus informatiques des entreprises. Cela concerne tous les secteurs (matières premières, vente…) mais est très utile pour les secteurs manufacturiers. Il est vrai alors que la répétition et la standardisation des tâches est alors très intéressante. Cette industrialisation informatique a de nombreux avantages : économies et efficacité opérationnelle. Elle est aussi très intéressante pour favoriser l’adaptation rapide face aux évolutions technologiques et aux différents besoins du marché. Elle permet encore de maintenir la compétitivité.