Diciamo che ho un grande, meraviglioso set di test di integrazione per il mio prodotto. Verifica tutto e tutto ciò che dobbiamo testare. E dopo che il prodotto ha superato tutti questi test, diamo un'occhiata all'origine, decidiamo che è completa, e ricominciamo da capo. È una buona decisione commerciale?
Riconosco pienamente che nessun set di test di integrazione è perfetto, e ci sono sempre limiti di tempo / budget da prendere in considerazione, ma per il gusto di questa domanda li metteremo da parte. Diamo un'occhiata ai vantaggi.
-
Se la nostra base di codice è di 5 anni e scritta dai primi programmatori della società che stavano imparando mentre andavano, e ora abbiamo programmatori "esperti" che possono rendere il codice più gestibile. Sì, alcuni potrebbero aver bisogno di tempo di accelerazione nella conoscenza del dominio, ma direi che scrivere da zero aiuterebbe a sviluppare questa conoscenza più velocemente e più completamente.
-
Se la versione esistente del nostro codice utilizza una libreria di base che è "obsoleta" e si comporta male in tutti gli scenari, e la sua sostituzione all'ingrosso richiederà 10 mesi e la riscrittura con la nuova cosa brillante richiederà 6. Sembra come un gioco da ragazzi, giusto?
Ci sono molti altri "buoni" motivi per riscrivere un prodotto, ma il punto di Joel è che sei destinato a commettere gli stessi errori che il prodotto precedente aveva già superato.
Ma che dire dei test? Se ho un modo di testare un prodotto che non è legato al codice stesso (ad esempio, test di integrazione), non garantisce che quei potenziali errori vengano scoperti presto?
Supponendo che tu abbia un modo di verificare il comportamento e l'output facilmente, specialmente con gli strumenti disponibili oggi, partire da zero è ancora una cattiva idea?