A diretoria de pesquisa e operações é um setor crucial em qualquer empresa que busca inovação e melhoria contínua. Com uma equipe especializada em análises e estratégias voltada para os métodos ágeis e desenvolvimento científico, esta diretoria tem como objetivo desenvolver novas soluções, melhorar processos e aumentar a eficiência das pesquisas científicas. Neste texto, iremos explorar as principais funções e responsabilidades de nossa diretoria de pesquisa e operações e mostrar como ela pode impactar positivamente.
Nossa equipe se iniciou em 2023, com um time de 3 pesquisadores. Nos comportamos como uma equipe pequena e multidisciplinar, trabalhamos juntos nos nossos projetos e nos responsabilizamos por todas as fases do ciclo de vida, vide esquema abaixo, portanto um squad. O Squad Pesquisa e Operações do TerraLAB tem como missão a produção de artigos científicos de qualidade, e dar a vivência prática dos métodos ágeis através do framework SCRUM.
Figura 01: Ciclo de Vida de um Serviço de Pesquisa Científica
Atualmente os pesquisadores do squad ocupam três das cinco vagas, sendo elas focadas em, Agile Software Development (ASD), Product Owner (PO) e Quality Assurance (QA). As vagas disponíveis serão destinadas a alunos que estejam em cargo de liderança no TerraLAB, fazendo TCC, mestrado ou doutorado. No futuro breve, iremos escalar essa estrutura, podemos montar mais squads e ter integrantes de outras universidades e advindos de dentro das empresas brasileiras que queiram pesquisar algo junto a universidade.
A pesquisa científica é um processo sistemático e metódico de investigação que busca obter novos conhecimentos ou solucionar questões específicas por meio da coleta e análise de dados, aplicando métodos científicos para chegar a conclusões precisas e confiáveis, em diversas áreas do conhecimento, de forma ética e seguindo as normas da comunidade científica.
Por sua vez, as metodologias ágeis, como o Scrum, oferecem um framework para o gerenciamento de projetos de forma flexível, com ciclos curtos de entrega, foco na colaboração e na interação constante com o cliente e a equipe. Segue um spoiler de como gerenciamos nossos projetos:
Figura 02: Road Map
Figura 03: Sprint Backlog
Figura 04: Burndown
Podemos ver na Figura 02 o “road map”, podemos ver nele a dimensão temporal da previsibilidade de entregas dos serviços da diretoria. Já a Figura 03 mostra o sprint backlog das atividades do mês de abril. Finalmente, a Figura 04 é um gráfico de acompanhamento muito comum em equipes que utilizam o framework SCRUM, denominado Burndown.
E outro de nossa atuais pesquisas, a partir de suas concepções:
Processamento de Linguagem Natural aplicada a Desenvolvimento Ágil de Software (Agilim) | Inteligência Artificial aplicada a Engenharia de Requisitos | Inteligência Artificial aplicada a Qualidade de Software | |
Área de concentração da pesquisa | Agile Software Development | Inteligência Artificial aplicada a previsão de falhas em tarefas de software | Inteligência Artificial aplicada a construção de teste de software |
Principais problemas da área | Falta de documentação em projetos Ágeis; Falha de comunicação entre equipes; Medidas de produtividade das equipes; Previsão de resultados das equipes; Adaptação aos princípios e valores ágeis | Escopo mal definido ou mudanças frequentes no escopo; Cronograma apertado ou impreciso; Falta de recursos qualificados ou indisponibilidade de recursos; Riscos imprevistos ou mudanças no ambiente do projeto; Falhas na qualidade do produto ou entregas fora dos padrões esperados; Falta de planejamento adequado; Falta de acompanhamento e monitoramento do progresso do projeto; Falta de flexibilidade e adaptação às mudanças | Tornar o desenvolvimento de software menos dependente da intervenção de um programador, utiliza IA para facilitar e baratear os testes de software, além de garantir a qualidade dos testes. E garantir a vontade do cliente |
Problema escolhido | Medidas de produtividade das equipes | Falhas na qualidade do produto | Verificar a viabilidade de utilizar inteligência artificial na construção de testes |
Importância, benefícios e contribuições de resolução desse problema | A medida de produtividade das equipes pode dar visibilidade ao desempenho futuro da mesma propiciando redução de custos, aumento da qualidade, entrega mais rápida, maior satisfação do cliente, melhor trabalho em equipe | Garantir a satisfação do cliente, reduzir custos, aumentar a competitividade, preservar a reputação da empresa e evitar problemas legais e regulatórios. Com um produto de software de qualidade superior, a empresa pode estabelecer uma boa reputação no mercado e aumentar a confiança do público em relação à sua marca e seus produtos | A pesquisa utiliza inteligência artificial para prever possíveis falhas em tarefas de software. A proposta é desenvolver testes automatizados utilizando algoritmos baseados em IA, o que se mostra uma estratégia eficiente para lidar com a diversidade de cenários encontrados no desenvolvimento de software em grande escala |
Soluções propostas na literatura para o problema | Uma das abordagens atuais é a aplicação de técnicas de inteligência artificial no ciclo de vida do desenvolvimento ágil de software | Utilização de um classificador de aprendizado de máquina para prever defeitos de software usando dados de defeitos de software, tamanho do software e tempo de desenvolvimento do projeto | Utilização de algoritmos genéticos ou outros algoritmos de otimização para gerar um conjunto mínimo de casos de teste que cubra todos os possíveis caminhos no sistema. Aprendizado de máquina para gerar casos de teste automaticamente a partir de dados de especificações do software ou história de usuário |
Limitações de cada solução | A base de dados para experimentos para análise de requisitos; Necessidade do cliente trazer os inputs; O dinamismo dos dados ao longo do tempo. Acesso a um dataset de dados com uma base confiável e realista | Ao usar um classificador de aprendizado de máquina, tem-se algumas limitações, como a qualidade dos dados de entrada pode afetar significativamente a precisão das previsões do modelo; os modelos de aprendizado de máquina podem ser difíceis de interpretar; as características que levam a defeitos de software podem mudar com o tempo | Os algoritmos genéticos sofrem limitação pela qualidade dos dados disponíveis e capacidade limitada de identificar padrões significativos nos dados. O aprendizado de máquina sofre limitação devido a complexidade do sistema de software e pelo grande número de possíveis caminhos que precisam ser testados |
O que ainda está em aberto (oportunidades de melhoria) | Os resultados dos trabalhos analisados, mostram uma tendência no uso de PLN em metodologias ágeis. Os trabalhos têm se concentrado em trabalhar na categorização de requisitos e melhoria contínua da engenharia do software, ponto fundamental do processo de desenvolvimento ágil. Os trabalhos apontam também para a criação de ferramentas que são úteis no desenvolvimento ágil. Os autores citam que em trabalhos futuros terá a combinação entre requisitos de melhoria, processo de software ágil e transformação de artefatos para desenvolver ferramentas úteis para que os desenvolvedores criem, organizem e atualizem artefatos de documentação durante o processo ágil | Coletar dados de qualidade; realizar um pré-processamento adequado; selecionar recursos importantes, aumentar a interpretabilidade do modelo e avaliar seu desempenho em diferentes cenários. Os trabalhos demonstram uma maior dificuldade em analisar mais assertivamente as frases emotivas, que expressam sentimentos, emoções e pensamentos | Muitas equipes de teste já têm fluxos de trabalho estabelecidos para a criação e execução de testes. É importante que as soluções baseadas em IA possam ser facilmente integradas a esses fluxos de trabalho existentes, a fim de minimizar o impacto nas operações de teste |
Em resumo, a diretoria de pesquisa e operações é uma parte essencial para o sucesso de uma empresa e não será diferente aqui na Universidade. Sabemos que o planeta está em constante evolução, sendo necessário agilidade e desenvolvimento científico. Ao focar na inovação, eficiência e qualidade, uma equipe de pesquisa e operações universitária bem estruturada pode oferecer soluções inovadoras no setor de tecnologia. Como resultado, esperamos conectar as empresas Brasileiras com suas Universidades.
O TerraLAB é um celeiro de talentos que prepara estudantes para o mercado de trabalho, oferecendo oportunidades em projetos reais e experiência nos processos e ferramentas de desenvolvimento de software mais avançados. Estamos sempre abertos a novas parcerias e sugestões. Deixe um comentário, visite nosso site, envie-nos um email e siga-nos nas redes sociais para ficar por dentro de tudo o que acontece no laboratório.
Artigo escrito por Pedro Saint Clair Garcia, Tiago Gomes da Silva e Vitor Hugo Leles Fonseca
Referências:
Ramírez-Mora, Sandra L., Hanna Oktaba, and Helena Gómez-Adorno. “Descriptions of issues and comments for predicting issue success in software projects.” Journal of Systems and Software 168 (2020): 110663.
Ramirez-Mora, Sandra L., et al. “Exploring the communication functions of comments during bug fixing in Open Source Software projects.” Information and Software Technology 136 (2021): 106584.
Perkusich, Mirko, Lenardo Chaves e Silva, Alexandre Costa, Felipe Ramos, Renata Saraiva, Arthur Freire, Ednaldo Dilorenzo et al. “Intelligent software engineering in the context of agile software development: A systematic literature review.” Information and Software Technology 119 (2020): 106241.
Wang, Chunhui, Fabrizio Pastore, Arda Goknil, and Lionel C. Briand. “Automatic generation of acceptance test cases from use case specifications: an nlp-based approach.” IEEE Transactions on Software Engineering 48, no. 2 (2020): 585-616.
A. A. S. Ivo, E. M. Guerra, S. M. Porto, J. Choma and M. G. Quiles, “An approach for applying test-driven development (TDD) in the development of randomized algorithms”, J. Softw. Eng. Res. Develop., vol. 6, no. 1, pp. 1-31, Dec. 2018.
Kicsi, András, Viktor Csuvik, and László Vidács. “Large scale evaluation of natural language processing based test-to-code traceability approaches.” IEEE Access 9 (2021): 79089-79104.