Quando inizi un nuovo progetto / funzione / oggetto hai principalmente un'idea del modello che vuoi costruire. Può essere basato sul desiderio dei clienti, sulle idee per l'app o altro. Nel mezzo capisci spesso che il tuo modello non funzionerà. Potrebbero esserci nuovi requisiti, non hai pensato a qualcosa, ecc. Quindi hai due opzioni. O puoi riscrivere il tuo codice per lavorare con le nuove specifiche o "hackerare" il codice corrente per fare ciò che vuoi. Una riscrittura richiede molto tempo e potrebbe essere necessario farlo più volte, ma a lungo termine spesso paga. Gli hacker sono veloci e spesso efficaci per il momento, ma molti hack renderanno il codice davvero brutto, e dopo un po 'potrebbero tornare indietro e morderti dietro ...
Come stabilisci quando fare cosa?
(Perdonate il mio modo molto poco accademico di spiegarlo, ma spero che capiate a cosa sto arrivando.)