Discussione Best practice di un team di sviluppo

Indisparte

Utente Iron
4 Novembre 2020
6
5
2
18
Salve a tutti
Oggi esordisco con la mia prima discussione su questo forum ( abbiate pietà ).

Sono uno studente universitario e ho un esame di ingegneria del software a cui vorrei dedicarmici parecchio perché è un argomento che mi sta interessando molto.

La mia domanda non è sul coding ma sull'organizzazione e le best practice in un team di sviluppo di 3 persone.
  1. Come funziona con il versionamento? In particolare vorrei sapere se il metodo di programmazione è "a pezzetti" ovvero si crea la struttura del software e poi ognuno crea un pezzetto da "mergiare", oppure ognuno ha sulla propria macchina l'intero software che "mergerà" con gli altri ?
  2. Come andrebbe diviso il lavoro tra i colleghi?
Se hai letto questa domanda, grazie del tuo tempo!
 
Salve a tutti
Oggi esordisco con la mia prima discussione su questo forum ( abbiate pietà ).

Sono uno studente universitario e ho un esame di ingegneria del software a cui vorrei dedicarmici parecchio perché è un argomento che mi sta interessando molto.

La mia domanda non è sul coding ma sull'organizzazione e le best practice in un team di sviluppo di 3 persone.
  1. Come funziona con il versionamento? In particolare vorrei sapere se il metodo di programmazione è "a pezzetti" ovvero si crea la struttura del software e poi ognuno crea un pezzetto da "mergiare", oppure ognuno ha sulla propria macchina l'intero software che "mergerà" con gli altri ?
  2. Come andrebbe diviso il lavoro tra i colleghi?
Se hai letto questa domanda, grazie del tuo tempo!
Ciao, non ho ben capito in cosa consiste il tuo lavoro ma per quanto riguarda lo sviluppo di progetti tra programmatori diviene praticamente d'obbligo utilizzare una piattaforma come github. Github sarebbe un servizio online che permette a chiunque (te la faccio più breve possibile) di scaricare sul proprio pc i file di un progetto che si trova appunto su github (fatto da altre persone che magari ci stanno lavorando insieme per trovare la soluzione ad un problema o semplicemente per dividersi i compiti). Il progetto "principale" prende il nome di master (o main) ed è, diciamo, la versione buona ed approvata da tutti. A questa versione ognuno può richiedere di aggiungere (fare il merge) dei pezzetti o delle modifiche che intende apportare al master, con tanto di descrizione. Ovviamente gli altri dovranno essere d'accordo sulle modifiche.
Un software di versionamento è invece, ad esempio, git. Questo permette di risalire a versioni precedenti del tuo progetto sul tuo pc (fatta brevissima). Puoi vedere github come l'insieme online dei git di vari utenti.
Per aiutarti a collegare git a github esiste github desktop (che io preferisco), oppure lo puoi fare direttamente dall'editor.

In pratica:
- su github create un progetto (oppure prendi il progetto di altri)
- copi la cartella del progetto sul tuo pc
- inizializzi questa cartella con github desktop
- crei o modifichi un file in questa cartella
- vai su github desktop e ti rileva che ci sono tali modifiche (te le mostra confrontandole) in tale documento
- ci aggiungi il commento
- fai il push
- ora le modifiche sono su github e tutti le possono vedere.
 
  • Mi piace
Reazioni: Indisparte
Salve a tutti
Oggi esordisco con la mia prima discussione su questo forum ( abbiate pietà ).

Sono uno studente universitario e ho un esame di ingegneria del software a cui vorrei dedicarmici parecchio perché è un argomento che mi sta interessando molto.

La mia domanda non è sul coding ma sull'organizzazione e le best practice in un team di sviluppo di 3 persone.
  1. Come funziona con il versionamento? In particolare vorrei sapere se il metodo di programmazione è "a pezzetti" ovvero si crea la struttura del software e poi ognuno crea un pezzetto da "mergiare", oppure ognuno ha sulla propria macchina l'intero software che "mergerà" con gli altri ?
  2. Come andrebbe diviso il lavoro tra i colleghi?
Se hai letto questa domanda, grazie del tuo tempo!
1. Considerando che attualmente i progetti si affrontano con uno stile di lavoro Agile, i membri del team, una volta creata la struttura di base (se necessaria), lavorano poi sui funzionalità diverse o su componenti diversi dello stesso progetto, aggiornandosi gli uni con gli altri in tempi ristretti e "mergiando" i rispettivi codici ogni volta che l'obiettivo x è stato raggiunto ed è funzionante. In genere quindi, per lo sviluppo di un software da zero, si parte tutti dalla stessa base e poi ognuno si dedica alle proprie mansioni. Per la modifica di un software già completo invece ognugno si scarica il sorgente completo e poi va a modificare quella parte che gli interessa, il tutto gestando sempre il versionamento con tool come git.
2. Dipende molto dalla natura stessa del progetto: se si è in 3 e bisogna creare un progetto che si appoggia su due piattaforme (magari metà in cloud e metò in locale), è bene che in due lavorino su una parte e un altro sull'altra, se invece il programma è tutto locale, una volta creata la base ognuno prende poi la sua strada in base alla funzionalità che deve sviluppare
 
  • Mi piace
Reazioni: Indisparte e N3v5