Come molte aziende moderne, la forza lavoro di Work & Co è distribuita in tutto il mondo e su progetti in continua evoluzione. La capacità di gestire efficacemente le risorse umane e di progetto è fondamentale per la produttività dell'azienda.
Work & Co ha collaborato con StepZen (link esterno a ibm.com), una società IBM®, per progettare, sviluppare e lanciare un livello di dati GraphQL sul suo back-end Mavenlink e quindi adattare una "app di directory dei dipendenti" interna, che i dipendenti e i loro i manager utilizzano ogni giorno per comunicare, collaborare e comprendere le assegnazioni e la copertura dei progetti.
L'applicazione di Work & Co è alimentata da dati provenienti da diversi sistemi HR e viene utilizzata ogni giorno da diversi dipendenti per comunicare e collaborare su progetti distribuiti a livello globale e in continua evoluzione. Quando l'azienda ha deciso di consolidare i dati di diversi servizi di terze parti per la gestione di HR e forza lavoro con un nuovo fornitore, Mavenlink, il team si è trovato di fronte a una decisione riguardante l'app interna.
Potevano ritirarla, ricostruirla o adattarla alla nuova origine dei dati. Il ritiro era fuori questione: i dipendenti ne avevano bisogno ogni giorno per svolgere il loro lavoro. La ricostruzione sarebbe stata sicuramente possibile: le competenze, in azienda, non mancano.Tuttavia, queste competenze vengono principalmente impiegate su progetti fatturabili con i clienti ed era difficile giustificare la spesa di quella preziosa risorsa su attività interne.
Un retrofit era la scelta migliore, ma sollevava una domanda importante: in che modo Work & Co avrebbe potuto ricostruire la sua applicazione in modo da poter continuare ad aggiungere funzionalità e origini di dati o addirittura cambiare nuovamente i sistemi in futuro riducendo al minimo la quantità di lavoro da svolgere?
Era importante aggiornare e scalare l'applicazione man mano che si rendevano disponibili nuove origini di dati in grado di migliorare l'esperienza degli utenti e fornire maggiori funzionalità. L'azienda aveva bisogno di una soluzione che permettesse di creare un'applicazione completa ma flessibile e che le offrisse la possibilità di scalare e nuovi casi d'uso in futuro.
Il primo passo è stato la conversione delle chiamate API REST esistenti dell'app in chiamate API GraphQL.Passando a GraphQL, l'applicazione client deve solo sapere come effettuare una chiamata GraphQL e richiedere i dati di cui ha bisogno: non è necessario sapere da dove provengono. La standardizzazione su GraphQL per questa applicazione consentirebbe all'azienda di aggiungere nuove origini dei dati e cambiarle senza influire sull'applicazione. Le query GraphQL rimarranno invariate.
Tuttavia, in genere ciò significherebbe scrivere un server GraphQL e molti codici resolver per mappare le API ai dati. Meno codice da scrivere e mantenere c'è, meglio è. Come server GraphQL ospitato dichiarativo e basato sulla configurazione, StepZen ha semplificato la configurazione dei resolver, eliminando la necessità di gran parte del codice.
Nemanja Niciforovic, MD e Engineering Lead di Work & Co, spiega: "Con l'API GraphQL su Mavenlink siamo in grado di creare in poche settimane un'app interna che ci permette di visualizzare e pianificare la nostra gestione delle risorse in modo rapido, accurato e semplice. Le prestazioni di questa app sono fondamentali, poiché le informazioni che riunisce sono tante. Il parallelismo automatico di StepZen ci ha aiutato molto. Ci aiuta anche a essere a prova di futuro e a crescere man mano che aggiungiamo servizi back-end e creiamo nuove app sulla singola API GraphQL."
Mavenlink ha un'API REST completa per gestire l'accesso a un'ampia varietà di dati HR e di gestione delle risorse. Utilizzando la direttiva GraphQL di StepZen —@rest—, Work & Co è riuscita a ottimizzare i dati disponibili per l'app di directory dei dipendenti. Ad esempio, il team ha rinominato facilmente i campi nell'API Mavenlink in modo che corrispondessero ai nomi utilizzati nell'applicazione, eliminando il carico cognitivo per lo sviluppatore front-end e riducendo il numero di modifiche al codice necessarie nell'applicazione.
Inoltre, il team è riuscito a semplificare l'API Mavenlink utilizzando la direttiva @materializer di StepZen. Ciò ha consentito loro di definire tipi che includono dati provenienti da più chiamate API. Ad esempio, hanno aggiunto un tipo "progetti" al tipo "utente", che ha consentito allo sviluppatore dell'applicazione di recuperare i progetti attivi di un utente e, contemporaneamente, i dettagli dell'utente, come la foto del profilo e l'indirizzo e-mail.
Pagamento: l'API di Mavenlink limita il numero di record restituiti da qualsiasi singola chiamata applicando la paginazione. L'app Work & Co non è stata creata per supportare la gestione dei dati in questo modo, e rielaborarla per utilizzare la paginazione non era uno sforzo che volevano intraprendere. Utilizzando la direttiva @sequence di StepZen, il team è riuscito a parallelizzare molte chiamate API REST all'API Mavenlink e recuperare tutte le pagine di un set di risultati con una singola richiesta di query GraphQL.
Ottimizzazione delle prestazioni: un vantaggio imprevisto di questo approccio è stato l'ottimizzazione delle prestazioni. Il recupero di pagine di dimensioni inferiori con l'API REST comporta tempi di risposta più rapidi. Pertanto, 10 richieste parallele per 200 record ciascuna richiedono più di 20 richieste parallele per 100 record ciascuna. Definendo le query StepZen in modo appropriato, lo sviluppatore dell'applicazione Work & Co è stato in grado di ottimizzare le prestazioni delle query GraphQL.
Sicurezza e memorizzazione nella cache: oltre a tutti questi dettagli di implementazione specifici, Work & Co ha tratto vantaggio dall'approccio generale di StepZen alla sicurezza e alla memorizzazione nella cache. Configurazioni di sicurezza flessibili hanno consentito di definire query che utilizzano un contesto di sicurezza a livello di applicazione, insieme a quelle che utilizzano un contesto di sicurezza specifico dell'utente. Un controllo così dettagliato è molto difficile da gestire quando si utilizza direttamente un'API REST: in genere è necessario fare una scelta. La memorizzazione nella cache automatica di StepZen significa che gli utenti della loro applicazione vedono prestazioni migliorate con zero sforzi di sviluppo.
Dopo aver convertito la loro app interna per utilizzare GraphQL in esecuzione su StepZen invece di specifiche chiamate API REST, il team Work & Co è in una posizione privilegiata per sfruttare le nuove funzionalità all'interno di Mavenlink mentre adottano più parti della piattaforma. Saranno inoltre in grado di introdurre facilmente nuovi servizi nella loro API GraphQL, con un impatto minimo sulle applicazioni alimentate dai dati forniti tramite StepZen.
Work & Co (link esterno a ibm.com) è un'agenzia pluripremiata che progetta e spedisce prodotti digitali in grado di trasformare le aziende. L'azienda aiuta i suoi clienti a definire le strategie digitali e a introdurre sul mercato i prodotti digitali e renderli operativi su larga scala. I siti web, le app e le esperienze digitali di Work & Co vengono utilizzati ogni giorno da milioni di persone.
© Copyright IBM Corporation 2023. IBM Corporation, New Orchard Road, Armonk, NY 10504
Prodotto negli Stati Uniti d’America, giugno 2023.
IBM e il logo IBM sono marchi o marchi registrati di International Business Machines Corporation, negli Stati Uniti e/o in altri Paesi. Altri nomi di prodotti e servizi potrebbero essere marchi registrati di IBM o di altre società. Un elenco aggiornato dei marchi IBM è disponibile su ibm.com/trademark.
Le informazioni contenute nel presente documento sono aggiornate alla data della prima pubblicazione e possono essere modificate da IBM senza preavviso. Non tutte le offerte sono disponibili in ogni Paese in cui opera IBM.
Tutti gli esempi citati relativi a clienti sono presentati per illustrare il modo in cui alcuni clienti hanno utilizzato i prodotti IBM e i risultati da essi eventualmente conseguiti. I costi effettivi relativi agli ambienti e le caratteristiche inerenti alle performance possono variare a seconda delle specifiche configurazioni e condizioni del cliente. In generale non è possibile fornire risultati attesi, poiché i risultati di ciascun cliente dipendono interamente dai sistemi e dai servizi ordinati. sono marchi o marchi registrati di International Business Machines Corporation, negli Stati Uniti e/o in altri Paesi. LE INFORMAZIONI FORNITE NEL PRESENTE DOCUMENTO SONO DA CONSIDERARSI “NELLO STATO IN CUI SI TROVANO”, SENZA GARANZIE, ESPLICITE O IMPLICITE, IVI INCLUSE GARANZIE DI COMMERCIABILITÀ, DI IDONEITÀ PER UN PARTICOLARE SCOPO E GARANZIE O CONDIZIONI DI NON VIOLAZIONE. I prodotti IBM sono coperti da garanzia in accordo con termini e condizioni dei contratti sulla base dei quali vengono forniti.