Dipende da quanto sia complesso il problema è che si sta tentando di risolvere. Se state prendendo su un grande progetto di programmazione, è necessario disporre di un certo grado di pianificazione prima di iniziare. Se non lo fai, avrai orribilmente perde in dettagli di roba che non abbastanza comunicare con le altre parti in pochissimo tempo.
Fondamentalmente, cercare di ottenere una vista a volo d'uccello dei problemi che è necessario risolvere. Vedere se uno dei problemi sono abbastanza piccoli da poterli risolvere e capire cosa potrebbe aver bisogno di comunicare con il resto della vostra soluzione. Pensate a come un black-box con un'API per il mondo esterno.
Dopo avere tutti i blocchi capito, vedere se è necessario dividere il problema in piccoli sotto-problemi, o di avere una visione abbastanza dettagliata di tutto il progetto che si può iniziare con il codice.
La mia esperienza è che la pianificazione aiuta a prevenire problemi in futuro, ti fanno pensare di più su come si suppone che il codice a crescere in futuro, se avete bisogno di aggiungere nulla, ecc
Nella maggior parte dei casi vi farà risparmiare il tempo speso per la pianificazione, quando si esegue il debug o l'estensione del progetto. Inoltre, avere un layout di massima del progetto significa che sarà più facile per ottenere aiutare la costruzione delle scatole nere è necessario, in modo da poter lavorare su di essa con più persone che solo a se stessi.