Início Estudos de caso Work and Co Alcançando um desenvolvimento de aplicativos escalável mais rápido 
Como a Work & Co entregou um aplicativo interno essencial em questão de semanas e não em meses
Mulher e colega homem escrevendo ideias sobre notas adesivas

Como muitas empresas modernas, a força de trabalho da Work & Co está distribuída no mundo todo e em projetos em constante evolução. A capacidade de gerenciar recursos humanos e de projetos de forma eficaz é fundamental para a produtividade da empresa. 

A Work & Co fez uma parceria com a StepZen (link externo ao ibm.com), uma empresa IBM®, para projetar, desenvolver e lançar uma camada de dados GraphQL no back-end Mavenlink e, em seguida, adaptar um aplicativo interno de "diretório de funcionários", para que os funcionários e gerentes usem todos os dias para se comunicar, colaborar e entender as atribuições e a cobertura do projeto.

O aplicativo de diretório de funcionários da Work & Co é baseado em dados de vários sistemas de RH e é usado todos os dias por muitos funcionários para se comunicarem e colaborarem em projetos distribuídos globalmente e em constante evolução. Quando a empresa tomou a decisão de consolidar os dados de vários dos serviços de gestão de RH e força de trabalho de terceiros em um novo provedor, o Mavenlink, a equipe teve que tomar uma decisão sobre o aplicativo interno.

Eles podem aposentá-lo, reconstruí-lo ou adaptá-lo à nova fonte de dados. A aposentadoria estava fora de questão: os funcionários precisavam dele todos os dias para fazer o trabalho. A reconstrução era certamente possível; a empresa tem as habilidades necessárias. No entanto, essas habilidades são empregadas principalmente em projetos faturáveis com clientes e era difícil justificar o gasto desse valioso recurso em atividades internas.

Uma adaptação era a melhor escolha. Mas isso levantou uma pergunta importante: como a Work & Co reconstruiria seu próprio aplicativo fundamental para que pudesse continuar a adicionar funcionalidades e fontes de dados ou até mesmo mudar os sistemas novamente no futuro, minimizando a quantidade de trabalho que a empresa precisava fazer?

Foi importante atualizar e dimensionar este aplicativo à medida que novas fontes de dados se tornaram disponíveis que pudessem melhorar a experiência do usuário e oferecer mais recursos. A empresa precisava de uma solução que permitisse criar um aplicativo abrangente, mas flexível, agora e que o equipasse para uso em escala e novos casos de uso no futuro.

Com a API GraphQL no Mavenlink, podemos criar um aplicativo interno em questão de semanas que nos permite visualizar e planejar nosso gerenciamento de recursos de forma rápida, precisa e fácil. O desempenho deste aplicativo é crítico, pois reúne muitas informações. Nemanja Niciforovic Líder de engenharia e MD Work & Co
Reconstruindo um aplicativo fundamental

A primeira etapa foi a conversão das chamadas de API REST existentes no aplicativo para chamadas de API GraphQL. Ao mudar para o GraphQL, o aplicativo do cliente só precisa saber como fazer uma chamada do GraphQL e solicitar apenas os dados necessários, ele não precisa saber de onde vêm os dados. A padronização do GraphQL para esse aplicativo permitiria que a empresa adicionasse novas fontes de dados e alternasse fontes de dados sem afetar o aplicativo; as consultas do GraphQL permaneceriam as mesmas.

No entanto, normalmente isso significaria escrever um servidor GraphQL e muitos códigos do resolvedor para mapear as APIs para os dados. Quanto menos códigos tiver que escrever e manter, melhor. Como servidor declarativo GraphQL hospedado orientado por configuração, o StepZen facilitou a configuração de resolvedores, eliminando a necessidade de grande parte dos códigos.

Nemanja Niciforovic, MD e líder de engenharia da Work & Co, explica: "Com a API GraphQL no Mavenlink, podemos criar um aplicativo interno em questão de semanas que nos permite visualizar e planejar nosso gerenciamento de recursos de forma rápida, precisa e fácil. O desempenho deste aplicativo é crítico, pois reúne muitas informações. O paralelismo automático do StepZen ajudou muito. Isso também nos ajuda a preparar e dimensionar o futuro à medida que adicionamos serviços de back-end e criamos novos aplicativos na única API do GraphQL."

O Mavenlink tem uma API REST abrangente para gerenciar o acesso a uma ampla variedade de dados de RH e gerenciamento de recursos. Usando a diretiva GraphQL da StepZen — @rest — a Work & Co conseguiu ajustar os dados disponíveis para o aplicativo de diretório de funcionários. Por exemplo, a equipe renomeou de forma fácil os campos na API do Mavenlink para corresponder aos nomes usados no aplicativo, eliminando a carga cognitiva para o desenvolvedor do front-end e reduzindo o número de alterações de código necessárias no aplicativo.

Além disso, a equipe conseguiu simplificar a API do Mavenlink por meio do uso da diretiva do @materializer do StepZen. Isso permitiu definir tipos que incluem dados de múltiplas chamadas de API. Por exemplo, eles adicionaram um tipo de "projetos" ao tipo de "usuário", o que permitiu ao desenvolvedor do aplicativo recuperar projetos ativos de um usuário ao mesmo tempo que recuperava detalhes do usuário, como foto do perfil e endereço de e-mail.

Paginação: a API do Mavenlink limita o número de registros retornados por uma única chamada, aplicando a paginação. O aplicativo da Work & Co não foi criado para suportar o processamento de dados dessa maneira e o retrabalho para o uso da paginação não foi um esforço que eles queriam realizar. Usando a diretiva de sequência @StepZen, a equipe conseguiu paralelizar muitas chamadas REST API para a API do Mavenlink e recuperar todas as páginas de um conjunto de resultados com uma única solicitação de consulta GraphQL.

Ajuste de desempenho: um benefício inesperado dessa abordagem é o ajuste de desempenho. A recuperação de tamanhos de página menores com a API REST resulta em tempos de resposta mais rápidos. Portanto, 10 solicitações paralelas para 200 registros cada leva mais de 20 solicitações paralelas para 100 registros cada. Ao definir as consultas StepZen adequadamente, o desenvolvedor do aplicativo Work & Co foi capaz de fazer o ajuste fino do desempenho das consultas GraphQL.

Segurança e armazenamento em cache: além de todos esses detalhes específicos de implementação, a Work & Co se beneficiou da abordagem geral da StepZen em relação à segurança e ao armazenamento em cache. As configurações de segurança flexíveis permitiram que eles definissem consultas que usam um contexto de segurança de todo o aplicativo, bem como aquelas que usam um contexto de segurança específico do usuário. Esse controle refinado é muito difícil de gerenciar ao usar uma API REST de forma direta; normalmente é um ou outro. O cache automático do StepZen significa que os usuários dos aplicativos têm um desempenho aprimorado sem nenhum esforço no desenvolvimento.

O paralelismo automático do StepZen ajudou muito. Isso também nos ajuda a preparar e dimensionar o futuro à medida que adicionamos serviços de back-end e criamos novos aplicativos na única API do GraphQL. Nemanja Niciforovic Líder de engenharia e MD Work & Co
Olhar para o futuro

Depois de converter o aplicativo interno para usar o GraphQL em uma execução no StepZen em vez de chamadas específicas de API REST, a equipe da Work & Co está em uma posição privilegiada para aproveitar os novos recursos no Mavenlink à medida que adotam mais da plataforma. A equipe também poderá trazer novos serviços para a API GraphQL de forma fácil, com impacto mínimo para os aplicativos que são alimentados pelos dados fornecidos por meio do StepZen.

Sobre a Work & Co

Work & Co (link externo ao ibm.com) é uma agência premiada que projeta e entrega produtos digitais que transformam as empresas. A empresa ajuda os clientes a definir estratégias digitais, levar ao mercado e a operacionalizar produtos digitais em grande escala. Sites, aplicativos e experiências digitais da Work & Co são usados por milhões de pessoas todos os dias.

StepZen

A única abordagem declarativa para acesso federado aos dados.

Saiba mais Assine a newsletter da IBM    
Legal

© Copyright IBM Corporation 2023. IBM corporation, New orchard road, Armonk, NY 10504

Produzido nos Estados Unidos da América, Junho de 2023.

IBM e o logotipo IBM são marcas comerciais ou marcas registradas da International Business Machines Corporation nos Estados Unidos e/ou em outros países. Outros nomes de produtos e serviços podem ser marcas comerciais da IBM ou de outras empresas. Uma lista atualizada das marcas registradas da IBM está disponível em ibm.com/trademark.

Este documento é atual na data de sua publicação inicial, podendo ser alterado pela IBM a qualquer momento. Nem todas as ofertas estão disponíveis em todos os países em que a IBM opera.

Todos os exemplos de clientes citados ou descritos são apresentados como ilustração da maneira como alguns clientes usam produtos IBM e dos resultados que eles alcançam. Os custos e características de desempenho ambientais reais podem variar, dependendo das configurações e condições específicas dos clientes. Geralmente os resultados esperados não podem ser fornecidos, pois os resultados de cada cliente dependerão inteiramente dos sistemas e serviços adquiridos. são marcas comerciais ou marcas registradas da International Business Machines Corporation nos Estados Unidos e/ou em outros países. AS INFORMAÇÕES CONTIDAS NESTE DOCUMENTO SÃO FORNECIDAS TAIS COMO ESTÃO, SEM QUALQUER GARANTIA, EXPRESSA OU IMPLÍCITA, SEM QUAISQUER GARANTIAS DE COMERCIABILIDADE ADEQUAÇÃO A DETERMINADO FIM E QUALQUER GARANTIA OU CONDIÇÃO DE NÃO INFRAÇÃO. Os produtos IBM têm garantia de acordo com os termos e condições dos contratos sob os quais são fornecidos.