Aprimore abordagens de desempenho para oferecer experiências de alta qualidade no Microsoft Teams

Diante das expectativas dos clientes que estão em rápida evolução e do crescimento maciço na demanda pelos serviços de comunicação e colaboração digitais que o Microsoft Teams oferece, aprendemos muito nos últimos dois anos sobre o que é necessário para oferecer uma experiência de alto desempenho com o Teams. Na verdade, construímos nosso roteiro de produtos e já fizemos vários aprimoramentos projetados para garantir que o Teams ofereça o melhor desempenho possível.

O melhor desempenho envolve garantir o uso eficiente dos recursos do dispositivo, como CPU e memória, a flexibilidade para fornecer uma experiência de qualidade em uma variedade de tipos de dispositivos, velocidades de rede e variabilidade na conectividade. Neste texto, fornecemos uma visão geral de nossa abordagem para aprimorar o desempenho do Teams, inclusive os fundamentos utilizados, e compartilhamos com você nossas melhorias para a experiência do usuário com a ferramenta. Aqui estão algumas das etapas que estamos fazendo para isso:

  • Definir metas de desempenho
  • Relatórios e insights
  • Defesa
  • Ferramentas
  • Investimento Estratégico
  • Cultura

Definir metas de desempenho

Temos metas agressivas e documentadas visando a capacidade de resposta, latência, memória, energia e espaço de disco do aplicativo. Tendemos a nos concentrar nas métricas de situações extremas de performance, que podem ser resultados de dispositivos muito simples, bem como na experiência média que os usuários experimentam, para garantirmos hipóteses baseadas em diferentes casos. Esses objetivos-alvo são então aplicados ao desenvolvimento de recursos. Os fatores que influenciam esses cenários e metas incluem ouvir o feedback de clientes e parceiros, a frequência com que o cenário ocorre e o impacto esperado que as mudanças terão em nossos usuários.

 

Analisando o desempenho com relatórios e insights avançados

Para nos ajudar a analisar intensivamente as métricas de desempenho, uma extensa instrumentação é adicionada aos clientes. As métricas são capturadas primeiro em um laboratório e depois gradualmente com um pequeno conjunto de usuários à medida que implantamos as atualizações para validá-las. Quando os objetivos atingem suas metas, expandimos para mais usuários. Painéis com diferentes pivôs estão disponíveis para fornecer visualizações para observar tendências, identificar oportunidades de melhoria e validar o impacto das mudanças.

As melhorias de desempenho geralmente são implementadas primeiro em apenas uma parte da base de usuários, permitindo-nos experimentar e comparar métricas com o código existente usado por outros usuários. Abaixo está um gráfico de exemplo gerado a partir de um teste A/B à medida que movemos o processamento de dados para uma thread separada. Esse experimento forneceu dados do mundo real para validar os impactos e fornecer justificativa de que deveríamos implementar a mudança para toda a base de usuários.

Exemplo de um experimento de teste A/B

 

Foco no desempenho enquanto inovamos

À medida que os desenvolvedores do Microsoft Teams introduzem novos recursos, também trabalhamos para evitar qualquer regressão de nossas principais métricas de performance. Uma combinação de técnicas é aplicada, incluindo o uso de relatórios e experimentação. As portas (gates) são um conjunto de testes automatizados que medem características de desempenho em um ambiente controlado. Eles cobrem latência, capacidade de resposta do aplicativo, memória e espaço de disco. Se um limite for violado, um incidente de site ativo será criado e atribuído à equipe responsável para mitigar os efeitos do novo recurso antes que ele avance para a próxima etapa de teste.

Abaixo está um painel de exemplo mostrando um gate para a memória que o componente de pesquisa consome quando o Microsoft Teams é iniciado. Cada ponto representa uma nova alteração que um desenvolvedor fez check-in na base de código, acionando o teste automatizado para executar e coletar a métrica. Você pode ver que uma alteração feita em 11 de novembro reduziu a memória na inicialização de cerca de 31 KB para cerca de 30 KB. Em outros exemplos, veremos que as alterações têm um impacto negativo na métrica, o que significa que bloquearíamos o progresso de recursos específicos até que uma correção fosse implementada. Gates como este são configurados para uma variedade de cenários e continuamos a expandir a cobertura que temos.

 

Investir em melhorias estratégicas

Uma grande parte do nosso trabalho está focada na inclusão de correções direcionadas com ganhos incrementais, bem como mais mudanças estruturais na arquitetura que visam alcançar uma melhoria da função de etapa nas métricas. A priorização desses investimentos leva em conta o impacto esperado, a ocorrência do cenário, a confiança da correção e o esforço para atingir os resultados almejados. Quando se trata de grandes mudanças arquitetônicas, geralmente começamos com uma prova de conceito para validar a hipótese. Nossa intenção é ter melhorias contínuas a cada trimestre e investir em ir além das restrições técnicas da arquitetura existente.

Um investimento estratégico recente de nossa equipe teve como objetivo tornar o carregamento inicial da caixa de composição mais rápido para agilizar o tempo que um usuário leva para compor uma mensagem. A análise descobriu que o cliente estava carregando componentes não visíveis junto com todo o resto e estava fazendo renderizações desnecessárias. A correção foi aplicada priorizando a caixa de composição para ser interativa antes de carregar todos os outros componentes, ganchos e extensões. Essa otimização relativamente pequena teve um impacto significativo nessa métrica (veja o gráfico abaixo) e destaca a necessidade de buscarmos melhorias de curto e longo prazo.

Teste A/B mostrando melhoria de desempenho do tempo de composição para interação

 

Promovendo uma cultura de desempenho em primeiro lugar

Como diz o ditado, “A cultura come a estratégia no café da manhã”, e isso certamente se aplica para garantir que a equipe do Microsoft Teams priorize o desempenho. Nossa cultura é possivelmente a ferramenta mais impactante para garantir que nossa organização de designers, gerentes de produto e engenheiros esteja construindo e executando com uma mentalidade de desempenho em primeiro lugar em todos os nossos recursos e compromissos.

O envio de um recurso que atende a uma necessidade funcional e cria uma ótima experiência do usuário não é bom o suficiente. Ele também deve cumprir o padrão das promessas fundamentais que fazemos em termos de desempenho, confiabilidade, segurança, privacidade, conformidade, acessibilidade, capacidade de gerenciamento, escala e eficiência operacional. Somos impulsionados por pessoas dedicadas na equipe, com prioridades como ouvir os clientes, planejamento, comunicação e treinamento, e estamos comprometidos em atender às necessidades e expectativas de nossos usuários.

Estamos felizes em ouvir mais a comunidade para aprender e continuar a melhorar, e pretendemos publicar textos adicionais para os principais tópicos mencionados neste post geral. Compartilhe comentários e vote em suas solicitações de desempenho no portal de comentários do Teams.

Tags: ,

Posts Relacionados