Priorização de Dívida Técnica com Análise Estática e Auto-Admitida: Uma abordagem preliminar

##plugins.themes.bootstrap3.article.main##

Rafael Santos Silva
Rodrigo Rebouças de Almeida
Wylliams Barbosa Santos

Resumo

Definido por Cunningham (1992), o termo Dívida Técnica (DT) é utilizado no desenvolvimento de software para expor os riscos de atividades incompletas ou concluídas com baixa qualidade, que precisam ser resolvidas para evitar prejuízos ao software. Independentemente de como ocorrem as dívidas, na maioria das vezes elas ocorrem por falta de tempo para realizar as tarefas, e de acordo com Kruchten (2012), e podem estar presentes em qualquer momento do projeto. De acordo com Li et al. (2014), a identificação é a primeira etapa do processo de gerenciamento das dívidas técnicas, e, de acordo com Avgeriou et al. (2016), gerenciar as dívidas é uma atividade fundamental para a gestão dos projetos. Para Lenarduzzi et al. (2021), as organizações precisam adotar estratégias para a priorização das dívidas, visto que são problemas inevitáveis durante o desenvolvimento. Para Guo et al. (2021), a priorização dos débitos é uma ação crucial nos projetos. Entre as abordagens utilizadas para a identificação das dívidas estão a Análise Estática de Código (Avgeriou et al., 2020), que tem como objetivo encontrar falhas no software utilizando validações automáticas, e as Dívidas Técnicas Auto-Admitidas (Gomes et al., 2022), que são as dívidas reconhecidas explicitamente pela equipe de desenvolvimento. A priorização das dívidas técnicas é um desafio significativo para a gestão de projetos, principalmente devido à diversidade de dívidas. Esta pesquisa tem como objetivo avaliar a priorização das dívidas identificadas por meio da união das duas abordagens. O proposto nesta pesquisa é responder à seguinte pergunta: “Como priorizar dívidas técnicas considerando Dívidas Técnicas Auto-Admitidas e dívidas identificadas por Análise Estática de Código?”. Para possibilitar a resposta a essa pesquisa, é importante identificar quais são as técnicas utilizadas na identificação automática e auto-admitida, e os critérios utilizados na priorização. Será utilizada a metodologia Design Science Research (DSR) para a validação de um artefato destinado à priorização das dívidas técnicas pelas abordagens. Considerando as abordagens, a pesquisa avaliará desde a etapa de identificação, com foco na priorização, avaliando aspectos técnicos e de negócio do software. De acordo com Saarimaki et al. (2019), na análise estática, as ferramentas identificam de forma automatizada diversas violações, tais como: complexidade ciclomática, baixa coesão e outras. Para Li et al. (2023), as dívidas auto-admitidas são registradas em ferramentas ou em marcações no código-fonte. Para responder à pergunta de pesquisa, pretende-se contribuir não só com o avanço do estado da arte no que diz respeito à priorização de DT em projetos de software, mas também contribuir com a indústria, para que os critérios de priorização não sejam apenas subjetivos. O objetivo da pesquisa em questão é classificado como explicativo, com foco em buscar compreender e demonstrar, de forma fundamentada, como considerar as duas abordagens na priorização. Conforme descrito anteriormente, a academia fornece alguns recursos para a identificação e gestão dos itens de DT, porém, a literatura ainda precisa de experimentações que digam respeito ao combinar as duas abordagens. A natureza da pesquisa é classificada como aplicada, com o objetivo de aumentar o conhecimento por meio da aplicação das abordagens em um cenário real da indústria. A abordagem do problema é uma pesquisa qualitativa, com um estudo de caso para avaliar quais critérios são utilizados na priorização das dívidas técnicas. Espera-se que a publicação dos resultados da pesquisa, além de avançar no estado da arte, possa possibilitar o aperfeiçoamento da gestão das dívidas técnicas dos projetos de software. A pesquisa é qualitativa, com a utilização de estudo de caso como procedimento técnico. Como resultados parciais, o estudo de caso está sendo realizado inicialmente em 3 projetos de software de tecnologias distintas, em empresa de tecnologia da informação, a qual cada projeto possui itens de dívidas técnicas auto-admitidas e por ferramentas de análise de código. Em cada um dos projetos, cerca de 100 dívidas identificadas pelas duas abordagens estão sendo priorizadas em conjunto, sendo avaliado os diversos critérios na priorização. Neste sentido, a priorização das dívidas pelas abordagens, quando utilizadas de forma isolada, possui objetivos distintos, resultando em priorizações divergentes, porém quando realizados em conjunto, tendem a garantir decisões baseadas em critérios técnicos e alinhados aos negócios.

Downloads

Não há dados estatísticos.

##plugins.themes.bootstrap3.article.details##

Seção
Engenharia da Computação e Sistemas