Il giusto mix di pianificazione e programmazione su un nuovo progetto

10

Sto per iniziare un nuovo progetto (un gioco, ma questo non è importante). L'idea di base è nella mia testa ma non tutti i dettagli.

Non voglio iniziare a programmare senza pianificare, ma sto seriamente combattendo la mia voglia di farlo. Voglio un po 'di pianificazione prima per evitare di refactoring l'intera app solo perché una nuova funzione che potrei pensare lo richiede. D'altra parte, non voglio pianificare più mesi (tempo libero) e iniziare perché ho qualche timore che perderò la mia motivazione in questo momento.

Quello che sto cercando è un modo di combinare entrambi senza che uno domini l'altro. Dovrei realizzare il progetto sulla via della mischia? Devo creare storie di utenti e poi realizzarle? Devo lavorare su feature driven? (Ho una certa esperienza in Scrum e il classico modo di "specificare il codice".)

Aggiornamento : come iniziare con un "clic fittizio" e implementare la funzionalità in seguito?

    
posta WarrenFaith 20.03.2011 - 02:46
fonte

6 risposte

5

Sei sulla strada giusta. Non è necessario passare mesi a pianificare, ma è necessario disporre di una sorta di piano.

La pianificazione ti aiuterà a organizzare i tuoi pensieri, a identificare le tecnologie che potresti avere bisogno, a chiarire i punti problematici ea darti una tabella di marcia per lavorare da cui puoi suddividerli in obiettivi misurabili.

Inoltre, potresti dedicare qualche giorno alla pianificazione solo per scoprire che questo è uno spreco di tempo. Forse mentre stai pianificando, ti rendi conto che sei fuori dal tuo campionato o che quello che stai cercando di fare non può essere commercializzato. È meglio scoprirlo ora in modo da poter ri-investire il tuo tempo in altre idee che hai, piuttosto che percorrere questa strada solo per perdersi nei boschi, circondati da code di codice e scie di logica fallibile che ti torcono il cervello in nodi.

    
risposta data 20.03.2011 - 02:55
fonte
11

Pianifica il prodotto minimo vitale e implementalo. Quindi ascolta i tuoi utenti e pianifica il prossimo miglioramento logico e implementalo. Ripeti.

    
risposta data 20.03.2011 - 03:00
fonte
4

Indipendentemente dal tempo che dedichi alla pianificazione e alla progettazione del tuo programma, finisci sempre per riscriverne comunque parti. È come la gravità, non è intelligente negare la sua esistenza.

È necessario rendersi conto che il refactoring è una parte normale dello sviluppo ed è solo questione di decidere quando lo si fa. Aspetta a lungo e finisci con enormi quantità di spaghetti, implorando una completa riscrittura. Non divertente.

Il mio suggerimento è di pianificare un po 'ma iniziare a codificare al più presto e refactoring, refactoring, refactoring per mantenere il codice in forma. Il principio DRY (non ripetersi) è un ottimo indicatore per questo.

    
risposta data 20.03.2011 - 11:34
fonte
3

Quando sono in questa posizione, a volte utilizzo TDD (sviluppo basato su test) e inizio a pianificare alcuni test per la parte più complessa del sistema che sto sviluppando. In alternativa, potrei mettere insieme un pseudo codice di alto livello, sempre per le aree più complesse. Trovo questo processo mi dà un piano di azione libero e mi aiuta a identificare quali aree sono probabilmente più che richiede tempo.

Per me questo approccio funziona perché vive da qualche parte tra la programmazione e la programmazione. Una volta che hai le tue idee di prova e / o lo pseudo codice, puoi lavorare attraverso ogni sezione logica e implementare il codice. Io spesso affronterò la parte più difficile di una soluzione proposta, perché in genere la parte più difficile è la caratteristica principale dell'applicazione e puoi sempre ritardare qualsiasi campanello e fischio.

Dato che commenta che la maggior parte del codice è nella tua testa e sei pronto per immergerti e programmare, l'utilizzo di questo approccio può aiutarti a concentrarti su ogni sezione senza che la tua mente diventi annebbiata dal sistema nel suo complesso.

Per riassumere più sinteticamente, si potrebbe dire "affrontare prima la parte più difficile, dividere e conquistare, con pseudo codice e / o piani TDD"!

    
risposta data 20.03.2011 - 03:18
fonte
3

Basta provare a rendere modulare il codice. Qualunque altra cosa che pianifichi è probabile che venga espulsa durante la successiva iterazione.

    
risposta data 20.03.2011 - 03:28
fonte
2

Consiglierei di scrivere le tue idee almeno. A seconda delle dimensioni del progetto, potrebbe non essere necessaria molta pianificazione formale. Se tuttavia è molto grande, potresti voler risparmiare un mal di testa e passare un paio di giorni a pianificare in modo più approfondito.

    
risposta data 20.03.2011 - 05:22
fonte

Leggi altre domande sui tag