Quale processo di sviluppo software dovrei imparare prima per un progetto solista? [chiuso]

7

Voglio sviluppare un progetto per conto mio (se è successo più persone potrebbero iniziare a lavorarci sopra). Inoltre voglio applicare una corretta ingegneria del software dal primo fino all'ultimo giorno. Da un lato solo per provarlo e confrontare i risultati con progetti precedenti che riguardavano solo la scrittura di codice rapido e sporco, e dall'altro imparare! So che la risposta corretta a questa domanda è "Dipende molto dal progetto ...", "Non esiste un'unica risposta corretta ...". Ma ho solo bisogno di un posto dove cominciare, da qualche parte dove ogni passo è scritto e mi dice cosa fare. Se non sono felice la prossima volta proverò qualcos'altro.

Quindi, come / dove dovrei iniziare? Mi piacerebbe sentire qualche suggerimento sui libri perché sono tutto sui libri MrGreen.

EDIT: Rispondendo ad alcune delle domande che sono saltate fuori:

Cliente : c'è un tipo di cliente / amico. Nessuna vera pressione.
Controllo versione : ho usato la sovversione in passato e voglio provare mercurial.
Monitoraggio dei bug : avevo l'impressione che per il singolo sviluppatore fosse sufficiente una checklist (mi sbaglio?)
Test : voglio provare Lime (perché io uso Symfony) e selenio.

Nel complesso proverò molte cose che non ho mai usato prima, ma come ho detto uno dei punti principali è l'apprendimento. La tecnica del Pomodoro continua a spuntare ovunque io guardi, quindi forse dovrei dare un'occhiata a questo ...

    
posta Omar Kohl 31.01.2011 - 22:10
fonte

7 risposte

6

Ecco il processo che utilizzo per lo sviluppo in solitario:

  • Configura un sistema di controllo della versione e un sistema di tracciamento dei bug. Ci sono un sacco di opzioni per entrambi. Io uso Mercurial & FogBugz personalmente.
  • Metti tutto ciò che deve essere fatto nel bug tracker.
  • Scegli un bug, risolvilo.
  • esegui il commit del tuo sistema di controllo della versione.
  • risolvi il problema.

In questo modo puoi avere una chiara idea di dove il tuo progetto sta andando e un chiaro senso di realizzazione mentre lo attraversi.

    
risposta data 31.01.2011 - 22:16
fonte
10

Quando lavori da solo, difficilmente troverai un "processo" per te che meriti quel nome. È meglio concentrarsi sul fare correttamente la parte di programmazione, usando correttamente il controllo della versione, scrivendo i test delle unità, tutto ciò che rende un buon codice.

    
risposta data 31.01.2011 - 22:15
fonte
3

Controllo versione

Se c'è una cosa di cui ogni progetto ha bisogno (inclusi i progetti esclusivi) il suo controllo di versione.

Qualunque altra cosa che usi è facoltativa (ma il controllo della versione è d'obbligo (auguro alle università molto di più sull'argomento)).

Sviluppo basato su test

È bello avere come puoi facilmente individuare le regressioni nell'interfaccia man mano che il codice viene aggiornato. È sicuramente molto bello lavorare su un progetto unico (ma non essenziale).

Un piano e un metodo di monitoraggio modificati per il piano

Devi definire cosa vuoi costruire, come lo vuoi costruire e gli errori che hai fatto.

Se il tuo progetto diventa abbastanza grande in cui altre persone iniziano ad aderire, se hai rintracciato decisioni / problemi / errori, i nuovi contributi non devono necessariamente commettere gli stessi errori o andare in rovina che hai provato.

A tal fine qualche forma di DB di tracciamento dei bug / elenco delle caratteristiche / Project WIki.

Inoltre, annotando un piano (comprese le funzionalità che ti piacciono (potenzialmente con una lista prioritaria), sai cosa devi concentrarti nella fase successiva.

    
risposta data 31.01.2011 - 22:50
fonte
3

Prima di digitare un carattere di codice devi avere un piano. Ti suggerisco di iniziare scrivendo un documento dei requisiti che descrive che , non come, vuoi consegnare. Questo documento dovrebbe essere abbastanza generico da poter essere implementato in qualsiasi linguaggio di programmazione adatto, ma abbastanza dettagliato da fornire un dominio e un intervallo per ogni sottoinsieme erogabile. Esaminare il documento alla ricerca di incongruenze, come requisiti incompleti o in conflitto. Continua a esaminare fino a quando non sei soddisfatto della completezza del documento.

Una volta completata la specifica dei requisiti, è necessario un piano per come implementerai il software. Questo è noto come un documento di progettazione software. Dovrebbe delineare l'architettura generale del progetto e fornire dettagli per ogni classe, modulo, funzione, ecc. Una persona che legge il documento di progettazione del software dovrebbe essere in grado di vedere come ogni parte del progetto interagisce con le altre parti. Rivedi e rivedi questo documento fino a quando non sei soddisfatto della sua completezza.

Una volta che questi due documenti sono stati fatti, puoi iniziare l'attuale processo di codifica. Questi documenti servono anche a istruire nuovi aiutanti sul progetto. Una specifica dei requisiti ben scritta ti consentirà di assegnare un sottoinsieme dei requisiti a un'altra persona e un documento di progettazione software ben scritto assicurerà che tali elementi siano codificati e testati correttamente e all'interno dei domini e degli intervalli specificati.

    
risposta data 01.02.2011 - 00:01
fonte
2

Hai provato la Tecnica Pomodoro ? Il problema più grande con il lavoro lungo è che non hai colleghi per mantenerti concentrato. Usare il pomodoro potrebbe aiutarti almeno con quello.

Però non farà alcun smalltalk ...

    
risposta data 01.02.2011 - 19:50
fonte
1

Hai un cliente? O è solo un progetto di miglioramento personale (per imparare come fare un'adeguata ingegneria del software)? I problemi chiave della maggior parte dei progetti sono legati alla gestione di una squadra. Ti raccomando:

  • Utilizza un repository di codice e esercitati a effettuare il check-in e il check-out con commenti coerenti.
  • Utilizzare un sistema di tracciamento dei bug e tenere traccia dei bug (in sospeso, in corso, corretti, differiti).
  • Trova un sistema di documentazione di commenti / fonti che puoi tollerare e utilizzare. Io personalmente preferisci Doxygen, ma YMMV.
  • Crea una build con un solo pulsante e crea build regolari.
  • Scrivi test e usali.
  • Crea una sorta di diagramma di flusso per mostrare il flusso di 10.000 piedi attraverso l'applicazione.
  • Crea un diagramma di oggetti che mostra come i tuoi moduli sono interconnessi.
risposta data 01.02.2011 - 04:43
fonte
0

Consiglierei gli approcci:

  1. Documenta il tuo codice in modo che quando torni ad esso, sembra qualcosa di familiare
  2. hanno prove scritte per diverse funzionalità.
  3. Segui Agile in modo che tu possa vedere il risultato dei tuoi sforzi in breve tempo e così facendo ti daranno la motivazione per andare avanti.
  4. Come sempre, continua ad imparare.
risposta data 01.02.2011 - 19:33
fonte

Leggi altre domande sui tag