Il motivo per cui lo trovi così difficile è che hai un'idea, ma in realtà non hai un'idea completa di ciò che vuoi che faccia. Se stai facendo il tuo progetto e non hai un cliente che ti dica quello che vuole, allora tocca a te essere il tuo cliente. Mettiti nei panni del cliente e inizia a costruire una lista dei desideri impossibile.
In altre parole, quando inizi Non progettare NIENTE !!! .
Una volta che hai una grande lista di cose che vuoi che il sistema faccia, dai la priorità a tutto e decidi quale sarà la funzionalità minima per avere un sistema base in esecuzione. Potrebbe trattarsi di una singola funzione di base o di un intero schermo, ma deve essere qualcosa che senti, poiché il cliente sarà abbastanza utile da testare.
Quindi, Lista dei desideri di funzionalità + priorità di base = Requisiti .
Una volta che hai tutto questo, fai un design di altissimo livello. Siediti e pensa a ciò di cui il tuo sistema avrà bisogno per mettere in funzione le prime priorità. Cambia idea se lo desideri, ma qui è dove potresti voler aggiungere un po 'di codice o una configurazione di sistema per saperne di più su ciò che è possibile. Vai solo abbastanza lontano per convalidare la tua idea di base di un design.
Vale a dire: ORA puoi soddisfare le sollecitazioni dei tuoi designer .
Una volta fatto, inizi a implementare le tue funzionalità. Crea per ogni caratteristica una specifica funzionale di base. Questo potrebbe essere semplice come una raccolta di dichiarazioni di funzionalità. Carte delle storie se vuoi. Ciò ti consente di sviluppare un po 'la tua idea nella tua mente e di creare una serie di dichiarazioni che diventeranno le specifiche su cui testerai e costruirai la tua implementazione.
Cry Havoc, lascia che i cani di ... Code !!
Da lì, implementa i tuoi test in modo che corrispondano alle tue specifiche, quindi per ogni test scrivi il tuo codice. Costruisci, "rilascia", quindi ripeti con la funzione successiva fino a quando decidi che il progetto non è abbastanza completo.
Dipende davvero dall'esperienza, ma questo approccio che ho trovato è una formula semplice per aiutarti a focalizzare la tua mente su ciò che deve essere fatto, piuttosto che rimanere bloccato in un ciclo infinito di procrastinazione a causa del tentativo di fare troppo una volta.