
Nesta primeira parte de uma série de artigos "Citymobil - um manual para melhorar a disponibilidade em meio ao crescimento dos negócios para startups", detalharei a maneira como conseguimos aumentar drasticamente a disponibilidade dos serviços da Citymobil. O artigo começa com a história sobre nossos negócios, nossa tarefa, o motivo dessa tarefa para aumentar a disponibilidade e as limitações surgidas. Citymobil é um agregador de táxis de rápido crescimento. Em 2018, aumentou mais de 15 vezes em termos de número de viagens concluídas com sucesso. Alguns meses apresentaram aumento de 50% em relação ao mês anterior.
Os negócios cresceram como uma erva daninha em todas as direções (ainda o fazem): houve um aumento na carga do servidor, no tamanho da equipe e no número de implantações. Ao mesmo tempo, surgiram novas ameaças à disponibilidade de serviços. A empresa enfrentou uma tarefa da maior importância - como aumentar a disponibilidade sem comprometer o crescimento da empresa. Neste artigo, falarei sobre a maneira como conseguimos resolver esta tarefa em um tempo relativamente curto.
1. Definindo uma tarefa: o que exatamente queremos melhorar?
Antes de melhorar algo, precisamos aprender como medi-lo para registrar as melhorias. Quanto mais próximo o valor mensurável dos termos de negócios, melhor. Em termos de sucesso, nosso parâmetro mais importante é um número de viagens concluídas com sucesso (daqui em diante "número de viagens"). Esse é o parâmetro que os investidores estão observando ao tomar uma decisão sobre um investimento. Quanto mais viagens, mais valiosa é uma empresa.
Algumas viagens são lucrativas, outras produzem uma perda. Mas também nos preocupamos com todas as viagens, mesmo as não lucrativas, pois elas permitem que a participação no mercado aumente (na verdade, essa perda é um pagamento pelo aumento da participação no mercado). Portanto, toda viagem extra é uma coisa boa; e todo perdido - não é. Todas as viagens são iguais em termos de sucesso nos negócios.
Agora, temos um critério de medição de disponibilidade fácil de entender: número de viagens perdidas - essas são as viagens que definitivamente perdemos devido a problemas técnicos. Por "problema técnico", entendemos, por exemplo, bug de código, erro de servidor interno 500, acidente de infraestrutura, integração danificada com nosso serviço de parceiro (por exemplo, Google Maps).
2. Como contar as viagens perdidas?
Às vezes é fácil contar viagens perdidas e às vezes é difícil. Por exemplo, em caso de falha total do serviço, quando nada funciona (bata na madeira), é muito fácil contar as viagens perdidas. Conhecemos a tendência do gráfico do número de viagens antes do acidente; vemos essa tendência gráfica após o acidente; traçamos uma linha entre o ponto em que o tempo de inatividade começou e o ponto em que terminou. O gráfico do número da área de viagens sob esta linha concluída representa nossas viagens perdidas.
No gráfico abaixo, a linha preta mostra as viagens em um dia e a verde - as viagens da semana passada. No eixo x - tempo. No eixo y - número de viagens em algum momento da janela em torno do ponto x. Você pode ver uma queda óbvia na forma de um triângulo agudo. Esta área do triângulo é o número de viagens perdidas. Naturalmente, é um número aproximado, pois é um gráfico flutuante. No entanto, entendemos que até 10 a 20% de precisão é suficiente para avaliar a magnitude do acidente para os negócios.

Se o tempo de inatividade não for total, mas parcial (ainda bater na madeira), a avaliação será um pouco mais complicada. Por exemplo, se houver um erro que causa a situação em que 10% dos pedidos não estão sendo distribuídos pelos veículos, no gráfico de viagem, vemos um barranco e depois recuperamos (depois que o bug foi corrigido). Nessa situação, as viagens perdidas são representadas pela área separada pela linha de tendência na parte superior, o gráfico do número real das viagens na parte inferior, o tempo de inatividade começa à esquerda e o tempo de inatividade à direita.
Como visto no gráfico abaixo, o pico de queda não é tão evidente, mas o número de viagens durante a semana anterior sem picos de queda ajuda a entender que esse pico de queda significa perda. De fato, a comparação de viagens durante o dia e o mesmo dia da semana passada deixa claro que o pico mais baixo à direita não mostra viagens perdidas, mas uma ravina comum para essa hora do dia, pois está correlacionada com a semana anterior.

Geralmente, é difícil construir uma linha de tendência, pois é um dente de serra. É aí que a comparação semana a semana é útil. Se desenharmos duas linhas no mesmo gráfico - semana passada e atual, veremos que as duas curvas são quase semelhantes, e a única diferença é que uma está localizada acima da outra (geralmente a semana atual é maior que a anterior; apesar de exceções acontecem). A comparação semana a semana é muito importante, pois todos os dias da semana, devido a vários motivos, têm uma forma gráfica diferente. Quando olhamos para o gráfico semanal, podemos dizer a localização da linha de tendência das viagens de hoje.
Obviamente, uma viagem perdida por si só apresenta um problema muito maior do que apenas uma viagem perdida. Um cliente que precisa de uma carona encontrará um caminho a percorrer; por exemplo, ela pode usar um serviço competitivo e não voltará para nós mais tarde. Ou ela o fará, mas somente depois de ficar desapontado com o nosso concorrente, o que é improvável, pois nossos concorrentes são fortes. Mais do que isso, mesmo que o concorrente desaponte o cliente, não é necessário que ele decida voltar para nós: ela acreditará que todo mundo tem um serviço ruim e não há sentido em mudar de um serviço para outro.
Portanto, uma viagem perdida devido a problemas técnicos significa, de fato, várias viagens perdidas.
Para não ficar confuso em termos, vamos chamar as viagens perdidas devido a problemas técnicos reais,
viagens perdidas primárias; e as viagens perdidas devido a um cliente nos deixar para o nosso concorrente -
viagens perdidas secundárias.Idealmente, para estimar a perda total de negócios de uma viagem perdida primária, precisamos descobrir quantas viagens perdidas secundárias foram geradas. Portanto, precisamos multiplicar um número de viagens perdidas primárias por algum coeficiente
K que possa ser calculado com base na taxa média de uso do serviço e no tempo médio necessário para o cliente retornar depois de nos deixar para o nosso concorrente.
Supondo que
K não mude muito com o tempo, seria suficiente para entendermos a tendência de perda de viagens para contar as viagens perdidas primárias, uma vez que a correlação período a período entre viagens perdidas primárias será a mesma que período correlação entre períodos entre viagens perdidas secundárias. Exemplo: se perdemos 1000 viagens primárias no mês passado, perdemos 1000 *
K viagens secundárias e 1000 * (1+
K ) no total. Se, novamente, perdemos 500 viagens principais neste mês, perdemos 500 *
K viagens secundárias e 500 * (1+
K ) no total. Dito isto, apesar do valor do coeficiente
K , perdemos agora 1000 * (1+
K ) / (500 * (1+
K )) = 2 vezes menos viagens.
Mesmo que o coeficiente
K mude com o tempo (sendo uma função do tempo: K (t)), ainda estamos interessados em diminuir o número de viagens perdidas primárias. Pois se K (t) cresce com o tempo, definitivamente temos que fazer um esforço para perder menos viagens primárias, já que a perda financeira causada por cada uma delas está ficando cada vez maior. Por outro lado, se K (t) diminuir com o tempo, significa que, por algum motivo, nossos usuários estão ficando cada vez mais leais a nós, o que significa que devemos absolutamente corresponder às suas expectativas!
Em resumo: estamos nos esforçando para diminuir a perda de viagens primárias. Na próxima parte, vou falar sobre como nosso processo funciona e o que fizemos para melhorá-lo. Fique atento!