Apesar de considerada inerente aos negócios, se não gerenciada, a dívida técnica pode minar a competitividade da organização
A transformação digital tem impulsionado organizações a implementar soluções tecnológicas fantásticas. Mas a um custo muitas vezes alto, que se chama dívida técnica.
Inicialmente, a dívida técnica é um resíduo inevitável, causado, de certa forma, naturalmente ou até propositalmente dentro de projetos. O problema é quando a dívida se arrasta: como toda dívida, aliás. Com o tempo, os problemas técnicos não resolvidos podem absorver boa parte dos recursos destinados à TI, o que impede a organização de inovar e, logo, de se manter competitiva, presa numa espiral em que praticamente apenas paga juros.
Pesquisa da McKinsey mostra que 10% a 20% do budget para novos produtos é usado para resolver problemas relacionados à dívida técnica, que perfez de 20% a 40% do valor de toda a tecnologia das organizações antes da depreciação.
Ainda segundo a pesquisa, as organizações não estão lidando com a questão – pelo menos como deveriam. Com efeito, não há melhora na situação, e 60% dos CIOs pesquisados afirmam que a dívida técnica de sua organização aumentou, em vez de diminuir, perceptivelmente nos últimos três anos.
Justamente por isso, a dívida técnica precisa ser observada de perto, a fim de ser mensurada e administrada.
É o que faremos neste artigo. Para começar, assentaremos uma definição standard de dívida técnica – cujo conceito não é unanimidade em TI –, falaremos um pouco sobre como o problema é experimentado dentro das organizações e, por fim, indicar como lidar com ele.
Obtendo um consenso sobre o que é dívida técnica
Referida por temos como débito técnico ou de maneira menos explícita como spaghetti code, código decadente ou deteriorado, a dívida técnica é todo o custo de limpar o backlog de manutenção necessário para manter as tecnologias de uma organização rodando em sua versão mais atual. A dívida técnica pode estar em vários níveis, passando pelo ambiente, arquitetura e design, código etc.
Mas é também os juros pagos pela organização ao manter essa dívida, causado pelo impacto negativo de opções tecnológicas ou de legados tecnológicos sobre os negócios, seja pelo aumento de custos operacionais, seja pela redução de flexibilidade, de desaceleração de ida ao mercado, bugs e outros problemas etc.
Certo grau de dívida técnica é o custo inevitável de fazer negócios. A organização sempre vai ter tecnologias de diferentes idades e de diferentes fontes, servindo a diferentes propósitos, convivendo no mesmo ambiente. Ou então, para acelerar projetos, terá de fazer escolhas conscientes que vão criar uma dívida técnica.
Nesse sentido, é mais um problema de negócio que tecnológico. Como tal, pode ser ocasionado tanto voluntariamente – pela decisão de implementar certa tecnologia com o intuito de atualizá-la futuramente – quanto involuntariamente – por depreciação tecnológica, erros ou trabalho de má qualidade.
A dívida técnica nas organizações
Dentro das organizações, a dívida técnica é vista como quase que exclusivamente como uma questão de TI. O tema é visualizado com certo tabu, relacionado ao aspecto negativo do termo “dívida”.
Por isso, o endereçamento da dívida técnica é feito dentro das equipes, dificilmente chegando à esfera de negócio, o que vai depender de vários fatores, como: metodologia de desenvolvimento adotada, estrutura organizacional, previsão em contrato e tamanho e/ou impacto da dívida.
Embora seja considerado importante na organização, o quadro geral é de omissão ou de um enfrentamento indireto, a não ser em casos críticos como problemas em arquitetura e design, que podem demandar a reescrita completa da aplicação.
Geralmente, em projetos ágeis como Scrum, a dívida técnica é administrada da mesma forma que os demais itens de backlog, puxada para a sprint de acordo com seu nível de prioridade, eventualmente com carga horária ou histórias destinadas exclusivamente à refatoração e melhora contínua. Já em projetos em cascata a dívida é paga na fase de estabilização ou na manutenção, normalmente por equipes de suporte e sustentação.
No entanto, nem projetos ágeis nem em cascata têm recursos e práticas específicas para gerenciamento de dívida técnica. Cada equipe adota – se adota – uma prática própria de gerenciamento, de acordo com a necessidade e urgência do momento.
Então, como gerenciar a dívida técnica?
Gestão da dívida técnica: um desafio para as organizações
Há casos em que a dívida técnica não é um problema urgente para a organização. Por exemplo, em situações em que, se fizer a dívida, agilizar a criação de aplicações, não gerar juros altos ou não afetar a qualidade dos serviços, pode-se conviver com a dívida técnica. Nesses casos, é fácil perceber que a dívida precisará ser paga como um empréstimo, como a casa própria.
O problema é que normalmente o débito técnico está ligado a má qualidade, isto é, a códigos fracos e más práticas de codificação - acumulando dívidas. E mais: as organizações não fazem um acompanhamento consistente de sua dívida técnica, a não ser que sejam forçadas a isso.
Dentre os motivos: a medição da dívida técnica é considerada difícil e subjetiva, e as organizações não conseguem distinguir dívidas técnicas que podem ser mantidas, porque oriundas de boas decisões, de dívidas técnicas oriundas de problemas e defeitos.
Como gerenciar dívida técnica
- Quantificar: defina o que é débito técnico para a organização e seus tipos, rastreie-os e adote um modelo para quantificá-los em termos financeiros ou em porcentagem do budget de TI.
- Visibilidade e comunicação: falamos acima que a dívida técnica não é apenas um problema de tecnologia, mas de negócio. No entanto, não é incomum que ela não seja percebida como tal pela equipe de negócio. Por isso, dar visibilidade ao conceito e comunicá-lo em linguagem de negócios a executivos e demais stakeholders será fundamental, sobretudo para o próximo passo.
- Consideração: utilizar a visibilidade da dívida técnica para avaliar impactos dela tanto na performance da organização quanto no desenvolvimento de novos projetos, assim como embasar a tomada de decisão sobre um gerenciamento explícito, seja sobre a assunção de novas dívidas, seja sobre o pagamento, análises de risco, necessidade de fatorar e reescrever etc.
- Gerenciamento explícito: criação de frameworks e adoção de ferramentas para gestão de dívidas técnicas existentes, como pagamento em iteração mínima e releases de limpeza, avaliação de riscos – mesmo que conscientemente assumidos – de certas dívidas em médio e longo prazos e níveis de criticidade e severidade das dívidas assumidas.
- Monitoramento: mensurar níveis de dívida técnica ao longo do tempo, identificar e reconhecer tendências, disseminar boas práticas de integração da dívida técnica ao processo de denvolvimento a fim de torná-la produtiva etc.
Por que gerenciar a dívida técnica
Essa pergunta é quase retórica. Afinal, mesmo que assumida conscientemente – o que nem sempre é o caso – a dívida técnica implica vários riscos para a organização.
Não à toa os benefícios colhidos por equipes que a gerenciam são notórios: a McKinsey relata sobra de até 50% mais tempo para que os engenheiros gastarem com o trabalho de apoio a objetivos de negócio. Em termos de orçamento, a organização tem, com isso, a possibilidade de direcionar quase todos os seus investimentos em TI para novos projetos.
Além disso, um gerenciamento da dívida técnica pode trazer os benefícios de indicar o momento de refatorar código, de visualizar o risco associado a certas tecnologias, de avaliar a possibilidade de melhorias e de definir limites de orçamento destinado a pagamento de juros.
Dívida técnica: monitore para gerenciar com excelência
Como vimos, a dívida técnica é um conceito amplo, que engloba custos inerentes aos negócios, sejam eles produzidos conscientemente ou não.
No entanto, essa inexorabilidade da dívida técnica não pode se traduzir em omissão, sob pena de impactar no moral da equipe, na produtividade, na qualidade tecnológica e no risco.
No entanto, como também vimos, é precisamente isso que tem ocorrido nas organizações, o que resulta em dados como os trazidos à tona pela McKinsey, que apontou que 20% a 40% do orçamento de TI acaba na conta do pagamento de juros.
Dado o diagnóstico, fica a necessidade de um acompanhamento qualitativo e quantitativo da dívida técnica e a visibilidade e comunicação adequadas desses dados, a fim de um gerenciamento que evite que a organização caia em uma espiral de dívida técnica que absorva boa fatia de seu orçamento.
E a sua equipe? Como tem gerenciado o débito técnico? Se precisar de ajuda no backlog, veja nossa torre de alocações e, se quiser minimizar a dívida técnica de projetos desde o início, conheça nossa fábrica de softwares. Depois, para entender melhor e tirar todas as dúvidas sobre como podemos ajudar a sua organização, fale com um de nossos consultores.