Acelerar el desarrollo de aplicaciones escalables 
Cómo Work & Co entregó una aplicación interna esencial en pocas semanas en lugar de meses
Mujer y colega escribiendo ideas en notas adhesivas

Al igual que muchas empresas modernas, el personal de Work & Co está repartido por todo el mundo, desempeñando una variedad de tareas en constante evolución. La capacidad de gestionar eficazmente sus recursos humanos y de proyectos es fundamental para la productividad de la empresa. 

Work & Co se asoció con StepZen (enlace externo a ibm.com), una empresa de IBM, para diseñar, desarrollar y poner en marcha una capa de datos GraphQL en su back-end Mavenlink y, a continuación, actualizar una aplicación interna de directorio de empleados que los equipos y directivos utilizan a diario para comunicarse, colaborar y realizar un seguimiento de las asignaciones y la cobertura de los proyectos.

La aplicación de directorio de empleados Work & Co se nutre de datos de múltiples sistemas de recursos humanos y es utilizada a diario por muchos empleados para comunicarse y colaborar en proyectos distribuidos por todo el mundo y en constante evolución. Cuando la empresa decidió consolidar los datos de varios de sus servicios externos de RR. HH. y gestión de personal en un nuevo proveedor, Mavenlink, el equipo tuvo que tomar una decisión sobre el futuro de esta aplicación interna.

Tenían la opción de retirarla, reconstruirla o adaptarla a la nueva fuente de datos. Sin embargo, la retirada quedó en seguida descartada, ya que los empleados la necesitaban a diario para hacer su trabajo. Reconstruirla era ciertamente posible, pues la empresa tenía los conocimientos necesarios. Sin embargo, esas competencias se emplean principalmente en proyectos facturables con clientes externos y el gasto de ese valioso recurso en actividades internas era difícil de justificar.

Así que, con todo, una actualización parecía la mejor opción. Pero esto planteó una cuestión importante: ¿cómo optimizar esta aplicación esencial para poder añadir siempre nuevas funciones y fuentes de datos, o cambiar de sistema en el futuro si es necesario, limitando al mismo tiempo la cantidad de trabajo que se exige a la empresa?

Era importante que la aplicación siguiera siendo escalable, de modo que pudieran integrarse nuevas fuentes de datos para mejorar la experiencia del usuario y ofrecer más funciones. Work & Co necesitaba una solución que pudiera crear una aplicación completa, pero ágil, que funcionara ahora, pero que pudiera adaptarse a nuevos casos de uso en el futuro.

Con la API GraphQL de Mavenlink, solo se necesitan unas semanas para crear una aplicación interna que nos permita visualizar y planificar nuestra gestión de recursos de forma rápida, precisa y sencilla. El rendimiento es esencial en este caso, ya que esta aplicación recorta una gran cantidad de información. Nemanja Niciforovic Director general y jefe de ingeniería Work & Co
Reconstrucción de una aplicación esencial

El primer paso fue convertir las llamadas a la API REST de la aplicación en llamadas a la API GraphQL. En esta nueva configuración, la aplicación del cliente solo necesita saber cómo hacer una llamada GraphQL. Simplemente solicita los datos que necesita sin preocuparse de su procedencia. Estandarizar GraphQL también permite a la empresa añadir nuevas fuentes de datos y cambiar de fuente sin que ello afecte a la aplicación; las consultas GraphQL siguen siendo las mismas.

Sin embargo, esto generalmente implica escribir un servidor GraphQL y un gran volumen de código de resolución para vincular las API a los datos. Cuanto menos código haya que escribir y mantener, mejor. Aquí es donde entra StepZen. Este servidor GraphQL alojado, declarativo y basado en la configuración, facilitó la configuración de los resolvers, eliminando una gran cantidad de código.

Nemanja Niciforovic, director general y jefe de ingeniería de Work & Co, explica: "Con la API GraphQL de Mavenlink, podemos crear en semanas una aplicación interna que nos permite visualizar y planificar nuestra gestión de recursos de forma rápida, precisa y sencilla. El rendimiento es esencial en este caso, ya que esta aplicación recorta una gran cantidad de información. La función de paralelismo automático de StepZen fue de gran ayuda. También nos ayuda a garantizar la sostenibilidad y la escalabilidad cuando añadimos servicios back-end y creamos nuevas aplicaciones sobre la API GraphQL única".

Mavenlink dispone de una completa API REST para gestionar el acceso a una amplia variedad de datos de RR. HH. y gestión de recursos. Utilizando, @rest, la directiva GraphQL de StepZen, Work & Co pudo refinar los datos disponibles para la aplicación de directorio de empleados. Por ejemplo, sus equipos pudieron renombrar fácilmente los campos de la API de Mavenlink para que coincidieran con los nombres utilizados en su aplicación, eliminando la carga cognitiva para el desarrollador front-end y reduciendo el número de cambios de código necesarios en la aplicación.

Además, el equipo pudo simplificar la API de Mavenlink mediante el uso de la directiva @materializer de StepZen. Esto le ha permitido definir tipos que incluyen datos de varias llamadas a la API. Por ejemplo, sus equipos añadieron un tipo de "proyectos" al tipo de "usuario" para permitir al desarrollador de aplicaciones recuperar los proyectos activos de un usuario junto con sus datos, como la foto de su perfil y su dirección de correo electrónico.

Paginación: La API de Mavenlink aplica la paginación para limitar el número de registros devueltos por llamada. La aplicación Work & Co no estaba diseñada para soportar este modo de procesamiento de datos, y el esfuerzo necesario para rehacerla era demasiado grande. Utilizando la directiva @sequence de StepZen, el equipo fue capaz de paralelizar numerosas llamadas REST API a la API Mavenlink y recuperar todas las páginas de un conjunto de resultados con una única petición GraphQL.

Optimización del rendimiento: Se trata de una ventaja inesperada de este enfoque. La recuperación de páginas más pequeñas con la API REST acelera los tiempos de respuesta. De hecho, 10 peticiones paralelas de 200 registros cada una tardan más que 20 peticiones paralelas de 100 registros cada una. Al definir adecuadamente las consultas StepZen, el desarrollador de la aplicación Work & Co pudo mejorar el rendimiento de sus consultas GraphQL.

Seguridad y almacenamiento en caché: Además de todos estos detalles de implementación, Work & Co se ha beneficiado del enfoque integral de StepZen en materia de seguridad y almacenamiento en caché. Las configuraciones de seguridad flexibles le han permitido definir peticiones utilizando un contexto de seguridad para toda la aplicación, así como peticiones utilizando un contexto de seguridad basado en el usuario. Este control preciso es muy difícil de gestionar cuando se utiliza directamente una API REST; por lo general, no es posible mezclar ambas. El almacenamiento automático en caché de StepZen permite a los usuarios de su aplicación beneficiarse de un rendimiento mejorado sin ningún esfuerzo de desarrollo.

La función de paralelismo automático de StepZen fue de gran ayuda. También nos ayuda a garantizar la sostenibilidad y la escalabilidad cuando añadimos servicios back-end y creamos nuevas aplicaciones sobre la API GraphQL única. Nemanja Niciforovic Director general y jefe de ingeniería Work & Co
Mirando hacia adelante

Tras haber convertido su aplicación interna para utilizar GraphQL en StepZen en lugar de llamadas REST API específicas, el equipo de Work & Co se encuentra en una posición ideal para aprovechar las nuevas capacidades de Mavenlink a medida que adopta la plataforma. También podrá integrar fácilmente nuevos servicios en su API GraphQL, con un impacto mínimo en las aplicaciones alimentadas por datos proporcionados por StepZen.

Acerca de Work & Co

Work & Co (enlace externo a ibm.com) es una agencia galardonada que diseña y ofrece productos digitales que transforma a las empresas. La empresa ayuda a sus clientes a definir estrategias digitales y a comercializar y poner en funcionamiento productos digitales a escala. Millones de personas utilizan a diario los sitios web, aplicaciones y experiencias digitales de Work & Co.

StepZen

El único enfoque declarativo para el acceso federado a los datos.

Más información Suscríbase al boletín de IBM    
Legal

© Copyright IBM Corporation 2023. IBM Corporation, New Orchard Road, Armonk, NY 10504

Producido en los Estados Unidos, junio de 2023.

IBM e el logotipo de IBM son marcas comerciales o marcas comerciales registradas de International Business Machines Corporation, en Estados Unidos o en otros países Otros nombres de productos y servicios pueden ser marcas registradas de IBM o de otras empresas. Una lista actualizada de las marcas comerciales de IBM está disponible en ibm.com/trademark.

Este documento está actualizado a la fecha inicial de publicación e IBM puede modificarlo en cualquier momento. No todas las ofertas están disponibles en todos los países en los que opera IBM.

Todos los ejemplos de clientes citados o descritos se presentan como ilustraciones de la forma en que algunos han utilizado los productos de IBM y los resultados que pueden haber logrado. Los costos ambientales reales y las características de rendimiento variarán según las configuraciones y condiciones individuales del cliente. En general, no se pueden proporcionar los resultados esperados, ya que los resultados de cada cliente dependerán completamente de los sistemas y servicios que soliciten. son marcas comerciales o marcas registradas de International Business Machines Corporation, en los Estados Unidos y/u otros países. LA INFORMACIÓN DE ESTE DOCUMENTO SE OFRECE "TAL CUAL ESTÁ" SIN NINGUNA GARANTÍA, NI EXPLÍCITA NI IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS DE COMERCIABILIDAD, ADECUACIÓN A UN FIN CONCRETO Y CUALQUIER GARANTÍA O CONDICIÓN DE INEXISTENCIA DE INFRACCIÓN. Los productos de IBM están sujetos a garantía según los términos y condiciones de los acuerdos bajo los que se proporcionan.