DEV Community

Cover image for [ptbr] O que aprendi dando manutenção em software
daniel-augusto
daniel-augusto

Posted on • Updated on

[ptbr] O que aprendi dando manutenção em software

Sempre pensei que participar de projetos novos a partir de sua concepção era a receita para continuar aprendendo novas tecnologias e uma forma de me manter atualizado com as tendências do mercado.

Por isso sempre procurei participar de vários projetos diferentes e durante boa parte de minha trajetória eu consegui isso. Confesso que tive vários aprendizados a cada projeto novo e aprender coisas novas sempre é o que me deixa motivado.

Mas estou trabalhando em um mesmo projeto desde 2018 e mesmo nesse projeto percebi que continuo tendo aprendizados diários.

Um grande aprendizado que percebo agora é quando esse produto precisa passar por alguma manutenção para desenvolver uma nova feature ou mesmo corrigir um bug.

Essa experiência tem me feito ver os erros e acertos nas decisões tomadas durante o desenvolvimento desse produto e isso tem possibilitado amadurecer meus conhecimentos sobre essas decisões.

Isso tem sido um aprendizado valioso por que nas experiências anteriores que tive, antes de perceber o impacto de alguma decisão tomada eu era alocado em outro projeto e hoje percebo que não obtive muitos feedbacks sobre meus erros, sobre minhas decisões arquiteturais, sobre a qualidade de meu código.

Participar de um mesmo projeto durante esses anos tem sido uma experiência enriquecedora por que eu tenho a oportunidade de avaliar uma decisão tomada lá atrás que fazia total sentido naquele momento e hoje consigo perceber que ela pode não ter sido a melhor decisão.

Acho muito engraçado quando pego um código para dar manutenção e reclamo da baixa qualidade dele mas quando vou olhar quem foi que fez, vejo que fui eu mesmo :) Tenho certeza de que você também já passou por isso. Se não passou, é só questão de tempo.

Agora consigo avaliar melhor o impacto de uma decisão, por que já passei por alguns ciclos de desenvolvimento desse produto.

Outra questão é que esse produto continua em constante evolução e com isso vem a necessidade de adaptar as mudanças às restrições que o ambiente oferece. As vezes isso é um desafio técnico interessante e também trás outros tipos de aprendizados.

Como evoluir esse produto para atender novos requisitos que não foram nem pensados na época de sua concepção e manter ele funcionando adequadamente?

Como incluir o uso de novas tecnologias nesse produto? Como aplicar padrões arquiteturais nessa solução? Esses são alguns dos desafios que estão na agenda do dia.

São aprendizados que entendo que precisam de tempo para ocorrer. Eu acho super válido e saudável participar de vários projetos diferente, mas não posso mais achar que não há nada a aprender dando manutenção em softwares "legados".

Foto de capa de Tim Mossholder obtido no Unsplash

Top comments (0)