Organização de um conjunto de descobertas experimentais sobre causas e efeitos da dívida técnica através de uma família de surveys globalmente distribuída - Alves, Nicolli Souza Rios (2020)
Contexto: O conceito de dívida técnica (DT) contextualiza o problema das tarefas de desenvolvimento pendentes como um tipo de dívida que traz um benefício a curto prazo para o projeto, mas que poderão ter de ser pagas com juros mais tarde no processo de desenvolvimento. É comum que um projeto de software incorra em dívida durante o processo de desenvolvimento, no entanto, sua presença traz riscos para o projeto e dificulta sua gestão. Diferentes estratégias de gerenciamento da DT têm sido propostas, contudo, considerar ações que possam evitar sua inserção e monitorar seus efeitos ainda não é uma prática comum. Este é um ponto que merece ser melhor investigado por diferentes motivos: (i) conhecer as causas da DT pode auxiliar as equipes de desenvolvimento na definição de ações que possam ser tomadas para evitar sua ocorrência e (ii) conhecer os possíveis os efeitos da DT pode apoiar na realização de análises de impacto mais precisas e também na definição de ações corretivas para minimizar possíveis consequências negativas da dívida inserida. Dessa forma, enquanto o gerenciamento da DT é um tópico de pesquisa importante, também é necessário entender as causas que podem levar equipes de desenvolvimento a incorrer em diferentes tipos de dívida, bem como os efeitos de sua presença em projetos de software. Objetivo: O objetivo desta tese é investigar, através da replicação contínua e independente de surveys distribuídos globalmente, o estado da prática e tendências da indústria sobre DT incluindo causas que levam à sua ocorrência, efeitos de sua existência e como esses problemas se manifestam no processo de desenvolvimento de software. A partir da organização das causas e efeitos identificados, estruturar diagramas de causa e efeito probabilísticos que possam ser utilizados no apoio a atividades de gestão da DT. Método: As atividades realizadas nesta tese são fundamentadas no paradigma da engenharia de software experimental. Inicialmente, foi realizado um estudo terciário com o objetivo de investigar o estado atual da pesquisa sobre DT identificando quais tópicos de pesquisa têm sido considerados, organizando direcionamentos de pesquisa e conhecimentos práticos que já foram definidos, identificando os tipos conhecidos de DT, e mapeando quais atividades, estratégias e ferramentas têm sido propostas para apoiar o gerenciamento da DT. Em seguida, foi planejado InsighTD, uma família de surveys globalmente distribuída. InsighTD foi planejado de forma cooperativa com pesquisadores da área de DT de diferentes instituições ao redor do mundo. Trata-se do primeiro estudo em larga escala realizado na área. Ele busca organizar um conjunto aberto e generalizável de dados experimentais sobre causas e efeitos da DT em projetos de software. Por fim, os diagramas probabilísticos de causa e efeito da DT propostos foram avaliados através de estudo de caso executado na academia. Resultados: Esta tese apresenta os resultados do estudo terciário executado e as análises realizadas sobre a primeira execução de InsighTD no Brasil e sua primeira replicação nos Estados Unidos. Ao total, 107 profissionais da indústria brasileira e 99 da indústria estadunidense de software responderam ao questionário. Os resultados indicam que há uma ampla familiaridade com o conceito de DT. Prazos, planejamento inadequado, falta de conhecimento e falta de um processo bem definido estão entre as 10 causas mais citadas e mais prováveis de levar à ocorrência da DT em projetos de software. Por outro lado, baixa qualidade, atraso na entrega, baixa manutenibilidade, retrabalho e perdas financeiras estão entre os 10 efeitos mais citados e de maior impacto em um projeto com a presença da DT. Diagramas probabilísticos de causa e efeito da DT para os diferentes tipos de DT foram elaborados. Os resultados também indicaram que o tipo de modelo de processo (ágil, híbrido ou tradicional) impacta nos efeitos da DT sentidos por equipes de desenvolvimento. Conclusão: Com InsighTD, pretende-se reduzir o problema de investigações isoladas em DT que ainda não são representativas e, assim, construir um conjunto aberto e generalizável de dados experimentais para a compreensão de problemas práticos e desafios da área. Parte do conhecimento organizado será estruturado em diagramas probabilísticos de causa e efeito que permitem apoiar atividades de gestão da DT.