Videogame e agile

40
Videogame e Agile La scelta vincete di Pierluigi Riti

description

 

Transcript of Videogame e agile

Page 1: Videogame e agile

Videogame e Agile

La scelta vincete

di

Pierluigi Riti

Page 2: Videogame e agile

Breve Storia del mercato dei videogame

• Nell’epoca d’oro dello sviluppo dei videogame bastava un solo programmatore per creare videogame di successo.

• Le prime console da bar costavano mediamente 300$ mentre un videogame ben riuscito poteva rendere ben 1000$ in una sola settimana

Page 3: Videogame e agile

• Essendo un singolo programmatore a realizzare il videogame, questo non aveva bisogno di una metodologia di sviluppo precisa.

• Negli ultimi anni, dal 1996 al 2008, il mercato è cresciuto passando da un fatturato di 20 Miliardi di dollari a 50 Miliardi di dollari.

• Contemporaneamente è cresciuto esponenzialmente il tempo di realizzazione dei videogame passando da meno di 1 anno uomo del 1980, a circa 120 anni uomo del 2005

Breve Storia del mercato dei videogame

Page 4: Videogame e agile

Breve storia del mercato dei videogame

• Questo ha fatto il modo che i team di sviluppo siano cresciuti e che di conseguenza si è scelta una metodologia di sviluppo.

• La metodologia scelta è stata la “waterfall” perché già usata in altri settori industriali

• Questa metodologia prevede lo sviluppo in “fasi” passando da quella meno costosa a quella più costosa.

Page 5: Videogame e agile

Concept

Design

Code

Assets

Test e Debug

Page 6: Videogame e agile

Perché l’Agile

• Un problema fondamentale delle metodologie waterfall è il fatto di non poter sapere chiaramente che problemi si incontreranno.

• Ogni giorno di lavoro si crea conoscenza che non è possibile pianificare completamente con le metodologie waterfall.

• Lo sviluppo di un videogame è per prima cosa la conoscenza di quello che si vuole fare e come si ottiene.

Page 7: Videogame e agile

Perchè l’Agile

• Utilizzare le metodologie agili per lo sviluppo dei videogame aiuta a “cercare il divertimento” o “find the fun”

• Uno dei benifici dell’utilizzo del metodo interattivo è quello di realizzare il software a piccole parti in questo modo è possibile realizzare quanto richiesto dal customer nella maniera più veloce e con il minor costo possibile

• Nel campo dei videogame il customer è colui che acquista e gioca con il videogame e quindi un videogame più divertente è sicuramente più attraente e di conseguenza più facile da vendere.

Page 8: Videogame e agile

Perché l’Agile

• La conoscenza è la chiave del successo usando le interazioni dell’Agile è possibile creare questa conoscenza

• Usando la metodologia waterfall non sempre si hanno tutte le conoscenze necessarie per quel tipo di gioco

Page 9: Videogame e agile

Perché l’Agile

• Le metodologie agili si concentrano sull’eliminazione degli errori

• Elimina la pratica del “kill-gate model” in cui si fanno partire molti progetti per poi eliminare quelli che non sembrano proficui

• Le iterazioni dell’Agile permettono di stimare meglio i costi di sviluppo di ogni singola feature

Page 10: Videogame e agile

Perché l’Agile

• Lo sviluppo di un videogame richiede un gruppo con conoscenze multiple

• I valori dell’manifesto agile aiutano la gestione di questi gruppi creando delle linee di comunicazione dedicate

• La ogni figura comunica con il proprio Lead, a sua volta i Lead parlano con il Project Leader

Project Leader

Lead Animator Lead Programmer

Animator Programmer

Page 11: Videogame e agile

Agile Planning e Videogame

• Ogni interazione dell’Agile prevede l’esecuzione delle fasi di:– Concept– Design– Coding– Asset Creation– Debuing– Optimizzation– Tuning and Polish

• Tutte queste fasi vengono ripetute per ogni interazione che deriva direttamente dalle “user stories”

• Ogni 4-8 interazioni si prevede una “release” del gioco che copre una parte di gameplay

Page 12: Videogame e agile

Agile Planning e Videogame

• Il principio di “inspect and adapt” viene utilizzato per analizzare l’intero videogame e per pianificare le azioni future

• L’agile usa il principio di “inspect and adapt” per cercare il modo migliore e più veloce per raggiungere gli obbiettivi pianificati

• Gli obbiettivi pianificati sono scritti nel product backlog che contiene tutte le feature con una priorità assegnata direttamente dal Product Owner

• Le priorità vengono assegnate dal product owner controllando quale delle features aumenta maggiormente il valore aggiunto del videogame.

Page 13: Videogame e agile

Agile Planning e Videogame

• Ogni videogame possiede delle funzionalità minime che devono essere implementate

• Ad esempio nel caso di FPS(First Person Shooter) queste funzionalità sono:– Single-Multiplayer gameplay– AI– Armi– On-line Multiplayer gameplay

• Tutte queste funzionalità creano un debito tecnico di lavoro da gestire sia in termini di tempi che di costi.

Page 14: Videogame e agile

Agile Planning e Videogame

• Molti programmatori di videogame non ritengo l’Agile una metodologia corretta per vari motivi– I Publisher richiedono dei documenti di progetto

dettagliati prima di approvare il videogame– Un videogame ha bisogno di 8 ore o più di gameplay – Avere un unica data di rilascio,che di solito

corrisponde a qualche festività, Natale ad esempio oppure all’uscita di qualche film/cartone collegato al videogame.

Page 15: Videogame e agile

Agile Planning e Videogame• Le fasi di produzione sono:

– Concetto– Pre-Produzione– Produzione– Post-Produzione

• Ogni fase influenza la successiva• Nella fase di Concetto di solito si pianifica cosa si vuole realizzare

nel videogame, in questa fase di solito vengono presentate più proposte in attesa di trovare quella che si intende realizzare

• Nella fase di Pre-Produzione di solito viene realizzato un livello del videogame

• La fase di Produzione si occupa di realizzare l’intero videogame.• La fase di Post-Produzione si occupa di verificare la qualità del

prodotto finito valutando tutte le ore di gameplay verificando che risponda agli standard qualitativi richiesti.

Page 16: Videogame e agile

Agile Planning e Videogame• La fase di pre-produzione copre il 25% del tempo di

sviluppo in questa fase il product owner analizza alcuni aspetti fondamentali per lo sviluppo successivo.

• Il product owner e il team esplora il gameplay per capire i costi di produzione e misurare il debito tecnico

• Il product owner usa la fase di pre-produzione per produrre tutte le misure necessarie alla misurazione degli sprint.

• Il team scrum rifinisce il timebox di sviluppo in modo di avere una corretta pianificazione dei rilasci definendo costi e qualità da utilizzare nel videogame.

Page 17: Videogame e agile

Agile Planning e Videogame

• Misurare il debito tecnico permette al product owner di capire i costi di produzione

• Avere la conoscenza di questi costi permette di evitare le cosiddette “kill gate feature”

• Una “kill gate feature” è una feature che viene aggiunta in produzione e che aumenta i costi di produzione dello stesso videogame

Page 18: Videogame e agile

Agile Planning e Videogame

• Spesso durante la fase di produzione le metodologie Agile vengono abbandonate per tornare alle metodologie waterfall

• Questo procura una perdita di tutti i vantaggi delle metodologie Agili

• La Lean Production permette di usare al meglio le metodologie Agile anche durante la fase di produzione

• Lo sviluppo dei successivi livelli del videogame può essere suddiviso in User Stories

Page 19: Videogame e agile

Agile Planning e Videogame

• Le User Stories più grandi possono essere suddivise in più parti, ad esempio un livello molto grande di un FPS

• La suddivisione delle User Stories permette di pianificare meglio gli Sprint dell’Agile

• Più Sprint possono essere raggruppati in Release che permettono di mostrare agli stakeholder un avanzamento del lavoro

Page 20: Videogame e agile

Agile Planning e Videogame

Page 21: Videogame e agile

Agile Planning e Videogame

• Il lavoro da fare in ogni Sprint può essere suddiviso utilizzando una kanban board

• Kanban rappresenta un flusso di lavoro “pull system” ogni card rappresenta un azione che deve essere svolto.

• Il team utilizza la kanban board per visualizzare tutto il flusso di lavoro che deve essere svolto.

Page 22: Videogame e agile

Agile Planning e Videogame

In basso un esempio di Kanban Board

Page 23: Videogame e agile

Agile Planning e Videogame

• Un Kanban Board permette di rappresentare uno stream di produzione

• Uno dei vantaggi dell’utilizzo di una Kanban Board è quello di permettere un corretto flusso di lavoro evitando quindi tempi morti

• Un altro concetto importante che introduce è quello del Timeboxing

Page 24: Videogame e agile

Agile Planning e Videogame

• Lo scopo del Timeboxing è quello di pianificare lo sviluppo di ogni feature tenendo conto di qualità e costi

• Il Timeboxing non obbliga a produrre una determinata qualità in un determinato tempo ma cerca la miglior qualità possibile in uno specifico tempo

• Bilanciare qualità e costi è compito del product owner

• Il Timeboxing non è preciso ma può variare, ad esempio un livello può richiedere un tempo di sviluppo maggiore rispetto ad un altro

Page 25: Videogame e agile

Agile Planning e Videogame

• Lean introduce due tipi di misure diverse per misurare il tempo di produzione delle attività.

• Uno è il takt time che misura il tempo di produzione che nel caso di videogame è stimata nella fase di pre-produzione

• L’altra è il cycle Time che è il tempo che intercorre tra l’inizio e la fine di un processo di sviluppo

Page 26: Videogame e agile

Agile Planning e Videogame

• Lean cerca di ridurre continuamente sia il tempo di cycle time che di takt time

• Idealmente il tempo cycle time è uguale o inferiore a quello di takt time

• Il livellamento di questi tempi è l’obbiettivo del levelling flow

• Il levelling flow si occupa di migliorare tutti gli asset di produzione per ridurre i tempi

Page 27: Videogame e agile

Agile Planning e Videogame

• L’Agile richiede anche un cambio dei team di sviluppo del videogame

• Vengono introdotte nuove figure che permettono la miglior gestione di tutto il processo Agile.

• Scrum crea le condizioni per la creazione di un grande team attraverso alcuni principi e pratiche

Page 28: Videogame e agile

Agile Planning e Videogame

• Team interdisciplinari abilità i team ad offrire il massimo del valore agli stakeholder o ai clienti

• Autogestione consente ai team di selezione la quantità di lavoro di cui farsi carico ad ogni sprint

• Auto-organizazzione consente ai team di avere un certo grado di responsabilità e autorità decisionale per la selezione dei membri

• Vera leadership abilità la leadership a focalizzarsi sul mentoring e su tutto quanto necessario per far accrescere la cultura

Page 29: Videogame e agile

Agile Planning e Videogame

• Un piccolo team di sviluppo di un videogame è di solito formato da almeno 12 persone

• Un team agile per essere efficiente deve avere una dimensione che dalle 7 alle 9 persone

• Per gestire questa differenze l’Agile si modifica creando gruppi omogenei che lavorano tra di loro

Page 30: Videogame e agile

Agile Planning e Videogame

• Per risolvere le esigenze dell’Agile si possono creare gruppi più piccoli che lavorano in sinergia tra di loro

• Ogni gruppo verrà gestito da un Lead, ad esempio Lead Artist, Lead AI Programmer, Lead Gameplay Programmer

• Ogni Lead avrà il compito di gestire il lavoro di ogni gruppo

Page 31: Videogame e agile

Agile Planning e Videogame

• In particolare ogni Lead dovrà adottare alcune pratiche per permettere il cambiamento richiesto dall’Agile

• Le procedure che ogni Lead adotterà saranno:– Designe and Planning– Resource Allocation– Task management– Review and Promotion– Mentoring

Page 32: Videogame e agile

Agile Planning e Videogame

• Tool Teams è un team misto, Artisti, programmatori, QA, AI, Level Designer, che si occupano di crerare parti specifiche di un videogame

• Pool Team è un team di sviluppo che si occupa di una sola area di sviluppo

• Integration Team un team dedicato all’integrazione delle componenti del videogame

Page 33: Videogame e agile

Agile Planning e Videogame

• La suddivisione dello sviluppo in team crea una nuova procedura dello Scrum

• Ogni team viene gestito come un gruppo Scrum distinto

• Per far collaborare tutti i team viene introdotta una nuova riunione che viene definita “Scrum di Scrum”

Page 34: Videogame e agile

Agile Planning e Videogame

• Lo Scrum di Scrum è una riunione, di solito settimanale a cui partecipano solo gli scrum master di ogni team

• In questa riunione a cui partecipa oltre agli scrum master il product owner si parlerà di quello che hanno fatto i team durante la settimana, cosa dovranno fare e che problematiche sono state incontrate

Page 35: Videogame e agile

Agile Planning e Videogame

• Avendo un numero di team non consoni allo Scrum si può creare un problema di comunicazione

• Per gestire questa problematica è possibile istituire una “communities of practice”

• Questo artefatto ha lo scopo di condividere tra i team le problematiche per evitare gli errori comuni

Page 36: Videogame e agile

Agile Planning e QA

• Uno dei ruoli più importanti del Quality Assurance, QA, è quello di parlare con tutti i team

• Il QA ha lo scopo di garantire la qualità del videogame rispettando gli standard qualitativi aziendali

• Il QA può intervenire sul processo richiedendo un miglioramento della qualità generale del videogame

Page 37: Videogame e agile

Agile Planning e QA

• La QA nella gestione waterfall è gestita alla fine di ogni progetto

• Questo porta ad un innalzamento dei costi nel caso in cui la qualità prodotta non sia quella effettivamente richiesta

• L’Agile cambia radicalmente il modo in cui il QA partecipa al progetto

Page 38: Videogame e agile

Agile Planning e QA

• Nell’Agile il testing del prodotto e il controllo qualitativo fa parte del comune ciclo di vita di ogni sprint

• Il QA può controllare in ogni momento la qualità del prodotto permettendo quindi di adottare delle azioni correttive al product owner

• Questo permette di avere prodotti di maggiore qualità rispettando però i costi di progetto previsti

Page 39: Videogame e agile

Conclusione

• L’Agile viene di solito adottato solo nelle prime fasi venendo abbondato nella fase di produzione

• L’utilizzo dell’Agile anche nella fase di produzione permette di migliorare l’intero ciclo di sviluppo evitando quelle che possono essere delle “kill-gate feature”

• L’Agile migliora inoltre il rapporto con la QA introducendo il controllo di Qualità in tutte le fasi di sviluppo

• L’Agile permette inoltre di migliorare la comunicazione tra i gruppi permettendo quindi di creare videogame di migliore qualità

Page 40: Videogame e agile

Fine