Come puoi progettare un'applicazione quando non hai immaginato completamente come appare l'app? [chiuso]

0

Questo è il problema, un uomo entusiasta vuole costruire un'app, tuttavia sa solo approssimativamente come dovrebbe funzionare l'app. Ci sono molti dettagli che non conosceva.

Come progetta la sua app?

-Option1:

Non progettare, ma codifica solo il primo e il più importante prova per vedere come va poi modificare gradualmente. Dopo aver terminato la funzione con priorità più alta, può passare alla successiva funzione di priorità. Approccio dal basso verso l'alto.

-Option2:

Continua a pensare fino a quando non ha realizzato tutti i dettagli, quindi progetta un'app completa prima di iniziare a scrivere. Approccio dall'alto verso il basso.

-Option3

Combina entrambe le opzioni 1 e 2, ovvero può progettare prima alcune funzioni di base, quindi iniziare a programmare anche se non ha realizzato tutti i dettagli, quindi modifica di conseguenza.

È molto difficile conoscere tutti i dettagli proprio all'inizio perché siamo umani e amp; non possiamo predire il futuro.

Quindi io voto per l'opzione 1 o 3. Ma è piuttosto doloroso se devi cambiare il tuo codice se ti mancano i dettagli. Molte cose devono essere cambiate. Il mio istruttore all'università dice che preferisce sempre un approccio dall'alto verso il basso perché lo credeva meglio.

Tuttavia, penso che costruire un software come se vivessi una vita, non sai mai in anticipo cosa succederà in futuro, quindi l'opzione 1,3 potrebbe essere la migliore.

Qual è la tua soluzione?

    
posta Kiti 16.03.2014 - 03:35
fonte

2 risposte

0

Ciò che stai descrivendo è un approccio diverso alla gestione del progetto: l'opzione # 2 è un approccio waterfall , dove descrivi per prima cosa prodotto, quindi lo progetta, quindi lo implementa ...

Advocates of Agile software development argue the waterfall model is a bad idea in practice—believing it impossible for any non-trivial project to finish a phase of a software product's lifecycle perfectly before moving to the next phases and learning from them.[citation needed]

For example, clients may not know exactly what requirements they need before reviewing a working prototype and commenting on it. They may change their requirements constantly. Designers and programmers may have little control over this. If clients change their requirements after the design is finalized, the design must be modified to accommodate the new requirements. This effectively means invalidating a good deal of working hours, which means increased cost, especially if a large amount of the project's resources has already been invested in Big Design Up Front.[citation needed]

Le opzioni 1 e 3 sono descrizioni semplicistiche di un approccio più Agile , sebbene questi approcci tendano ad essere più formale di "apriamocelo!"

Credo che l'uomo entusiasta debba prima capire completamente quale problema vuole risolvere . Quindi, un approccio che assomiglia all'Opzione n. 1 - un Behaviour Driven Design - potrebbe funzionare per lui, dove scrive il main User Story per la sua soluzione, li descrive, quindi li implementa in brevi iterazioni.

Questo produrrà un rapido MVP che può valutare, decidere rapidamente se il prodotto è effettivamente fattibile, e se è , inizia ad aggiungere più user story per un'altra iterazione ...

    
risposta data 16.03.2014 - 14:41
fonte
0

La maggior parte dello sviluppo di software comporta una combinazione di approcci top-down e bottom-up. Personalmente penso che sia una pratica molto scarsa iniziare la codifica prima di aver progettato il quadro generale. Finirai con un mucchio di pezzi che non si adattano bene insieme. Inizia identificando i componenti principali e le loro interfacce e il modo in cui interagiscono tra loro. In OOP dovresti avere tutte le interfacce di classe importanti progettate prima di iniziare a scrivere codice. Dopo aver iniziato la codifica, aggiungerai sicuramente più classi di supporto che aiutano a mantenere il codice pulito, ma va bene. Se si programma su un'interfaccia, non su un'implementazione, si può scolpire l'intero flusso senza implementare nessuna delle classi. È possibile iniziare a implementare ciascuna classe una alla volta e chiedere agli altri di restituire i valori simulati finché non sono pronti. In questo modo hai sempre un'immagine completa.

Come hai detto, non puoi sapere al 100% ogni palla curva che verrà lanciata, motivo per cui top-down e bottom-up vengono usati insieme. Progetta il tuo programma, inizia a scrivere e se hai bisogno di tornare al tavolo da disegno perché qualcosa non va bene allora va bene.

    
risposta data 16.03.2014 - 03:52
fonte

Leggi altre domande sui tag