Non esiste una risposta unica, poiché dipende interamente dal progetto. Dobbiamo pensare a due cose qui. Qual è il tuo obiettivo finale? Come ti aspetti di arrivarci?
Risultato finale
Stai scrivendo il software di controllo Mars Orbiter? Quindi è meglio assicurarsi che tu stia scrivendo il codice più affidabile possibile, è meglio che tu controlli che ogni eccezione sia gestita in maniera sana.
Stai scrivendo un programma che solo tu eseguirai e che eseguirai solo manualmente ogni tanto? Quindi non preoccuparti delle eccezioni. Non preoccuparti dell'architettura pesante. Fallo funzionare al punto in cui funziona per te.
Come ti aspetti di arrivarci?
Stai facendo un forte sviluppo a cascata, dove passi molto tempo a capire cosa è necessario e poi te ne andrai per mesi, sviluppandoti? Se è così, allora vuoi raggiungere quella qualità target sopra menzionata abbastanza presto. Ottieni tutta la tua infrastruttura di controllo degli errori pianificata all'inizio.
Stai facendo uno sviluppo agile pesante, in cui stai mettendo insieme qualcosa per una settimana o due, che verrà quindi mostrato agli stakeholder, che potrebbero chiedere revisioni radicali, e dove ti aspetti di essere in grado di iterare su molti 1-2 sprint fino a quando non colpisci il bersaglio? Quindi potresti essere meglio ottenere qualcosa che funzioni, ma fragile insieme velocemente e solo aggiungendo cinture e bretelle man mano che i requisiti del prodotto si solidificano.
Se hai il controllo sulla cascata o sulla decisione agile (che in realtà è un continuum non una scelta binaria), prendi quella decisione in base al cambiamento previsto. Se sei sicuro di sapere esattamente come sarà il risultato finale, allora la scelta migliore è la cascata. Se hai solo una vaga idea di ciò di cui hai bisogno, Agile è la scelta migliore. (Agile è più popolare in questi giorni non perché sia intrinsecamente migliore, ma perché la seconda situazione è molto più comune.)
Ora trova la tua risposta
Per la maggior parte, la risposta si troverà da qualche parte nel mezzo. Rispondi a entrambe le domande sul tuo progetto e dovrebbe condurti in una direzione di base.
Posso dire questo per me stesso, se scrivo spesso script unici che sono progettati in modo abissale e non hanno alcun errore nel controllare qualunque cosa. Gestisco anche il codice di produzione, in cui la gestione degli errori e l'architettura attirano molta attenzione. Tutto dipende da cosa stai facendo.
Un'ultima avvertenza: se decidi di eseguire script una tantum che possono essere eseguiti in modo rapido e sporco, assicurati. Sfortunatamente, capita spesso che gli script rapidi e sporchi che fanno qualcosa di interessante vengano sfruttati ampiamente quando altri li notano. Accertarsi che, quando ciò accada, venga concesso del tempo per l'indurimento.