Esiste un posto per una filosofia "start from scratch"? Quanto spesso la ricomposizione è considerata una buona idea? [chiuso]

-3

Potrebbe essere inesperienza, ma nei piccoli progetti su cui ho lavorato ho spesso trovato estremamente utile ricominciare da capo. Questo è unico per i principianti o è una cosa reale?

Ovviamente non ha senso per tutti i progetti. Se hai un obiettivo ben definito, una documentazione organizzata e un proprietario di un prodotto strong, si spera che non venga nemmeno preso in considerazione. Ma credo che molti progetti siano più esplorativi di qualsiasi altra cosa. Oltre ai requisiti in movimento, stiamo costantemente imparando nuove metodologie, modelli e "trucchi".

Credo che la mia domanda sia questa: ci sono molte metodologie, accoppiate, magra, ecc ... c'è qualche movimento per iterativamente, intenzionalmente, ricominciando da capo?

    
posta Scott Beeson 28.07.2017 - 22:40
fonte

1 risposta

3

Lettura richiesta: link

Detto questo, per lo sviluppo di software professionale, è raro che un completo partendo da zero sia sempre una buona idea. Circa l'unico scenario in cui una completa riscrittura ha senso è quando è necessario creare un software antico, dipendente da una vecchia piattaforma dismessa, lavorare su software moderni. Anche all'interno di questo scenario, una riscrittura totale non è ancora necessaria.

Una riscrittura completa è una buona idea, significa che il 100% del tuo lavoro di prima è spazzatura completa, con niente che valga la pena tenere. Scrivere una spazzatura completa al 100% non è mai qualcosa che vuoi fare regolarmente.

Quando fai bene il tuo lavoro, la maggior parte del vero coraggio del valore aggiunto di parti del tuo lavoro dovrebbe essere in gruppi ragionevolmente modulari, pacchettizzati: classi, librerie, qualunque cosa. Di solito, gran parte del cruft iniziale di un progetto e fonte di confusione è il modo in cui tutto è agganciato. Sostituendo tutto il codice della colla e riorganizzando e rifattando la base di codice, puoi lasciare il 90% della carne e delle patate del tuo codice, ma riorganizzato in un progetto più sensato.

But I feel most projects are more exploratory than anything. In addition to moving requirements, we are constantly learning new methodologies, patterns and "tricks".

Le tue percezioni non riflettono la realtà del mondo del lavoro. Pochi progetti sono completamente esplorativi. Io lavoro facendo R & D per dispositivi medici, lavorando su software per fare cose che non sono mai state fatte prima, e solo un frammento di un dato progetto è in realtà esplorativo. La maggior parte, come qualsiasi altra applicazione, è più banale come il salvataggio e il caricamento di file / database di dati, la comunicazione con l'hardware, la creazione di grafici e la creazione di report PDF. Qualcuno che lavora su un carrello della spesa o su un'applicazione CRM avrà ancora meno lavoro esplorativo da fare.

Nuove metodologie, trame e trucchi non si muovono rapidamente come alcuni blogger javascript potrebbero sembrare, e nuovi trucchi o modelli non invalidano anni di codice funzionante.

Quindi, in breve, una riscrittura completa è quasi sempre una cattiva idea. Identifica cosa è buono e cattivo, mantieni il buono, il refactoring e riorganizza il cattivo, e continua a muoverti verso un buon prodotto.

    
risposta data 28.07.2017 - 23:13
fonte

Leggi altre domande sui tag