Ho visto più post sulla riscrittura di applicazioni cattive, esperienze della gente al riguardo qui sui programmatori e un articolo che ho preparato di Joel Spolsky sull'argomento, ma nessuna prova concreta o case study. A parte i due esempi forniti da Joel e alcuni altri post qui, cosa fai con una base di codice sbagliata e come decidi cosa farne sulla base di studi reali?
Per il caso in questione, ci sono due client che conosco che hanno entrambi un vecchio codice legacy. Continuano a zoppicare perché, come uno di loro ha scoperto, una riscrittura era un disastro, era costoso e non funzionava davvero per migliorare molto il codice. Quel cliente ha una logica aziendale molto complicata, come hanno scoperto rapidamente i riscrittori.
In entrambi i casi, si tratta di applicazioni mission-critical che generano molti ricavi per l'azienda. Quello che ha tentato la riscrittura ha sentito che avrebbero colpito un muro di mattoni se il software legacy non fosse stato aggiornato ad un certo punto in futuro. Per me, quel tipo di rischio merita ricerca e analisi per garantire un percorso di successo.
Ci sono stati casi studio reali che hanno studiato questo? Non vorrei tentare una grande riscrittura senza conoscere alcune buone pratiche, insidie e successi basati su studi reali.
Dopo: okay, dopo ulteriori ricerche, ho trovato tre articoli interessanti su casi studio:
- Riscrivi o Riutilizza . Hanno fatto uno studio su un'app Cobol che è stata convertita in Java.
- L'altro riguardava il riutilizzo del software: esperienze e percezioni degli sviluppatori .
- Riutilizzare o riscrivere Un altro studio sui costi di manutenzione rispetto a una riscrittura.
Di recente ho trovato un altro articolo sull'argomento: The Great Rewrite . Lì l'autore sembra colpire alcuni dei problemi principali. Insieme a questo è nata l'idea di prototipare usando il nuovo stack tecnologico proposto e misurando la velocità con cui gli sviluppatori lo hanno raccolto. Tutto questo era un preludio a una riscrittura, che pensavo fosse una grande idea!