Vi várias postagens sobre a reescrita de aplicativos serem ruins, as experiências das pessoas sobre isso aqui nos programadores e um artigo que Joel Spolsky preparou sobre o assunto, mas nenhuma evidência concreta ou estudos de caso. Além dos dois exemplos que Joel deu e de alguns outros posts aqui, o que você faz com uma base de código incorreta e como decide o que fazer com base em estudos reais?
Para o caso em questão, há dois clientes que conheço que ambos possuem código legado antigo. Eles continuam mancando, porque, como um deles descobriu, a reescrita foi um desastre, era caro e não funcionou muito para melhorar muito o código. Esse cliente tem uma lógica de negócios muito complicada, como os reescritores descobriram rapidamente.
Nos dois casos, esses são aplicativos de missão crítica que geram muita receita para a empresa. Aquele que tentou a reescrita sentiu que eles atingiriam uma parede de tijolos se o software legado não fosse atualizado em algum momento no futuro. Para mim, esse tipo de risco merece pesquisa e análise para garantir um caminho bem-sucedido.
Houve estudos de caso reais que investigaram isso? Eu não gostaria de tentar uma grande reescrita sem conhecer as melhores práticas, armadilhas e sucessos com base em estudos reais.
Consequências: ok, depois de mais pesquisas, encontrei três artigos interessantes sobre estudos de caso:
- Reescreva ou Reutilize . Eles fizeram um estudo em um aplicativo Cobol que foi convertido em Java.
- O outro foi sobre reutilização de software: experiências e percepções de desenvolvedores .
- Reutilizar ou reescrever Outro estudo sobre custos de manutenção versus reescrita.
Recentemente, encontrei outro artigo sobre o assunto: The Great Rewrite . Lá, o autor parece abordar alguns dos principais problemas. Junto com isso, havia a idéia de criar protótipos usando a nova pilha de tecnologia proposta e medindo a rapidez com que os desenvolvedores a capturavam. Isso tudo foi um prelúdio para uma reescrita, o que eu achei uma ótima idéia!