PPS-23-ScalaSim

Metodologie di Sviluppo

All’interno di questo capitolo verranno descritte le modalita che sono state seguite per la realizzazione del nostro progetto.

Metodologia Agile

Durante lo sviluppo del seguente progetto sono state adottate una serie di modalita Agili. Questa filosofia di sviluppo ha permesso al nostro team di strutturare e dividre il lavoro con estrema facilita permettendoci di avere una maggiore indipendenza e allo stesso tempo una migliore qualita del codice.

Tra le varie filosofie Agili che sono presenti, abbiamo scelto di utilizzare una particolare variante denominata Scrum.

Scrum

Scrum e una metodologia di gestione dei progetti che si concentra principalmente su un processo iterativo ed incrementale per ottimizzare la produttivita e la qualita del lavoro in un team.

Ad ogni iterazione del progetto vengono aggiunte nuove funzionalita o si raffinano quelle gia esistenti. Nella fase primordiale del processo di sviluppo in modalita Scrum e necessario stilare quello che viene chiamato il Product Backlog. Tale documento prevede una lista di funzionalita previste dal sistema.

Gli sprint (termine con la quale si puo indicare il termine iterazione) avvenivano settimanalmente, con scadenza prefissata nei week-end. All’interno di ogni sprint venivano eseguite una serie di attivita, tra cui:

  1. Daily Scrum: questa attivita prevede una riunione giornaliera tra tutti i membri del team, in cui ogni singolo partecipante aggiorna l’intero gruppo riguardo alle attivita che ha svolto nel giorno precedente, le varie attivita che avrebbe eseguito nel giorno stesso ed in quelli futuri ed eventuali problemi incontrati/da affrontare. La piattaforma utilizzata per eseguire questi incontri e stata Discord. L’insieme di tutte le informazioni raccolte all’interno di questi incontri servivano a ri-formulare lo Sprint Backlog.
  2. Sprint Planning: questa attivita veniva eseguita nel primo giorno della settimana relativa, in cui si andavano ad individuare le diverse funzionalita da implementare, queste funzionalita venivano a loro volta suddivise in sotto funzionalita ed assegnate poi ai diversi membri del team. Ad ogni attivita viene associata una priorita e poi successivamente il membro del team a cui veniva assegnato tale task associava ad esso un valore che ne rappresentava la difficolta. Il software utilizzato per questa attivita e stato Jira.

Successivo ad ogni sprint venivano eseguite una serie di attivita per il raffinamento del progetto, ovvero:

(Scrum) Suddivisione del Team

Nella metodologia di sviluppo scrum vengono identificate diversi ruoli tra i componenti del team, tra cui:

Test Driven Development

All’interno del nostro progetto, abbiamo scelto di adottare la metodologia di sviluppo TDD (Test Driven Development). Questa scelta permette al sistema di garantire una maggiore qualita del codice, identificare e correggere i bug in anticipo e di migliorare la manutenibilita complessiva del sistema software. Il TDD si compone di due fasi realizzative:

  1. Definizione dei test: la prima fase di sviluppo con questa modalita prevede la definizione dei test;
  2. Scrittura del codice di produzione: sviluppo del codice necessario affinche i test definiti nella fase precedente eseguano con esito positivo senza fallire.

La fase preliminare alla scrittura del codice e quella di Red Green Refactor, che e composto dalle tre seguenti fasi:

  1. Fase Red: scrivere un test che fallisca per una determinata funzionalita;
  2. Fase Green: scrivere il codice di produzione che soddisfi il test definito della fase precedente;
  3. Refactor: ristrutturare il codice di testing e sia quello di produzione.
Indice Capitolo Precedente Capitolo Successivo