Como evitar que um produto usado por milhões fique fora do ar

0

Nos últimos meses, problemas em aplicações utilizadas por milhões de usuários no Brasil e no mundo impactaram as pessoas na hora de comprar, fazer o download de programas para pagar tributos, realizar operações financeiras, ouvir músicas e podcasts e até conversar por meio de chats. Além de atividades criminosas, como ataques hackers, outros fatores fizeram com que aplicativos, streamings, e-commerces e demais produtos digitais ficassem fora do ar.

Felizmente, a maioria desses problemas foi corrigido em questões de horas. Contudo, não sem antes gerar um impacto negativo à empresa, que pode ser um problema de imagem, perdas financeiras, pressão dos órgãos públicos, riscos jurídicos e impossibilidade de vender produtos e serviços. No caso das empresas com capital aberto, o valor das ações também caiu junto com os problemas de indisponibilidade, mas um fator positivo é que a recuperação do valor acompanhou a velocidade com que o problema era corrigido.

O concorrente está a um clique de distância no mundo digital. Para se ter uma ideia do impacto de uma indisponibilidade, em outubro de 2021, enquanto um aplicativo de comunicação estava fora do ar, seu concorrente recebeu 70 milhões de novos usuários. Esse número mostra como o mercado de aplicativos é competitivo, pois nele também se disputa o espaço físico que o cliente tem no celular. Segundo a pesquisa "The uninstall threat", da AppsFlyer, nos países em desenvolvimento como o Brasil, onde os aparelhos tendem a ter configurações mais simples, 56% dos aplicativos são desinstalados em 30 dias.

O melhor cenário para evitar problemas sempre é a realização de testes para detectar possíveis falhas que podem acontecer e a implantação de soluções com o objetivo de mitigar os riscos de ficar inoperante. Um dos dados mais recentes sobre os prejuízos causados por problemas no desenvolvimento de software é do estudo "The Cost of Poor Software Quality in the US", da CISQ (Consortium for Information & Software Quality). Ele analisou os prejuízos devido à falta de qualidade nos softwares dos Estados Unidos em 2020, e estimou um prejuízo de US$2,08 trilhões, sendo a maior parte deles, US$1,56 trilhões, causados por falhas operacionais que poderiam ter sido mitigadas.

O "zero bug" é uma utopia no desenvolvimento de software, ou seja, problemas e falhas irão acontecer. Mas é necessário analisar os riscos, testar e saber o que fazer para que os principais problemas, seja pela gravidade ou pela frequência com que possam ocorrer, sejam atenuados.

Ao avaliar os relatos divulgados pelas empresas à imprensa é possível verificar que alguns problemas poderiam ser mitigados com uma boa cobertura de testes. Testes estes que deveriam checar o número de usuários simultâneos, a definição de datas e horários mais adequadas para a adição de novas funcionalidades ou mesmo para a realização de atualizações e manutenções.

Explico então algumas ações para mitigar riscos de indisponibilidade:

Horários adequados para testar e atualizar

Alguns testes geram uma carga intensa e um volume de acessos muito grande, justamente, porque têm o objetivo de detectar quais ajustes de infraestrutura precisam ser feitos em servidores ou banco de dados para avaliar sua capacidade e prevenir quedas devido ao número elevado de usuários e ações simultâneas.

Cada empresa tem suas particularidades e seu conhecimento sobre o negócio e os usuários ajudam a definir os horários e dias mais adequados para a realização de testes, manutenções e atualizações. De forma geral, esses testes são realizados de madrugada, pois nesse período, sites e aplicativos têm menos acessos e reduz-se a possibilidade de comprometer a operação.

Já os dias da semana mais indicados podem variar conforme a atividade da empresa. No caso de um delivery de alimentação, por exemplo, é aconselhável evitar o fim de semana. No entanto, alguns serviços da área financeira, como caixas eletrônicos, não estão disponíveis durante a madrugada, o que torna esse período o mais adequado. As equipes de tecnologia e negócios devem planejar a execução dessas ações visando gerar menos impactos aos usuários.

Novas funcionalidades precisam ser testadas

O produto digital precisa evoluir e agregar mais valor ao negócio e ao usuário. Dessa forma, novas funcionalidades devem ser incorporadas para oferecer aos clientes facilidades, diferenciais em relação à concorrência ou mesmo cumprir com determinações legais.

O mercado brasileiro, por exemplo, dispõe de várias opções de formas de pagamento. Os clientes podem gerar um boleto bancário, usar um cartão de crédito físico ou virtual, ou fazer um depósito pelo PIX. Mas novas possibilidades de pagamento como o parcelamento por meio do PIX e boletos vão demandar atualizações. Mesmo que o e-commerce funcione perfeitamente, ao disponibilizar uma nova feature, mais testes precisam ser feitos para avaliar se essa funcionalidade corresponde às expectativas e não irá gerar um problema inédito.

Outra dica é evitar disponibilizar novas funcionalidades em períodos próximos às datas importantes e com grande volume de acessos. No caso do varejo é bom evitar grandes atualizações imediatamente antes do Dia das Mães, Black Friday e Natal. Nas instituições financeiras, no início do mês, acontece um volume maior de transações, portanto é mais arriscado implementar novas funcionalidades nesse período.

Aprenda com as experiências passadas

Construa aprendizados com os problemas que aconteceram e foram solucionados. Para melhorar esse processo, é aconselhável usar ferramentas que contenham informações como: bug detectado, qual problema ocorreu e o que foi feito para solucioná-lo. Isso pode ser feito em uma simples planilha; o mais importante é a análise e o uso dessas informações para reduzir o tempo de indisponibilidade.

Infelizmente, algumas empresas ainda enxergam os testes como uma etapa final e os QAs (também chamados de analistas de testes) devem atuar apenas quando o código já foi escrito – mas essa é uma visão antiquada e que só traz prejuízos às companhias. Para reduzir o número de problemas é essencial a participação dos QAs desde a etapa de planejamento e especificação das regras de negócio. Dessa forma, é possível reduzir erros e construir um produto de qualidade desde sua concepção, reduzindo o tempo gasto em correções e retrabalhos que demandam a cada nova fase mais tempo e profissionais, encarecendo o custo de desenvolvimento.

Bruno Abreu, cofundador e CEO da Sofist.

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.