Depois de muitos anos trabalhando em seu sistema, construindo, consertando, melhorando, quebrando e remontando, você decide que o que realmente precisa é de uma reescrita completa. Afinal, o que poderia dar errado?
Se você já esteve envolvido em um projeto de reescrita completa, você sabe a resposta. Absolutamente tudo pode dar errado.
Porque você acha que quer Existem muitos motivos para se defender uma reescrita completa de sistema, mas o mais comum é a complexidade do software e o custo de manutenção.
Um post mais técnico. ‘Conheça sua linguagem’ é uma nova categoria em meu blog, sobre linguagens de programação e seus problemas mais comuns em ambientes corporativos
De acordo com Tiobe Java é a linguagem de programação de backend mais usada do mundo. De acordo com StackOverflow, este título vai para Javascript, mas Java fica em terceiro lugar. Java e JVM também são quase onipresentes no celular, com o Android usando-o como plataforma.
Com certeza há muito assunto e trabalho sobre estimativas em desenvolvimento de software. Esteja você em uma grande empresa, uma pequena agência ou o famoso projeto com o “exército de um homem só”, a ideia de que você possa prever quanto tempo levará para construir um sistema é amplamente difundida e adotada por todos.
Qualquer princípio de gestão ou cronograma de projeto tem isso como um mínimo para operar. Isso é útil para que você possa planejar com antecedência e lidar com os projetos em uma ordem sã, evitando armadilhas óbvias e erros de negócios.
Editado 17/05/2025: disponibilizei um spring boot starter usando JPA para ter um mecanismo de eleição de lider. Clique aqui Editado 17/10/2024: se você procura um mecanismo real de lock para jobs, a melhor opção é Shedlock
Alerta: post técnico a frente. Tire as crianças da sala!
O framework Spring Boot tomou de assalto o mercado nos últimos anos. Spring, desde antes, com o MVC já havia absorvido a maior parte de vagas de emprego e questões online, mas com a simplicidade do Boot, praticamente definiu o novo padrão para frameworks em linguagem Java.
Então, tem essa coisa sobre o seu sistema.
Ele nasceu para morrer.
Estou falando mais especificamente sobre sistemas web, porque essa é a minha área de atuação, mas é válido para várias áreas de desenvolvimento de software. Os sistemas são criados para serem destruídos a longo prazo. E tudo bem.
Vou me explicar.
Se você já trabalhou em algum grande projeto, ou por alguns anos em uma empresa, já viu o que as pessoas chamam de código legado.