Compétences métiers

Mots‐clés: : intégration, DLM, DMP, gouvernance des données, visualisation, machine learning, IA

B4: Valoriser les actifs numériques en exploitant et valorisant les données dans des services numériques ; cartographiant les actifs numériques de l’organisation ; anticipant et gérant les changements des organisations ; mettant en œuvre une veille économique et technologique ; proposant des évolutions technologiques et métiers pour l’organisation et la communauté.

Niveau Hautement spécialisé:

  • Connaître les impacts et les apports du Machine Learning et de l’intelligence artificielle sur le système d’information de l’entreprise
  • Etre capable d’intégrer tous les processus de développement logiciel et de gestion du cycle de vie des données dans des projets complexes

Connaître les impacts et les apports du Machine Learning et de l’intelligence artificielle sur le système d’information de l’entreprise L’intégration et la maîtrise des technologies de Machine Learning (ML) et d’Intelligence Artificielle (IA) dans les systèmes d’information des entreprises marquent une étape significative dans l’évolution du monde des affaires moderne. Ces technologies ne se contentent pas de transformer la manière dont les entreprises fonctionnent et interagissent avec leurs clients ; elles redéfinissent également la prise de décision stratégique, l’efficacité opérationnelle et l’innovation produit. En tant qu’étudiante en informatique de gestion, j’ai pu approfondir ma compréhension et ma connaissance de ces sujets, notamment grâce à ma participation à la Conférence Data Science et IA à Belgrade. Cette expérience m’a offert des perspectives enrichissantes sur l’application pratique du ML et de l’IA dans un contexte professionnel.

Voici quelques exemples concrets qui illustrent la manière dont ces technologies révolutionnaires peuvent être mises en œuvre dans différents domaines d’une entreprise, apportant des améliorations significatives et ouvrant la voie à de nouvelles opportunités stratégiques.

  • Amélioration de l’expérience client : Par exemple, l’entreprise SoFi utilise une solution basée sur l’IA pour améliorer l’expérience de ses clients. Cette solution, appelée Cyberbank Konecta, permet à SoFi de répondre instantanément et de manière précise aux demandes de ses clients, même en dehors des heures d’ouverture du service client. Depuis le déploiement de cette solution, le taux de réponse a augmenté de plus de 65 %, et deux fois moins de clients ont abandonné leurs interactions par chat (Source)
  • Automatisation des processus : L’IA peut aider à automatiser les processus, ce qui peut réduire les coûts et augmenter l’efficacité. Par exemple, l’IA peut être utilisée pour détecter des anomalies dans les données, ce qui peut aider à identifier les problèmes avant qu’ils ne causent des dommages importants.

data

Source: https://www.lesechos.fr/thema/articles/le-machine-learning-explique-aux-entreprises-et-aux-decideurs-2041155

  • Google: Tomasz Czarnecki dans sa présentation “Bring AI to Your Data” expliqué comment Google utilise l’Intelligence Artificielle (IA) de manière extensive dans ses solutions pour améliorer l’expérience utilisateur et optimiser ses services. Dans la recherche Google, l’IA est utilisée pour affiner les algorithmes de recherche, offrant des résultats plus pertinents et personnalisés basés sur l’historique de recherche de l’utilisateur. Google Assistant, un assistant virtuel alimenté par l’IA, répond aux requêtes vocales, effectue des tâches pour les utilisateurs et fournit des informations contextuelles. Dans le domaine de la traduction, Google Translate utilise l’apprentissage automatique pour améliorer constamment la qualité et la précision des traductions entre différentes langues. L’IA est également au cœur de Google Photos, où elle aide à organiser et à rechercher des photos par reconnaissance d’image. Enfin, Google utilise l’IA pour la sécurité, notamment en analysant les menaces potentielles dans Gmail et en protégeant les utilisateurs contre les spams et les logiciels malveillants.

Si j’y réfléchis bien, dans le domaine qui m’intéresse particulièrement, à savoir l’analyse des données et la science des données, l’IA est déjà largement présente :

  • Analyse prédictive et Machine Learning dans Power BI : Power BI, un outil de Business Intelligence de Microsoft, intègre des capacités de ML pour permettre aux utilisateurs de réaliser des analyses prédictives. Par exemple, il peut utiliser des données historiques pour prévoir des tendances futures, ce qui est essentiel pour la planification stratégique et la prise de décision.
  • IA pour la visualisation de données : Des outils comme Tableau intègrent l’IA pour améliorer la visualisation de données. Ils permettent une meilleure compréhension et interprétation des ensembles de données complexes, facilitant ainsi l’extraction d’insights pertinents pour les décideurs.
  • Automatisation des processus d’analyse : L’IA dans des outils comme Alteryx automatise les processus d’analyse de données, réduisant le temps nécessaire pour la préparation des données et permettant aux analystes de se concentrer sur l’interprétation des résultats.

Etre capable d’intégrer tous les processus de développement logiciel et de gestion du cycle de vie des données dans des projets complexes Dans nos projets du 5e semestre, j’ai pu mettre en pratique différentes étapes et méthodologies du développement logiciel, telles que la planification, la conception, la codification, les tests, et le déploiement.

Cette intégration doit prendre en compte les divers outils, technologies et pratiques de développement.

  • Phase de conception et de planification : Au début du semestre, lors du développement de l’application de chat pour le hackathon, j’ai entamé une phase de conception. Cela a impliqué la définition des fonctionnalités, l’architecture de l’application, et la planification du développement en utilisant des méthodologies agiles pour assurer flexibilité et adaptabilité.

hack Hackathon Backlog

  • Développement et codage : J’ai ensuite procédé au développement de l’application en utilisant React, Web 5 et Next.js. Notre point de départ était l’application de chat de base proposée par TBD Community. J’ai veillé à implémenter des pratiques de codage propres et efficaces, en respectant les principes de développement en React, alors single‐page‐app.”

  • Test et assurance qualité : Pour garantir la qualité et la fiabilité, j’ai commencé à réfléchir sur les tests. En examinant de plus près l’application, je me suis rendu compte que le fichier de test existait déjà. Malheureusement, les tests ont été effectués pour la version originale de l’application. Malheureusement, la plupart d’entre eux n’ont pas fonctionné. J’ai donc pris le temps d’explorer la bibliothèque, qui était déjà installée : Playwright.

Ensuite, j’ai réussi à isoler trois tests qui, après quelques modifications, ont pu fonctionner. À l’avenir, il faudrait continuer les tests unitaires et ajouter des tests d’intégration ainsi que des tests d’utilisation pour détecter et corriger les bugs de manière proactive.

test_2 Le résultat de testes effectués dans l’application

  • Gestion du cycle de vie des données : Dans mon projet de développement de l’application de chat, j’ai intégré la gestion du cycle de vie des données en utilisant des identifiants décentralisés (DIDs) et un réseau décentralisé de nœuds (DWN).

creation_did Création d’un DID

Cependant, j’ai identifié un aspect critique à améliorer concernant le stockage des données : dans un système décentralisé comme Web 5, les données ne sont pas stockées dans un emplacement central, ce qui soulève des questions sur leur localisation exacte et leur gestion. Cette incertitude peut être problématique, surtout en ce qui concerne la conformité aux réglementations sur la protection des données et la vie privée, comme le RGPD en Europe. De plus, cela peut rendre plus difficile la mise en œuvre de fonctionnalités telles que la recherche rapide de messages ou la synchronisation des données entre différents appareils. En tant que développeur, je dois trouver un équilibre entre la décentralisation des données pour la sécurité et la confidentialité, et la nécessité de maintenir une expérience utilisateur fluide et cohérente.

  • Déploiement : Une fois l’application développée, j’ai procédé à son déploiement. J’ai utilisé Microsoft Azure, en m’assurant de la scalabilité et de la maintenance continue de l’application.

devOps Déploiement sur Microsoft Azure

Réflexion sur le projet : Ce projet m’a permis de comprendre en profondeur l’intégration des processus de développement logiciel et de gestion du cycle de vie des données, en mettant en pratique des compétences techniques et de gestion de projet dans un cadre complexe et dynamique. Pour la première fois, j’ai eu l’occasion de mettre en place un cycle DevOps complet, principalement le déploiement et la mise à jour automatique grâce à la combinaison de mon dépôt sur GitHub et de Microsoft Azure. Cela constitue un exemple d’une intégration de la gestion du cycle de vie des données en utilisant des technologies décentralisées. Actuellement, les données sont stockées dans la mémoire locale du navigateur. Bien que cette méthode soit fonctionnelle pour une démonstration initiale, elle présente plusieurs limitations :

  1. Sécurité et confidentialité : Le stockage de données sensibles, telles que les messages des utilisateurs, dans la mémoire locale du navigateur, pose des risques en termes de sécurité et de confidentialité. Ces données peuvent être accessibles par des scripts tiers malveillants, compromettant la sécurité de l’application.
  2. Persistance des données : En utilisant la mémoire locale, la persistance des données est précaire. Les données peuvent être perdues si l’utilisateur efface son cache ou ses cookies, ou en cas de changement de navigateur, ce qui n’est pas souhaitable pour une application de messagerie où l’historique des messages est crucial.
  3. Scalabilité et gestion des données : La mémoire locale du navigateur n’est pas conçue pour stocker de grandes quantités de données ni pour gérer efficacement des données complexes. Ceci limite la scalabilité de l’application et sa capacité à gérer un volume croissant de données au fur et à mesure que le nombre d’utilisateurs augmente.

En conclusion, bien que l’utilisation de la mémoire locale du navigateur ait été utile pour le développement initial et les tests de l’application, il est impératif de migrer vers une solution de stockage de données plus robuste, sécurisée et scalable pour une utilisation à long terme. Pour les prochaines étapes du projet, je prévois d’explorer des options telles que le stockage de données sur le cloud ou l’utilisation de bases de données décentralisées pour améliorer la gestion des données de l’application.

Gestion des identités avec DIDs : J’ai mis en place un système pour gérer les identités des utilisateurs à travers des DIDs. Dans mon composant Home.js, j’ai géré une liste de DIDs corespondantDIDs() et associé des informations spécifiques à chaque DID DIDInfoMappers(). Ces fonctions sont utilisées dans la fonction “handshake()” dont la tâche est d’établir une connexion entre deux parties.

did

handsheake

Cela a été crucial pour identifier et gérer les utilisateurs de manière sécurisée et décentralisée dans mon application.

Communication sécurisée via le DWN : J’ai utilisé le DWN pour l’envoi et la réception sécurisés des messages. Dans ma fonction sendMessage(), j’ai construit un message constructDing() et écrit ce message sur le DWN writeToDwn(). Cela a illustré mon utilisation du DWN pour assurer une communication entre les utilisateurs.

sendMessage

Stockage et récupération des messages : Mon code montre comment j’ai récupéré les messages que j’ai envoyés fetchSentMessages() et reçus fetchReceivedMessages() via le DWN. J’ai utilisé des requêtes pour filtrer les messages selon un protocole et des schémas de données spécifiques, démontrant une gestion efficace du cycle de vie des données.

Capture%20d'%C3%A9cran%202024-01-14%20200012

Synchronisation et mise à jour des données : J’ai mis en place un mécanisme pour synchroniser régulièrement les messages fetchDings() exécuté à intervalles réguliers, assurant que l’utilisateur ait toujours accès aux dernières communications.

fetchDings

Traitement des données en temps réel : Mon application traite les données en temps réel, permettant aux utilisateurs d’avoir une vue organisée et à jour de leurs conversations. useEffect() dans UseChatItem.js:

chat

Le LI Hugo constitue un élément de réflexion intéressant sur le DLM. Il y soulève des questions sur l’utilisation du Data Mesh. J’avais déjà pris connaissance de ce concept lors de la conférence de Belgrade. J’ai entendu parler de Data Mesh pour la première fois lors de la présentation “How to treat your data as a product”. Le concept de Data Mesh est une approche architecturale dans la gestion des données à grande échelle. Il met l’accent sur une organisation décentralisée des données, contrairement aux modèles traditionnels centralisés. Dans un Data Mesh, la responsabilité de la gestion des données est distribuée à travers différentes équipes opérationnelles, chacune gérant et possédant ses propres données comme un produit. Cela encourage une meilleure gouvernance, une accessibilité accrue et une utilisation plus efficace des données. Le Data Mesh facilite également l’intégration et la collaboration entre diverses parties de l’organisation, améliorant ainsi l’agilité et la réactivité aux changements. Il s’agit certes d’un concept intéressant, mais jusqu’à présent, les chances de travailler avec un tel système sont minces, compte tenu de la taille de l’entreprise nécessaire pour le faire fonctionner.

Image%20%281%29

Previous Post Next Post