Como sabemos, qualidade vai muito além de testes. Softwares devem ser projetados, desenvolvidos e executados para atender e exceder as expectativas e necessidades do usuário.
E quando pensamos em Qualidade de Software dentro da área de Tecnologia, estamos falando de temas como: funcionalidade, usabilidade, confiabilidade, performance, segurança, eficiência, observabilidade, manutenabilidade, dentre outros.
Mas como tratar cada um destes assuntos? Melhor dizendo, como gerenciar cada um destes temas?
Muitas empresas gerenciam suas squads com metodologias de trabalho fortemente baseadas em Scrum, que visam uma entrega mais ágil. Neste contexto, é comum nos depararmos com alguns, ou todos, indicadores abaixo:
Indicador | Descrição |
Throughput | Quantidade de entregas que o time consegue realizar ao final de uma sprint ou um período de tempo |
Cycle Time | É o tempo que um card leva para ser entregue a partir do momento em que começou a ser trabalhado |
Lead time | Considera todo o tempo em que o card permanece no board até ser concluído |
WIP | Quantidade de cards em que o time trabalha simultaneamente |
Time To First Hello World | Tempo que um código leva para percorrer toda a esteira de desenvolvimento até a chegar à produção |
Story Points | Expressa a estimativa do esforço geral necessário para implementar por inteiro um backlog do produto |
Team Productivity | Capacidade de produtividade do Time como um todo dentro da Sprint |
Dos exemplos citados acima, podemos elencar 2 indicadores de performance (KPIs) como essenciais, que devem ser medidos e analisados desde o momento da primeira implantação:
- Cycle Time
- Lead Time
Em um cenário comum, cycle time é uma fração de lead time:
Quando trabalhamos com apenas 1 squad, é relativamente simples medirmos e gerenciarmos os indicadores. Mas, certamente, esta não é a realidade. É comum encontrarmos dezenas de squads em uma única empresa, o que aumenta consideravelmente o esforço para coleta dos dados e gestão dos indicadores.
O que acontece se sua empresa possuir 10 squads?
E 50 squads?
Não são poucas as empresas no Brasil que possuem 25, 50, 100 ou mais squads apenas entre desenvolvimento e testes funcionais.
Diante destes dados, como seria possível responder:
- Quais squads são mais produtivas?
- Quais squads são menos produtivas?
- Quais squads aumentaram seu lead time nos últimos 3 meses?
- Quais squads diminuíram seu cycle time nos últimos 6 meses?
E o que acontece se além de gerir a eficiência de suas squads, ainda quisermos trabalhar com indicadores de usabilidade, confiabilidade, performance, segurança, eficiência, observabilidade e manutenabilidade?
Quantas séries temporais deveriam ser analisadas? 500? 1000? 5000?
E como analisar cada série? Individualmente? Em conjuntos? Usando thresholds estáticos? Como ser data driven em um universo tão grande de informações?
A resposta para todas estas perguntas é a mesma: Quality Analytics.
Leia também:
- SAFe: o que é e como o framework ágil pode mudar sua carreira
- Metodologia Agile: quais os desafios e como implementar
Temas como artificial inteligence, machine learning, AIOPS, natural language processing, anomaly detection, trend detection entre outros, são cada vez mais utilizados para resolver problemas em agilidade e qualidade de software.
Todas estas ferramentas nos ajudam a fazer gestão por resultados em Qualidade de Software e obter insights para tomada de decisão.
Por exemplo, se imaginarmos que somos uma empresa preocupada com a performance de nossos produtos digitais, e quisermos saber quais funcionalidades/jornadas do usuário tiveram seu tempo de resposta aumentado nos últimos meses.
Novamente nos deparamos com uma situação assim:
Com o uso de artificial intelligence, é possível facilmente identificar apenas as séries temporais que tiveram tendência de aumento, demonstrando as funcionalidades que precisam ser analisadas e otimizadas, para melhorar a qualidade do usuário final:
Sem o uso de thresholds estáticos.
Sem intervenção humana.
Detectar anomalias em séries temporais também é uma ferramenta poderosa para gerenciamento de Qualidade de Software. Por exemplo, identificar picos de acesso não esperados em um determinado sistema ou funcionalidade:
Ou aumentos no tempo médio de resposta de um aplicativo:
Então, estamos dizendo que os analistas de Qualidade de Software podem ser substituídos por inteligência artificial (IA)? De maneira alguma!
Nenhum ser humano é melhor do que uma máquina para identificar mudanças de baseline em dados. E nenhuma máquina é melhor do que um ser humano suportado por máquinas para executar o mesmo trabalho.
Isto é ser data driven.
Isto é AIOPS.
Isto é Quality Analytics!
Ficou interessado? Entre em contato conosco para que possamos ajudá-lo nesta jornada de melhoria contínua da qualidade dos softwares.
Escrito por: Cleber Marques, Gerente de Analytics na Inmetrics