Como a Ciência de Dados pode melhorar a Qualidade do Software?

A ciência de dados, ou data science,  é uma área que se vende muito bem.

Ela vem gerando excelentes expectativas para as organizações, negócios e também para os profissionais, além de apresentar novos produtos e soluções para melhoria através da exploração dos dados. E os recursos de Big Data estão aí para serem explorados.

Meu desafio neste post é apresentar idéias de como extrair informações para a aplicar melhoria na qualidade de software através das técnicas e ferramentas da ciência de dados.

Onde a história começa

Depois de muitos anos de existência de um software (ou um ERP) é muito comum que existam centenas (ou milhares) de linhas de arquivos de logs que são geradas diariamente.
Logs de diferentes tipos, tamanhos, formatos, cada um para resolver uma situação, uma camada, uma integração, um webservice, etc.
Esses dados podem ser como tesouro pronto para ser descoberto. Passei a apostar que pode ter um tesouro escondido, refletindo:

  • Quais informações esses dados escondem?
  • Como lapidá-los de forma a extrair informações relevantes?
  • Essas informações poderão servir para a qualidade do software?
  • Quais novos dados posso gerar para ajudar a melhorar as operações de meu software?

turbo

Os dados de log gerados pelo sistema podem servir para dar um “impulso” no desempenho do próprio sistema, assim como os gases gerados pelos motores dos carros são aproveitados pelo turbo, dando aquele “vruuum”.

Será que essa abstração fará sentido? Vamos continuar…

Porque precisamos da Ciência de Dados?

data-sicence

“Ciência dados é a extração de conhecimento a partir de grandes volumes de dados que são estruturados ou não, que é uma continuação do campo de mineração de dados e análise preditiva, também conhecido como descoberta de conhecimento e mineração de dados (KDD). “Dados não estruturados” pode incluir e-mails, vídeos, fotos, mídias sociais e outros conteúdos gerados pelo utilizador. Ciência de dados, muitas vezes requer a triagem através de uma grande quantidade de informação e escrever algoritmos para extrair insights de dados.”

Fonte: Wikipedia.

Jeff Leek afirma que o dado é a segunda coisa mais importante:

“O dado é o segundo mais importante. A coisa mais importante na ciência de dados é a pergunta (ou a questão). A segunda mais importante é o dado. Muitas vezes os dados vão limitar ou permitir as perguntas. Mas ter os dados não podem te salvar se você não tiver uma pergunta.”

Fonte: Data Scientist Toolbox

Estamos então falando de uma ciência cujo desafio é fazer as perguntas certas utilizando os dados para procurar as respostas. A abordagem ciêntífica nos leva e delimitar o contexto primeiro e depois partir para as possíveis respostas.

Refletindo…

Minha abordagem inicial já estava equivocada eu estava partindo dos dados para gerar resultados. Mas podemos perceber que  os dados são a segunda coisa mais importante. A coisa mais importante são as perguntas.

E como melhorar a Qualidade do Software?

Então após “voltar para a prancheta”, analisando o que realmente poderia agregar valor, gerando qualidade ao software, conclue-se que o mais correto é focar em elaborar as perguntar corretas.

As perguntas que motivam esse desafio são:

5444443-Portrait-of-a-thoughtful-man-with-question-marks-surrounding-his-head-Stock-Photo

  • Quais os pontos do sistema que são mais acessados por usuários?
  • Quais os pontos mais lentos do sistema?
  • A troca de dados entre as aplicações (cliente, servidor, integração) é eficiente?
  • Quais as consultas SQLs mais executadas?
  • Quais as consultas SQLs mais lentas?

Proximos posts

E o desafio continua…

Nos próximos posts pretendo dar continuidade à estas idéias apresentando:

  • Mais detalhes do desafio;
  • O que se espera de um cientista de dados;
  • Ferramentas de coleta dos dados;
  • Técnicas de limpesa de dados;
  • Armazenamento das evidências;
  • Geração de gráficos e dashboards;
  • Automação das operações de coleta.

Ja pensou nisso antes? Sinta-se livre para comentar ou ainda me ajudar neste desafio.

Finalizo o post deixando uma citação de John Tukey :

“Os dados podem não conter a resposta. A combinação de alguns dados e um árduo desejo para uma resposta não garante que uma resposta razoável pode ser extraída a partir de um determinado conjunto de dados…”

The following two tabs change content below.

Fabiano de Freitas Silva

Software Engineer at Softplan
Mais de 15 anos de experiência em Engenharia de Software, Desenvolvimento de Aplicativos, Administrador de banco de dados e Gestão de Projetos em uma ampla variedade de aplicações. Na Softplan atua como Analiste de Suporte ao Desenvolvimento, Scrum Master em uma Time Ágil, apoiador na tomada de decisões de liderança técnica, apoiador e facilitador de equipes de desenvolvimento de sistemas, entre outras demandas. Programador em sistemas de multithreading de alta disponibilidade para proporcionar uma melhor performance.

Sobre Fabiano de Freitas Silva

Mais de 15 anos de experiência em Engenharia de Software, Desenvolvimento de Aplicativos, Administrador de banco de dados e Gestão de Projetos em uma ampla variedade de aplicações. Na Softplan atua como Analiste de Suporte ao Desenvolvimento, Scrum Master em uma Time Ágil, apoiador na tomada de decisões de liderança técnica, apoiador e facilitador de equipes de desenvolvimento de sistemas, entre outras demandas. Programador em sistemas de multithreading de alta disponibilidade para proporcionar uma melhor performance.

Deixe uma resposta