Comme dans de nombreuses entreprises modernes, le personnel de Work & Co est réparti dans le monde entier et remplit des missions variées qui sans cesse évoluent. Une gestion efficace des ressources humaines et de projet est donc cruciale pour assurer sa productivité.
Work & Co s'est associée à StepZen (lien externe à ibm.com), une société IBM®, pour concevoir, développer et lancer une couche de données GraphQL sur son back-end Mavenlink, puis mettre à niveau une application interne de répertoire des employés, que les équipes et les managers utilisent au quotidien jour pour communiquer, collaborer et suivre les attributions et la couverture des projets.
Ce répertoire Work & Co est alimenté par des données issues de plusieurs systèmes RH et utilisé chaque jour par de nombreux employés pour échanger et collaborer sur des projets distribués et en constante évolution à l'échelle mondiale. Lorsque l'entreprise a décidé de consolider les données de plusieurs de ses services tiers de RH et de gestion du personnel sur un nouveau fournisseur, Mavenlink, l'équipe devait faire un choix pour l'avenir de cette application interne.
Elle pouvait la remiser, le reconstruire ou l'adapter à cette nouvelle source de données unifiée. Une désactivation était hors de question, car les employés en avaient besoin tous les jours pour faire leur travail. Une reconstruction était certainement possible, car l'entreprise disposait des compétences requises. Mais ce savoir, l'entreprise préférait le mettre à disposition des clients dans le cadre de projets facturables : il était difficile de justifier la mobilisation de cette ressource précieuse pour des activités internes.
Une mise à niveau apparaissait donc comme le meilleur choix. Mais cela a soulevé une question importante : comment procéder pour optimiser cette application essentielle afin de pouvoir toujours y ajouter des fonctionnalités et des sources de données, ou changer de système à l'avenir si nécessaire, tout en limitant la quantité de travail nécessaire à l'entreprise ?
Il était important que l'application reste évolutive pour pouvoir intégrer de nouvelles sources de données susceptibles d'améliorer l'expérience des utilisateurs et fournir plus de capacités. Work & Co avait besoin d'une solution qui permette de créer une application complète, mais agile, fonctionnelle dès maintenant, qui pourrait s'adapter à de nouveaux cas d'utilisation à l'avenir.
La première étape a été de convertir les appels REST API de l'application en appels d'API GraphQL. Dans cette nouvelle configuration, l'application du client a uniquement besoin de savoir comment passer un appel GraphQL. Elle demande simplement les données qu'il lui faut sans se soucier de leur origine. Elle permet aussi à l'entreprise d'ajouter de nouvelles sources de données et de changer de source sans affecter l'application ; les requêtes GraphQL restent les mêmes.
Cependant, cela implique généralement de rédiger un serveur GraphQL et un grand volume de code de résolution pour relier les API aux données. Or, moins il y a d'éléments à écrire et à maintenir, mieux c'est. C'est là que StepZen entre en jeu. Ce serveur GraphQL hébergé déclaratif et axé sur la configuration a facilité le paramétrage des résolveurs, éliminant ainsi beaucoup de code.
Nemanja Niciforovic, directeur général et responsable de l'ingénierie au sein de Work & Co, nous explique : « Avec l'API GraphQL sur Mavenlink, quelques semaines nous suffisent pour créer une application interne qui nous permet de visualiser et de planifier notre gestion des ressources rapidement, précisément et facilement. Ici, la performance est essentielle, car cette application recoupe un grand nombre d'informations. La fonction de parallélisme automatique de StepZen a été d'une grande aide. Elle nous aide également à assurer la pérennité et l'évolutivité lorsque nous ajoutons des services back-end et créons de nouvelles applications sur l'API GraphQL unique. »
Mavenlink dispose d’une API REST complète pour gérer l’accès à une grande variété de données RH et de gestion des ressources. En utilisant @rest, la directive GraphQL de StepZen, Work & Co a pu affiner les données disponibles pour l’application de répertoire des employés. À titre d’exemple, ses équipes ont pu aisément renommer les champs de l’API Mavenlink pour qu’ils correspondent aux noms utilisés dans leur application, éliminant ainsi la charge cognitive pour le développeur front-end et réduisant le nombre de modifications de code requises dans l’application.
En outre, Work & Co a pu simplifier l'API Mavenlink avec la directive @materializer de StepZen. Cela lui a permis de définir des types qui incluent des données provenant de plusieurs appels API. Par exemple, ses équipes ont ajouté un type projects au type user pour permettre au développeur de l'application de récupérer les projets actifs d'un utilisateur conjointement à ses détails, comme sa photo de profil et son adresse e-mail.
Pagination : l'API Mavenlink applique une pagination pour limiter le nombre d'enregistrements renvoyés par appel. L'application de Work & Co n'a pas été conçue pour prendre en charge ce mode de traitement des données, et l'effort requis pour la retravailler était trop important. Grâce à la directive @sequence de StepZen, l'équipe a pu paralléliser de nombreux appels API REST vers l'API Mavenlink et récupérer toutes les pages d'un ensemble de résultats avec une seule requête GraphQL.
Optimisation des performances : c'est un avantage inattendu de cette approche. La récupération de pages plus petites avec l'API REST permet d'accélérer les temps de réponse. En effet, 10 demandes parallèles pour 200 enregistrements chacune prennent plus de temps que 20 demandes parallèles pour 100 enregistrements chacune. En définissant les requêtes StepZen de manière appropriée, le développeur de l'application Work & Co a pu affiner les performances de ses requêtes GraphQL.
Sécurité et mise en cache : outre tous ces détails de mise en œuvre, Work & Co a bénéficié de l'approche globale de StepZen en matière de sécurité et de mise en cache. Des configurations de sécurité flexibles lui ont permis de définir des requêtes utilisant un contexte de sécurité à l'échelle de l'application, ainsi que des requêtes utilisant un contexte de sécurité basé sur l'utilisateur. Ce contrôle précis est très difficile à gérer quand vous utilisez directement une API REST ; il n'est généralement pas possible de mixer les deux. La mise en cache automatique de StepZen permet aux utilisateurs de son application de bénéficier de performances améliorées sans aucun effort de développement.
Après avoir converti son application interne pour utiliser GraphQL sur StepZen à la place d'appels API REST spécifiques, l'équipe Work & Co est idéalement placée pour tirer parti des nouvelles capacités de Mavenlink à mesure qu'elle adopte la plateforme. Elle pourra également facilement intégrer de nouveaux services à son API GraphQL, avec un impact minimal sur les applications alimentées par les données fournies par StepZen.
Work & Co (link externe à ibm.com) est une agence primée qui conçoit et expédie des produits numériques qui transforment les entreprises. Cette société aide ses clients à définir des stratégies numériques et à commercialiser et à exploiter les produits numériques à grande échelle. Les sites Web, les applications et les expériences numériques de Work & Co sont utilisés chaque jour par des millions de personnes.
© Copyright IBM Corporation 2023. IBM Corporation, New Orchard Road, Armonk, NY 10504
Produit aux États-Unis d’Amérique, juin 2023.
IBM et le logo IBM sont des marques commerciales ou des marques déposées d'International Business Machines Corporation, aux États-Unis et/ou dans d'autres pays. Les autres noms de produits et de services peuvent être des marques d’IBM ou d’autres sociétés. La liste actualisée de toutes les marques d’IBM est disponible à l’adresse ibm.com/trademark.
Les informations contenues dans le présent document étaient à jour à la date de sa publication initiale. Elles peuvent être modifiées sans préavis par IBM. Les offres mentionnées dans le présent document ne sont pas toutes disponibles dans tous les pays où la société IBM est présente.
Toutes les références clients mentionnées ou décrites illustrent la façon dont certains clients ont utilisé les produits IBM et précisent les résultats qu'ils ont pu obtenir. Les chiffres réels en termes de coûts environnementaux et de performances peuvent varier d'un client à l'autre en fonction de la configuration et des conditions de fonctionnement. En général, les résultats attendus ne peuvent pas être garantis, car les résultats de chaque client dépendent entièrement des systèmes du client et des services commandés. IBM et le logo IBM sont des marques commerciales ou des marques déposées d’International Business Machines Corporation, aux États-Unis et/ou dans d’autres pays. LES INFORMATIONS CONTENUES DANS LE PRÉSENT DOCUMENT SONT FOURNIES « EN L'ÉTAT », SANS AUCUNE GARANTIE EXPLICITE OU IMPLICITE, NOTAMMENT SANS AUCUNE GARANTIE DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET AUCUNE GARANTIE OU CONDITION D'ABSENCE DE CONTREFAÇON. Les produits IBM sont garantis conformément aux dispositions des contrats qui régissent leur utilisation.