PDA

View Full Version : Metodologie di sviluppo software


LowSlow
07-10-2017, 10:35
Sto preparando un esame universitario, si chiama "ingegneria del software", l'esame consiste nel fare un progetto in cui si deve creare un software scegliendo una metodologia di sviluppo software e alcune domande di teoria. Il software che si crea non è importantissimo (naturalmente non deve essere una cosa facilissima), ma è più importante (ai fini della valutazione) seguire una metodologia e documentarla. Tra le metodologie che si possono scegliere c'è agile, extreme programming,scrum, devops, metodo a cascata (quello classico), RUP.
Sto studiando la teoria di ognuna di queste metodologie, alcune sono abbastanza chiare, in altre non si capisce cosa si deve fare in pratica, e sono un po' indeciso su quale scegliere.
Scrum mi è capitato di averci a che fare in un lavoro, però come metodologia da utilizzare da solo mi sembra sprecata.
Per un progetto in AngularJS che comunque farò da solo (non ci sono team), quale metodologia mi consigliate di seguire?
Grazie.

tacchinox
07-10-2017, 17:29
Scrum e' con regole ben definite e soprattutto e' una metodologia che non specifica niente riguardo a qualita' del software, per cui puoi fare una ciofeca e chissenefrega.
Io andrei proprio di Scrum :)

Nuke987
07-10-2017, 20:42
Con scrum parliamo di una metodologia di sviluppo agile ed effettivamente come dici tu stesso è strano utilizzarla in solitaria e soprattutto senza che ci siano feedback da parte dei clienti.

Ai fini dell'esame se dovessi andare di scrum probabilmente simulerei la presenza di clienti, feedback, di un paio di changelog e funzioni/classi modulari per dimostrare la flessibilità che è propria di questa metodologia. Da diventare bipolari ma magari lo apprezzano :rolleyes: o magari la mia è un'idea di cacca :p

tacchinox
08-10-2017, 00:45
Nello scrum non ti servono ne feedback, ne' clienti, ne' funzioni modulari.
Ti serve solo il PO, che pero' e' quello che organizza il backlog e te lo puoi fare anche da solo, e un progetto qualsiasi.

Per partire devi suddividere il progetto in storie e epics e decidere che storie hanno la priorita' piu' alta nel backlog. Il primo sprint prendi le storie a priorita' piu' alta, assegni i punti e decidi quali fare nello sprint. Assegni uno o piu' sprint goal e fine.

Lo sprint e' bloccato, per cui non puoi modificare le storie.

Alla fine dello sprint fai una review con le storie che hai completato e decidi se il goal e' stato raggiunto o meno.
Poi fai la retrospective (cosa e' andato bene, cosa e' andato male e azioni da fare nel prossimo sprint).
Poi fai il planning dove assegni punti alle storie (eventualmente quelle che non hai completato le rivaluti o le rimetti nel backlog) e metti le storie per il prossimo sprint.
In pratica a fine sprint compili 3 documenti word e te la cavi.

Se non riesci a finire il progetto amen, l'importante e' capire i punti chiave dello scrum, tipo fare le storie di grandezza giusta, fare refinement, assegnare task alle storie, assegnare gli story point giusti, definition of done, ...

LowSlow
08-10-2017, 17:39
Grazie a tutti per i consigli.
Scrum l'ho già utilizzato e so più o meno come funziona, non è male però quasi quasi vorrei provare qualcosa che non ho mai utilizzato.
Per esempio cosa ne pensate di extreme programming? Per quello che devo fare me lo consigliate?