Come faccio a scrivere una specifica funzionale in modo rapido ed efficiente


17

Quindi ho appena letto alcuni articoli favolosi di Joel sulle specifiche qui . (È stato scritto nel 2000 !!) Ho letto tutte e 4 le parti, ma sto cercando alcuni approcci metodici per scrivere le mie specifiche.

Sono l'unico sviluppatore solitario, a lavorare su questa app (o famiglia di app) abbastanza complicata per una società finanziaria molto nota.

Non ho mai fatto qualcosa di così serio, ho iniziato a scrivere qualcosa di simile a una brutta specifica, una panoramica di alcuni tipi, e ha perso molto del mio tempo.

Ho anche creato 3 mockup-kinda-cose per il mio cliente, quindi ho una buona comprensione di ciò che vogliono. Inoltre, è stata rilasciata un'anteprima (un'app funzionante usa e getta con il flusso di lavoro più semplice) e ho scritto e testato solo alcuni dei sistemi di base.

Penso che l'errore che ho commesso finora non sia stato scrivere una specifica dettagliata, quindi ci sto arrivando ora.

Quindi il tutto comprende

  • Un sito Web MVC (per amministratori e visualizzazione dei dati)
  • 2 moduli Silverlight (per 2 attività specifiche)
  • 1 applicazione desktop

Sono a corto di tempo, risorse e ho bisogno di farlo in fretta, inoltre, devo assicurarmi che questi ragazzi lo leggano in modo altrettanto rapido e indolore.

  • Quindi, come posso fare, sto cercando consigli, cose del mondo reale, come lo fate di solito voi ragazzi?
  • Realizzi una finta sceneggiatura di ogni finestra di dialogo / modulo / pagina?

Sto pensando di creare un finto progetto ASP.NET Web Forms, quindi compilare i file HTML in cartelle e renderlo simile alla mia struttura URL MVC.

Quindi avere una sezione nelle specifiche del sito Web e scrivere una pagina per ogni URL che ho con uno screenie.

Per il mio forme vittoria app, ho fatto un po 'di una demo del progetto Win Modulo, avrei poi messo in un tutto finestra o di una struttura come avrei fatto nel vero app e poi schermo girato vero?


Per alcuni retroscena di questa domanda. Sono sempre stato un tipo pazzo di salto nel codice, che ha funzionato bene, ma per l'app a cui sto lavorando, non è solo complesso, è per un'azienda molto rinomata e grande e devo ottenerlo giusto!

(E sta andando bene finora, oggi ho fatto una demo della versione di anteprima che è piaciuta a molte persone !! = D)

Se avrò il progetto iniziale corretto avrò anche un ottimo affare con questa azienda, ci sono già molti che pensano a nuove funzionalità "fantastiche" che sono pronte a pagare.


Questo è per te? Il cliente lo ha richiesto? Ti aspetti che altri sviluppatori si uniscano al team?
JeffO,

È principalmente per aiutare il mio sviluppo. Ogni tanto ricevo ragazzi di finanza casuale che mi dicono "oh dovremmo fare xxx o yyy" quando ne abbiamo già discusso, quindi a volte in alcuni incontri le persone suggeriscono solo funzionalità casuali, la parte peggiore è che non ho mai un modo corretto di aggiungendo le funzionalità extra per costi aggiuntivi perché la mia cosiddetta specifica prima non era altro che un riepilogo! Fondamentalmente ho molti problemi che Joel Spolsky menziona nel suo articolo quando non scrivi una specifica.
Gideon,

Risposte:


22

Hai letto la parte 2 dell'articolo o le sue specifiche di esempio ? Incarnano un paio di principi importanti quando si scrive una specifica.

  • Non esagerare. Lo scopo di scrivere le specifiche è quello di costringerti a pensare a cose importanti come ciò che accade in caso di errore e come ti aspetti che l'utente interagisca con il sistema. Non è necessario entrare nei dettagli eccessivi per ottenere qualcosa su cui lavorare. Hai bisogno di dettagli, però.
  • Riguarda la comunicazione. Lo scopo delle specifiche è quello di raggiungere un accordo comune su ciò che deve essere fatto. Non è un documento corazzato che richiede la forza della legge. È uno strumento che ti aiuta a capire meglio il tuo cliente e il tuo cliente a capire meglio cosa vuoi fare per loro.

Il miglior consiglio è quello di scrivere abbastanza in modo da essere chiari su ciò che devi fare. Se hai domande aperte, documentale nelle specifiche e ottieni risposte dal tuo cliente. Una volta che hai compreso adeguatamente ciò che è necessario fermati .

Se non stai attento, il documento avrà una vita propria. Dovrebbe avere uno scopo, non aggiungere nulla al documento che non rientri in quello scopo. Dovrebbe essere facile da mantenere. Se hai tutti i tuoi diagrammi di classe dettagliati insieme ad altri dettagli che appartengono davvero a un test unitario, abbandonerai il documento perché il mantenimento è eccessivo o non riuscirai mai a completare il progetto.


A proposito di scrivere

Scrivere per le persone è difficile . In effetti, le due cose più difficili della scrittura sono sapere come iniziare e sapere quando fermarsi . All'inizio devi solo fare qualcosa. Il mio consiglio per affrontare questi due aspetti più difficili è:

  • Conosci il tuo pubblico. Chi dovrebbe leggere le specifiche? Se sei solo tu e il cliente, allora è quello a cui stai scrivendo. Se hai qualcuno responsabile dei test, avrai anche delle note per loro.
  • Inizia con la massima priorità. Sebbene l'autenticazione sia importante, la schermata di accesso è probabilmente il pezzo più compreso che la maggior parte della gente deve scrivere. Concentrati invece su quella funzione di cui i tuoi utenti hanno più bisogno. Sai, quella parte che li rende soldi ed è la ragione per cui hanno bisogno del software.
  • Inserisci i dettagli man mano che sorgono le domande e ottieni risposte. Se necessario, mantieni le cose molto semplici con i disegni di tovaglioli fino a quando il cliente non è soddisfatto della disposizione. È importante sapere quali informazioni sono coinvolte e come le useranno.
  • Interrompi quando aggiungi altro non aggiunge valore. Ci sono alcuni dettagli che non vuoi semplicemente in una specifica. Devi sapere quando hai la cosa giusta. Non è necessario sapere che esiste una variabile all'interno di un metodo chiamato "albaquerque". Questo è il codice sorgente, non roba specifica.

+1 grazie per la tua risposta. Sì. Ho letto tutte e 4 le parti dell'articolo di Joels. E per quanto riguarda l'intero processo di sceneggiatura, dovrei creare prima pagine e moduli fittizi (dall'aspetto semplice)? In modo che io sappia cosa devo scrivere? O inizio a scrivere?
Gideon,

Inizia con quello che sai. Mantienilo semplice in modo da non impantanarti rendendolo carino. Hai bisogno dell'aiuto di qualcun altro se percorri quella strada (ci vuole tempo che non hai). Mentre le belle specifiche sono più facili da digerire, hai molto lavoro davanti a te.
Berin Loritsch,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.