[MÚSICA] Muitas vezes acaba jogando uma funcionalidade no ar e tem um bug, o cliente acaba sendo impactado por um bug. Como reagir a esse bug? Ninguém gostaria, ninguém faz um bug propositalmente. Existem várias maneiras de você tentar mitigar o seu desenvolvimento para que os bugs sejam minimizados ou para que o impacto no cliente seja cada vez menor. Se for um bug muito grave. Por exemplo um bug que o cliente perdeu dinheiro, isso é muito grave. Você tem que ter muito cuidado com as coisas principais, com as coisas que vão impactar o cliente principalmente quando você fala de perder dinheiro, correr riscos de machucar alguém. Essas coisas são realmente mais sérias, mas mesmo quando não é tão grave, você deixar o cliente insatisfeito também é algo ruim porque você pode acabar perdendo-o. Então, uma das maneiras que você tem de fazer isso é incluir no seu processo de desenvolvimento uma parte de testes que o próprio time de desenvolvimento, na minha opinião, deveria fazer. O time que desenvolve tem que testar, tem que saber o quê que está funcionando, o quê que não está funcionando. Parte dos testes de maneira automatizada, ou seja, de uma forma onde ele não precise refazer o mesmo teste várias vezes. Hoje dia você consegue com ferramentas desenvolver testes ou robôs que entram no site e simulam o comportamento de usuário para testar se uma funcionalidade está ok, se está se comportando como deveria e criar robôs que testam automaticamente o seu produto para que, quando você fizer alguma alteração, para que alguma coisa que não foi mexida não seja afetada por esse novo desenvolvimento. Uma das grandes dificuldades, quando você fala de um produto tecnológico, de software é fazer com que ele se mantenha funcionando porque, se ele está evoluindo, se você fez um software e ele está funcionando 100% e você não mexer nele, com certeza ou quase com certeza, a não ser que aconteça algo completamente inesperado, ele vai continuar funcionando. Se você em mexer algo, você está aumentando as chances de quebrar alguma coisa que estava funcionando antes e parou de funcionar porque você incluiu, por exemplo, você incluiu campo novo. Eu vou dar exemplo da nossa empresa: a gente tem o cadastro de artistas e a gente tinha que incluir um o campo novo na tabela de cadastro dos artistas, que era o gênero. Qual é o desse artista? É rock, é MPB, é sertanejo, é funk? A gente tinha que incluir um campo novo no formulário de cadastro. Mas eu não quero que esse campo novo faça com que o meu usuário não funcione mais o cadastro dos outros campos que já estavam funcionando antes. Então, qualquer modificação é passível, mesmo essa mais simples possível que eu falei, que é colocar campo, que é uma coisa muito simples, não deveria impactar no funcionamento daquilo que já estava funcionando. Então, os testes automatizados vão garantir que tudo vai continuar funcionando. Uma outra forma de você controlar o que está funcionando é você ter um sistema de monitoração, você monitorar o comportamento do usuário. Isso é muito importante. O quê que é essa monitoração e para quê que ela serve? É o que a gente chama de real user monitoring ou monitoramento do usuário real. O quê que é isso? Existem alguns eventos no seu aplicativo que são fundamentais, por exemplo, o cliente se logou no sistema, o login é um evento muito importante, todo cliente faz login, ou por exemplo adicionou um produto no carrinho ou visitou a página de pagamento. Alguns eventos são eventos muito chave para o seu negócio e você quer que esses particular estejam sendo monitorados porque, se por acaso algo estranho acontecer, você conseguirá identificar em tempo real que há alguma coisa não funcionando. Muitas vezes, hoje em dia, os nossos sistemas dependem de outros sistemas, de provedores de banco de dados, provedores na nuvem. Você tem uma integração da sua plataforma, do seu site, do seu aplicativo com um banco de dados de algum outro provedor ou banco de dados que está lá na sua nuvem e você quer ter certeza de que, quando o usuário entrou no carrinho, que o carrinho está funcionando. Então, você tem lá um gráfico que, toda vez que alguém entra no carrinho, aumenta um ponto nesse gráfico e você vai monitorar quantas pessoas adicionaram ou quantas pessoas entraram no carrinho ao longo desse dia e você percebe que sempre ao meio-dia há pico, você consegue perceber que há horários que há mais gente usando, há horários que há menos gente usando cada uma das funcionalidades. Por exemplo, o login: as pessoas costumam se logar logo cedo, nove da manhã, dez da manhã, num sistema que você desloga o usuário, se o usuário se deslogou, no dia seguinte ele vai se logar logo cedo. Então, para cada sistema você tem comportamentos diferentes e você tem determinadas funcionalidades que são usadas em determinados períodos do dia. Se você observa um gráfico que, por exemplo, você sabe que meio-dia é o horário que há muitos carrinhos e você observou no gráfico, em tempo real, que naquele momento parou de haver entradas no carrinho, você fala: opa alguma coisa está acontecendo. E aí você vai investigar e descobre que o seu banco de dados está com o disco cheio e você não está conseguindo mais inserir nenhum carrinho porque o banco de dados está com, estourou a capacidade do HD. Então, você vai instantaneamente tomar uma providência para resolver esse problema. Então é muito importante monitorar o comportamento do usuário, principalmente essas coisas mais chaves, essas ações mais importantes que normalmente refletem em vendas, e entender se elas estão dentro da normalidade do seu dia-a-dia e, caso não aconteça, você automaticamente já sabe que há problema, você consegue reagir rápido e impactar o menor número de usuários. Se você não estiver monitorando isso, o que vai acontecer é que, algum momento, usuário vai ligar, vai reclamar mas às vezes isso pode demorar meia hora, uma hora ou às vezes um dia e você vai perder vendas, você vai perder usuários, vai perder credibilidade por conta de alguma coisa que você poderia ter resolvido antes se você estivesse monitorando esses eventos chaves do seu aplicativo. [MÚSICA]