Quanto os erros em software podem custar para a sua empresa?
Muitas empresas aprendem a conviver com bugs em softwares, mas será que realmente mediram o impacto que esses problemas podem causar?
Recentemente tenho lido bastante sobre o quanto custam os problemas em software e então resolvi criar essa série de artigos para me aprofundar mais no assunto.
Acabei lendo alguns artigos em inglês e vou tentar colocar um custo real dos erros em software em nosso mercado, e como isso começar a pensar nas formas de obstruir essa perda de dinheiro com boas práticas e técnicas de desenvolvimento e como atuar na correção de problemas, comecei uma série falando sobre refatoração, o título: “refatoração de código” que está nesse link.
Tenho falando também sobre a importância do design de código nas séries sobre SOLID e Padrões do GOF, porém nesses artigos não falei nada sobre a a minha intenção em difundir boas práticas e relação entre um bom design e custo operacional, mas porque não começar a falar em testes? Bom, então vamos lá;
O custo dos erros de software para a economia
Em um relatório que acabei lendo em minha pesquisa sobre falhas em software, foi o da tricentis.com, e confesso que me assustei um pouco com o custo das falhas, segundo o relatório esse custo chegou em US $ 1,7 trilhão em perdas financeiras em 2017 ( o ano anterior havia sido US$ 1,1 trilhão).
Vou citar algumas fontes com exemplos que ocorreram ao longo dos anos, e também os 25 erros mais perigosos da atualidade:
1- ComputerWorld — 10 grandes falhas da tecnologia nos últimos anos
2- Tecmundo — Bugs: 10 falhas de computadores que causaram muito prejuízo e confusão
3- RAYGUN — 11 dos erros mais caros da história
4- CWE — Os 25 erros de software mais perigosos em 2019 (em inglês)
Dito isso, nunca foi um momento melhor para proteger os ativos da sua empresa e adotar uma abordagem proativa para solucionar erros de software. Ao fazer isso, você reduzirá os custos associados a erros de software em sua empresa.
Como você pode medir o custo de erros de software em sua empresa
Erros de software podem expor seus usuários finais a softwares lentos e com erros. Ou pior, podem comprometer a segurança dos seus produtos. No entanto, pelo que tenho visto as empresas não vão a fundo para ter a visibilidade dos erros de software, até por que medi-los pode ser uma tarefa bem difícil.
O pior é que os erros de software têm várias consequências, variando de impacto, portanto nem sempre é possível identificar a causa e o efeito. Os efeitos acabam por:
- Custos do desenvolvedor gastos em encontrar e corrigir erros
- Receita perdida contínua de clientes insatisfeitos
Usando algumas médias do setor, podemos ajudá-lo a calcular o custo em tempo de desenvolvimento perdido para sua empresa.
Como calcular o custo do trabalho do desenvolvedor causado por erros de software
Tomando as médias da indústria dos salários de desenvolvimento no Brasil a partir de 2017, podemos estimar os custos financeiros para sua empresa e investigar para onde está indo o dinheiro.
Você deve ter como objetivo cerca de 20 % de trabalho reativo (encontrar e corrigir erros, custos de suporte) , 80% de trabalho proativo (criar recursos e melhorar os produtos). É aqui que você adicionará o verdadeiro valor aos negócios e aos seus usuários.
pegando como base na atual divisão de pessoas em minha empresa, onde cerca de 90% dos desenvolvedores, são .Net:
vou me basear no Brasil onde a média do salário é de : R$ 6.800,00 Fonte: GeekHunter.
O Cálculo
Com base em uma semana de trabalho de 40 horas com um salário médio de R$S 120.000 anual (incluindo impostos e direitos trabalhistas) o desenvolvedor pode passar 8 horas por semana (32 horas por mês). Custando em torno de R$ 22.900,00 por ano, corrigindo erros e replicando problemas.
Este é o tempo gasto sem criar recursos novos e importantes para seus clientes. Portanto, pense duas vezes ao criar sua equipe de controle de qualidade.
Como podemos mudar o cenário?
Precisamos entender que nenhum software estará isento de problemas, e uma meta de 100% de disponibilidade também é irreal. Por isso o mais correto é prevenirmos os problemas.
Como previnir?
Alguns estudos mostram que o custo de software cresce conforme o ciclo de vida de Desenvolvimento, como mostrado na imagem a seguir.
Testar problemas que ocorrem em produção elevam o custo devido a falta de ferramentas em servidores produtivos, por exemplo na máquina do desenvolvedor normalmente temos várias ferramentas de depuração e testes.
A produção é um ambiente muito mais hostil. Quando os problemas são encontrados no front-end, em particular, eles podem ser ainda mais complexos para diagnosticar e resolver.
Não existe mágica, é necessário cada vez mais que os desenvolvedores sejam capacitados a utilizar boas práticas de desenvolvimento, utilizando os melhores padrões para seu devido fim. E também realizar testes para mitigar os problemas que podem ser gerados. Para que isso seja possível é importante ter em mente a importância do engenheiro de testes na sua empresa para ajudar os desenvolvedores a realizar os testes adequados, sejam eles e2e, unitários ou de stress.
Bom pessoal, vou ficando por aqui nesse primeiro artigo da série, onde eu pretendo falar sobre testes de software e a importância deles para reduzir custos, pretendo no próximo artigo começar a falar sobre a importância de testes unitários e como eles ajudaram os nossos times a resolver problemas antes de estarmos em produção. Abraço e até a próxima.
Fontes:
https://www.tricentis.com/resources/software-fail-watch-5th-edition/
http://blog.celerity.com/the-true-cost-of-a-software-bug
https://crossbrowsertesting.com/blog/development/software-bug-cost/
https://raygun.com/blog/cost-of-software-errors/
https://www.lg.com.br/blog/muito-alem-salario-afinal-qual-o-custo-de-um-funcionario-para-empresa/
https://www.statista.com/statistics/500641/worldwide-qa-budget-allocation-as-percent-it-spend/