CodeGym /Java Blog /Random-IT /Metodologie di sviluppo del software
John Squirrels
Livello 41
San Francisco

Metodologie di sviluppo del software

Pubblicato nel gruppo Random-IT
In molte interviste, probabilmente ti verrà chiesto delle metodologie. Questa non è la domanda più importante o difficile, ma sarebbe bello avere un foglietto illustrativo. In questo articolo, cercheremo di trasmettere cos'è una metodologia di sviluppo e confrontarli. Una metodologia di sviluppo software è un processo utilizzato per sviluppare un particolare prodotto, ovvero è un modo per organizzare lo sviluppo da parte di un team di sviluppatori. Esistono molti modelli di sviluppo diversi, ognuno dei quali definisce il proprio approccio. Non si può dire che ognuno di loro debba essere utilizzato per ogni progetto. L'approccio giusto dipende interamente dalla situazione. Intendo esaminarne tre in maggior dettaglio.

Cascata

La metodologia a cascata è una delle più antiche e prevede un'implementazione strettamente sequenziale: ogni fase deve essere completata prima che inizi la successiva. In altre parole, una transizione alla fase successiva significa che il lavoro della fase precedente è completo al 100%. L'immagine mostra come funziona: prima analizziamo il problema (documentiamo le attività, discutiamo le sfide), poi progettiamo (la struttura del progetto prende forma in questa fase), quindi codifichiamo e testiamo. Non è consentito il ritorno alle fasi precedenti. Questo approccio è consigliato per piccoli progetti in cui i requisiti sono noti in anticipo ed è improbabile che cambino. Metodologie di sviluppo del software - 2Vantaggi:
  • Documentazione completa e coerente in ogni fase
  • Facilità d'uso
  • Requisiti stabili
  • Budget e scadenze sono predefiniti
Svantaggi:
  • Una grande quantità di documentazione
  • Non molto flessibile
  • Il cliente non può vedere una versione demo del prodotto
  • Nessuna opzione per tornare indietro

Mischia

Scrum è una metodologia di sviluppo software che suddivide l'intero processo in iterazioni. Al termine di ogni interazione, il team è pronto a fornire una versione demo del prodotto. L'immagine mostra che il team procede attraverso tutte le fasi di sviluppo in parallelo, rendendo possibile avere una parte completa del progetto alla fine di ogni iterazione. Metodologie di sviluppo del software - 3Cercherò di spiegare brevemente l'essenza della metodologia usando parole semplici, ma c'è molta terminologia. Penso che la cosa più importante sia capire l'essenza. Ricorderai la terminologia con l'esperienza. Tutto lo sviluppo è suddiviso in sprint (spesso 2-3 settimane). C'è un arretrato(elenco delle attività) per l'intero periodo di sviluppo e per ogni singolo sprint. Ogni attività ha il proprio punto della storia (grado di difficoltà). Ogni partecipante al processo ha un ruolo:
  • Il team di mischia è composto dai professionisti (sviluppatori, tester, designer) che lavorano su un progetto.
  • Lo scrum master è la persona che si assicura che i principi di scrum siano rispettati.
  • Il proprietario del prodotto è il cliente.
Questa metodologia si basa sulla comunicazione, quindi ci sono un gran numero di incontri:
  • Stand-up – Questo è un breve incontro, che si tiene ogni giorno, a cui prendono parte tutti i membri del team. Ogni partecipante risponde a 3 domande: Cosa ho fatto? Cosa farò? E quali problemi di blocco ci sono?
  • Riunione di pianificazione: questa riunione si tiene all'inizio dello sprint. In questa riunione vengono identificate le attività che devono essere eseguite nello sprint successivo.
  • Retrospettiva - Questo incontro si tiene alla fine dello sprint e il suo scopo è identificare cosa è stato fatto bene e cosa potrebbe essere migliorato.
Vantaggi:
  • Il cliente può vedere i risultati durante il processo di sviluppo
  • Monitoraggio quotidiano del processo di sviluppo
  • Capacità di apportare modifiche durante lo sviluppo
  • Comunicazioni stabilite con tutti i membri del team
  • Una piccola quantità di documentazione
Svantaggi:
  • Difficile valutare la manodopera e altri costi necessari per lo sviluppo
  • Difficile identificare i colli di bottiglia prima dell'inizio dello sviluppo
  • La necessità di coinvolgere tutti nel lavoro degli altri membri del team.

Kanban

Kanban è un metodo basato sulla visualizzazione dei progressi compiuti nel completamento dei compiti del team. L'idea principale è ridurre il numero di attività attualmente in esecuzione (nella colonna "In corso"). In mischia, il team si concentra sul completamento con successo degli sprint. In Kanban, l'attività occupa la posizione preminente. Questo è utile per i progetti in fase di manutenzione, in cui la funzionalità di base è già stata implementata e rimangono miglioramenti minimi e correzione di bug. In Kanban, le attività vengono assegnate individualmente. Un'attività attraversa tutte le fasi sulla lavagna, indipendentemente da altre attività, e una volta completata può essere mostrata al cliente. Una scheda Kanban è composta da colonne, ognuna delle quali rappresenta un processo di sviluppo separato. Alcune colonne (ad esempio, "In corso" ) limitano il numero di attività che possono contenere. Questo aiuta a trovare rapidamente e facilmente le aree problematiche nella distribuzione dei compiti. L'immagine mostra un esempio di una tavola del genere. Il numero di colonne e i loro nomi possono variare. Presenterò i più comuni: Metodologie di sviluppo del software - 4
  • To Do - L'elenco delle attività che devono essere eseguite
  • In corso: attività attualmente in fase di elaborazione
  • Revisione del codice: attività eseguite e sottoposte a revisione
  • In Test – Compiti pronti per il test
  • Fatto – Attività terminate
Vantaggi:
  • Facilità d'uso
  • Visibilità (aiuta a individuare i colli di bottiglia, semplifica la comprensione)
  • Elevato coinvolgimento del team nel processo stesso
  • Sviluppo altamente flessibile
Svantaggi:
  • Un elenco di attività instabile
  • Difficile da applicare a progetti a lungo termine
  • Mancanza di scadenze rigide

Un'ultima parola sulle metodologie di sviluppo del software

Le persone che ricoprono o aspirano a posizioni dirigenziali devono comprendere a fondo le metodologie di sviluppo del software, ma tutti devono comprendere almeno le basi. Le metodologie sono parte integrante del processo di sviluppo e sono utilizzate non solo nella sfera IT. Grazie per aver dedicato del tempo a leggere il mio articolo. Spero ti sia stato utile. Ho cercato di descrivere solo i punti chiave nel modo più accessibile e conciso possibile. Di conseguenza, questo articolo non è esaustivo. Sarei felice di sentire la tua opinione in merito e rispondere alle tue domande. Ti auguro il meglio!
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION