Diogo de Jesus Pina (diogojpina at gmail)
Alfredo Goldman Home Page
Dívida Técnica: Identificando, Medindo e Monitorando
Dívida técnica é uma metáfora criada em 1992 por Ward Cunnigham (criador da Wiki) que o fez de maneira superficial e sutil, mas que ao passar dos anos vem gerando discussões e pesquisas.
Atualmente uma boa definição para a dívida técnica é a criada por Carolyn Seaman e Yuepo Guo em Mensuring and Monitoring Technical [1]. Neste texto, dívida técnica é definida como uma metáfora para artefatos imaturos, incompletos ou inadequados no ciclo de vida de desenvolvimento de software.
Adquirir uma dívida técnica traz benefícios a curto prazo tais como redução do tempo de desenvolvimento ou esforço, mas pode causar maiores custos e menor qualidade a longo prazo.
Gerentes de software precisam equilibrar os benefícios da dívida técnica com os custos associados na tomada de decisão de adquirir ou pagar a dívida técnica e quando. A incerteza associada a dívida técnica complica esta tomada de decisão. Portanto, a identificação, medida e monitoramento da dívida técnica ajudaria os gerentes a terem informações para a tomada de decisão, resultando em maior visibilidade, o que pode melhorar a qualidade e produtividade na manutenção do software.
Este projeto se dedica a encontrar ferramentas, técnicas e mecanismos que viabilizem a identificação, medida e monitoramento da dívida técninca em projetos de software. Estes artifícios ajudarão na criação de modelos que possibilitem uma análise eficaz e eficiente e, consequentemente, a criação de uma teoria base forte.
[1] Measuring and Monitoring Technical Debt, Carolyn Seaman and Yuepu Guo, Advances in Computers, Vol. 82, 25-46, 2011
VoltarO primeiro objetivo deste trabalho de formatura supervisionado é um estudo detalhado sobre a dívida técnica. Isto será feito com base em artigos científicos publicados e trabalhos acadêmicos que ainda estão sendo desenvolvidos. Este estudo permitirá um bom entendimento do conceito de dívida técnica e oferecerá uma base para a pesquisa.
O segundo objetivo é encontrar ferramentas, técnicas e mecanismos que viabilizem a identificação, mensuração e monitoramento da dívida técnica.
O terceiro objetivo é utilizar estes métodos e recursos para encontrar dívida técnica em projetos de software livre. As aplicações serão feitas tanto em projetos bem-sucedidos como projetos que fracassaram. Com isso será possível fazer uma análise e identificar a relação entre dívida técnica e o sucesso de um software.
VoltarNum primeiro momento, foram realizadas reuniões com os, até então, alunos de doutorado em ciência da computação do IME-USP, Paulo Meirelles (especialista em qualidade de código) e Graziela Tonin (especialista em dívida técnica). Nestas reuniões surgiram ideias de projeto de pesquisa e aplicações como: busca de métodos automáticos para encontrar dívida técnica, análise de dívida técnica em projetos falidos, desenvolvimento de uma ferramenta para identificar dívida técnica, encontrar métricas que identifiquem dívida técnica usando o Mezuro, entre outras idéias.
Em seguida, com o amadurecimento das ideias de projeto o prof. Dr. Alfredo Goldman foi convidado a ser o supervisor deste projeto, e o aceitou. A parir daí, foi possível definir diretrizes de trabalho e atividades.
A primeira atividade oficial foi o estudo da definição de dívida técnica e a escrita de um texto explicativo. Neste texto, a dívida técnica foi contextualizada e definida. Além disso, foram feitas classificações dependendo de como a dívida é adquirida e o prazo de pagamento. Finalmente, foi criado um exemplo para expressar a diferença de cada uma das classificações e fornecer uma melhor visão do assunto.
Paralelamente com a atividade anterior, foram feitas as análises de quatro monografias de anos anteriores que foram: Otimização de Viagens em Companhias Aéreas Brasileiras, Calopsita: Um sistema gerenciador de projetos que utilizam métodos ágeis, Achusp: Serviço de achados e perdidos para a Universidade de São Paulo e Plataforma de Colaboração para Auxílio às Administrações Municipais. Estas análises tem como objetivo, identificar pontos fracos e fortes em monografias e poder replicar o que há de bom e evitar as coisas ruins.
A próxima etapa, esta sendo a análise da plataforma Sonar que é uma plataforma livre para gerenciar qualidade de código. Ele possui uma grande quantidade de recursos em seu núcleo, tais como: métricas padrões, regras de código e unidades de teste. Além disso, ele possui vários plugins que permitem a extensão para diversas linguagens de programação e funcionalidades.
Voltar| Atividades | Fev | Mar | Abr | Mai | Jun | Jul | Ago | Set | Out | Nov |
|---|---|---|---|---|---|---|---|---|---|---|
| Identificação de oportunidades de trabalho (Junto ao Paulo Meirelles e Graziela Tonin) | X | |||||||||
| Estudos preliminares e amadurecimento das ideias de projeto | X | X | X | |||||||
| Avaliação de trabalhos antigos | X | X | ||||||||
| Criação de texto sobre a definição de dívida técnica | X | |||||||||
| Análise da ferramenta Sonar | X | X | ||||||||
| Pesquisa de métodos e ferramentas para identificação de dívida técnica | X | X | ||||||||
| Pesquisa de métodos e ferramentas para medida de dívida técnica | X | |||||||||
| Pesquisa de métodos e ferramentas para monitoramento de dívida técnica | X | |||||||||
| Aplicação dos métodos em projetos de software livre | X | X | ||||||||
| Monografia | X | X | X | X | X | |||||
| Pôster | X | |||||||||
| Apresentação | X |
A monografia será composta por duas partes: Parte Técnica e Parte Subjetiva.
Parte Técnica:
Parte Subjetiva: