Una volta ho sentito che se passi il 90% del tuo tempo a sviluppare il design del tuo programma, la parte di codifica richiederà solo il 10% delle volte. Ho trovato molto più successo nello spendere circa il 30% del mio tempo a progettare l'architettura rispetto a quando spendevo lo 0% in design. Di conseguenza, i miei programmi sembrano evitare accoppiamenti non necessari e sono ora più flessibili da cambiare prima che avvenga il ri-factoring.
Solitamente finisco la fase di progettazione una volta che ho un'idea chiara di cosa devono essere chiamati tutti gli oggetti (sono davvero schizzinoso riguardo alla denominazione degli oggetti) e quale singola responsabilità avrà ciascuno. Una volta che avrò fiducia nel mio design e mi sentirò pronto per iniziare a costruire il software, ci sarebbe qualche vantaggio nel prendere più tempo per continuare a ripensare il design? Per me potrebbe sembrare che potrebbe essere eccessivo.
Che cos'è un design efficace per codificare il rapporto temporale di sviluppo e il tempo di progettazione dovrebbe essere maggiore del tempo di sviluppo del codice?