Não torne seu LEGADO em um legado
A palavra legado vem do latim legatus e significa deixar algo de valor ou não, para outra pessoa. Entretanto no desenvolvimento de software legado tem uma conotação negativa sendo usado para se referir a sistemas antigos e obsoletos.
Porém se pensarmos no sentido literal da palavra, porque não criamos um bom LEGADO ?
afinal todo legado em algum momento já foi um projeto inovador, uma grande aposta cercado de desenvolvedores motivados, planejando incríveis funcionalidades.
Acredito que chegamos a esse estado não por uma decisão ruim ou por um motivo específico, creio que uma série de fatores pequenos e principalmente hábitos rotineiros transformam nosso LEGADO em um legado. Segue algumas dessas coisas que na minha opinião colaboram para:
Planejar custa tempo, vamos desenvolver agora!
O planejamento no processo de desenvolvimento de software custa um bom tempo hábil, mas a longo prazo vai gerar escalabilidade e manutenção quase linear e estável. Não ter esse hábito pode acelerar o início do desenvolvimento do seu projeto, mas pode gerar uma série de problemas que podem torná-lo um legado em pouco tempo. Então pense em soluções escaláveis, discuta com sua equipe diferentes abordagens, façam desenhos e POCs sobre as propostas mais aderidas.
Metodologias e processos atrapalham a entrega!
Fato é que muitos processos podem atrapalhar a fluidez do projeto, mas um equilíbrio deve ser encontrado(by yoda), pois se ignorado pode transformar o clico de desenvolvimento em um caos completo. Então implemente eventos como a dailies, gitflow
DORS e DODS, testes integrados, release process entre outros. Cada equipe possui suas particularidades o importante é ir identificando e aplicando os métodos que melhor se encaixam a ela.
Code Review deixa pra depois, precisamos subir isso hoje!
O mundo real é complicado e muitas vezes a qualidade é deixada de lado, seja por prazos apertados ou por displicência de quem o faz. Entretanto um bom code review pode evitar uma série de problemas como anti-padrões, bugs e o principal, a longo prazo acelera e nivela o grau de conhecimento de toda equipe com relação ao projeto e ao código em si.
O código já tá bem feito não precisamos de padrões
Quando lemos um código buscamos padrões, quando desenhamos uma solução buscamos padrões, quando desenvolvemos software buscamos? padrões. Um projeto sem padrões mesmo que bem feito se torna difícil de ler e abstrair. A área de tecnologia está cercada deles, feitos por pessoas incríveis, seja solid, clean architecture, mvc entre outros. Adote padrões ou os crie, mas siga padrões seu time, e os próximos depois deles, vão agradecer.
Isso aqui vai ficar assim, quando tivermos tempo fazemos uma refatoração
Um dos hábitos mais letais para a saúde do software é negligenciar os débitos técnicos. Sempre postergando para a próxima sprint e a outra depois dela. O resultado é que isso se torna uma bola de neve e muitas vezes mata seu sistema. Seja criterioso, crie processos, gerencie seus débitos técnicos eles são parte importante do seu trabalho, nem só de novas funcionalidades vive um sistema, uma melhoria de software também gera valor para o sistema.
Documentação desatualizada fácil, é melhor não fazer
A maioria dos programadores detesta documentação, outros possuem opiniões distintas sobre como o fazer. Identificar os pontos cruciais do software e saber documentar o que realmente importa não é uma tarefa fácil, mas não fazê-lo é pretexto seguido de argumentos ruins. Me diga como você usaria um react ou spring sem documentação? Atualmente existem milhares de ferramentas que agilizam e facilitam a geração de documentação, então as use, não há desculpas.
Eu fiz o código só eu conheço, mas tá tudo bem
Um dos grandes problemas que temos atualmente, na maioria dos projetos é conhecimento retido dentro da cabeça de um único programador. O que vai acontecer quando o mesmo ficar de férias, mudar de projeto ou de empresa?. Solução? DOCUMENTAÇÃO!.
Tem uma nova tecnologia, vamos começar a usá-la no projeto
O mundo da TI é cercado de incríveis ferramentas e novidades. Programadores são entusiastas de novas soluções, queremos estar sempre usando tudo que o mercado nos oferece. Tanto para tecnologia quanto para outros temas. Seja cauteloso na hora de tomar decisões, pois elas são fáceis de serem tomadas, mas suas consequências são carregadas por todo ciclo de vida do projeto. Essa tecnologia é testada? Tem aderência de mercado? é bem documentada? Faz sentido para o projeto? qual problema ela soluciona? não conseguimos resolver com a stack atual?
Está desenvolvido está pronto!
O desenvolvimento de software é uma área fascinante, nossos projetos estão sempre evoluindo. Então, sempre busque melhorar as coisas, seja processos, funcionalidades, tecnologias, arquiteturas, etc. O mundo e as pessoas estão em constante mudança e seu software deve estar também.
Acredito ter esquecido de muitas coisas, mas gostaria que você refletisse sobre os hábitos ruins que cometemos. Quem sabe no futuro próximo possamos nos orgulhar dos LEGADOS que deixamos.