Ah, o bug! Ele aparece em diversas formas, cores, tipos, as vezes é um bug engraçado em um dos nossos jogos favoritos, as vezes é algo que pode levar empresas à ruina em poucos minutos.

Todo mundo já deve ter passado por isso: aquele botão que não funciona, aquele relatório que parece demorar uma vida, o like do crush no instagram que não aparece pra ele, ou até mesmo um foguete da NASA que cai.

O Thanos não era tão inevitável como ele pensava, mas com certeza os bugs são! Dezenas de estudos, padrões, metodologias e processos já foram criados na tentativa de se livrar deles, mas eles continuam assombrando o nosso cotidiano.

Muitas vezes não sabemos da existência do bug até ser tarde demais e o estrago ser feito, como no caso da Mariner 1, foguete da NASA que foi destruído por decorrência de uma falha no software, ou mais precisamente, a falta de um hífen no código-fonte, gerando mais de $170 milhões de dólares de prejuizo!

Óbviamente esse é um exemplo bastante extremo, mas nos faz perceber que quanto mais tarde o bug for descoberto, e corrigido, mais caro vai ser, então vamos entender um pouco dos números por trás disso.

Surge uma idéia

Imagina que você teve uma idéia genial de criar um app de mobilidade, e vai chamar ele de Uber e os invejosos dirão que não vai dar certo

Na pressa de lançar logo o app, você (e a empresa que desenvolveu o app) acabou fazendo vista grossa para várias coisas importantes que não cabiam no prazo ou no orçamento.

Finalmente chegou o dia do lançamento, os usuários se cadastram aos montes, você já está até mesmo planejando seu IPO, mas de repente as coisas começam a desandar...

Alguns usuários pedem uma corrida, mas o motorista nunca aparece, enquanto outros são cobrados várias vezes pela mesma viagem.

E "do nada", o seu negócio de $84 bilhões de dólares some diante dos seus olhos! Os usuários se foram, e não estão dispostos a voltar.

Ok, talvez a imaginação tenha ido um pouco longe, mas deu pra entender o impacto que um bug pode gerar.

De onde vem esse custo ?

Conforme um estudo do Systems Sciences Institute (IBM) mostrou, o custo da correção de um bug pode variar conforme o estágio no qual ele foi encontrado:

Gráfico mostrando que o custo de corrigir um bug é 100x mais caro quando em produção do que quando na fase de design

Um bug encontrado em produção, é muito mais caro para se corrigir, devido à fatores como: horas de desenvolvimento que serão gastas debugando código para encontrar a causa raiz do bug, refatoração de outras funcionalidades que dependem do mesmo código defeituoso, entregas sendo atrasadas por dependerem da correção do bug, danos à imagem da empresa e até mesmo prejuizos financeiros diretamente causados por causa desse bug.

Exemplo rápido: há alguns anos eu trabalhava em uma Fintech, e um bug simples em uma procedure SQL fez a empresa perder mais de 100 mil reais em menos de meia hora, felizmente o bug foi encontrado e corrigido de forma rápida, mas mesmo assim trouxe uma enorme perda financeira.

Certamente ninguém quer ter bugs em seu sistema, então como podemos evitar diminuir a quantidade de bugs e aumentar a qualidade do nosso software?

Aqui na Boomers somos adeptos do TDD e Code Review, processos no desenvolvimento de software que nos ajudam a garantir a alta qualidade do software e que todos os requisitos sejam atendidos, sejam eles funcionais (funcionalidades especificadas pelo cliente) ou não funcionais (como desempenho, segurança, confiabilidade...).

Mas afinal, o que diabos é TDD e Code Review?

  • TDD (Test Driven Development), ou Desenvolviment Orientado por Testes, é quando antes mesmo de escrevermos o código do nosso software, escrevemos um teste para garantir que, assim que o código seja implementado, ele funcione mesmo!
  • Já o Code Review é quando o código-fonte do software passa por revisão de outras pessoas que não implementaram aquela parte especifica do sistema, tendo uma visão imparcial e podendo pegar erros muito antes de eles irem para produção, além de melhorar a qualidade do código como um todo.

Além de garantir uma maior qualidade do software como um todo, o TDD aumenta a confiança que o time tem em futuramente manter o sistema e fazer alterações, sabendo que as alterações feitas não irão quebrar o software.

Muitas empresas que optam por não utilizar o TDD em prol da agilidade inicial, se vêem alguns meses depois com ciclos de desenvolvimento cada vez mais lentos, o crescimento da quantidade de bugs espalhado pelo sistema.

Outro exemplo: já presenciei diversas empresas que possuiam softwares legados, sem testes, e com diversos bugs que foram ignorados ao longo do tempo para priorizar outras features mais "pomposas", e acabaram em uma paralisia total do sistema, tendo que fazer um freezing pois nenhum desenvolvedor tinha condições de corrigir os bugs pois os efeitos colaterais eram imprevisísveis. A agilidade momentânea muitas vezes traz uma lentidão enorme lá na frente, e o investimento $$$ pra resolver isso vai ser muito maior

Outros bugs que entraram para a história

Além da história do Mariner 1 que já mencionamos no começo deste post, separamos outros momentos em que bugs tiveram um impacto gigantesco.

Inland Revenue, Reino Unido

Na terra da rainha, o departamento responsável por coletar os tributos, perdeu mais de 1 milhão de registros de dívidas que nunca poderão ser recuperadas, tudo isso devido à um bug na rotina de limpeza do banco de dados que não conseguia diferenciar registros arquivados de registros ativos.

Knight Capital, EUA

A Knight Capital é uma empresa de serviços financeiros americana que quase foi à falência em 2012, quando um erro no deploy dos seus sistemas deixou um dos servidores com o código antigo em operação, enviando por engano milhões de ordens de compra e venda de ações no periodo de menos de uma hora. O bug causou mais de $440 milhões de dólares em prejuizos, quase quatro vezes mais o que a companhia lucrou no ano anterior.

Você já passou por algo parecido? Entra em contato conosco e nos conta qual o bug que mais te atormenta!

E não esquece de ficar de olho lá no nosso instagram @boomersoficial, assim você não perde nenhum post.