Agile web development - Forum IISF - 2016

Post on 07-Feb-2017

54 views 5 download

Transcript of Agile web development - Forum IISF - 2016

 LUCIANO AMODIO

16 NOVEMBRE 2016#FORUMIISL

AGILE WEB DEVELOPMENT

StrategiaAziendale

Marketing

Artista Visionario

CHI SONOFilosofo

per HobbyConsulente

CloudComputing

DA DOVE VENGO PIETRELCINA

DA DOVE VENGO BARCELONA

DA DOVE VENGO DUBAI

COSA SIGNIFICASVILUPPO AGILE?

AGILITÀ1. Capacità di cambiare direzione facilmente.

2. In fisica e nella tecnica: capacità di un sistema di variarefacilmente uno o più dei suoi parametri operativi.

IL MANIFESTO PER LO SVILUPPO SOFTWARE AGILE

PRECURSORI AGILI1992 - Crystal Methods: consegne frequenti, miglioramento riflessivo,comunicazioni osmotiche1993 - Refactoring: Bill Opdyke1994 - Dynamic Systems Development Method (DSDM): Consorzio di best practices1995 - Scrum: Jeff Sutherland & Ken Schwaber1997 - Feature Driven Development: Jeff De Luca1999

The pragmatic programmerXP: Kent Beck (User Stories, Release Planning, Continuous integration)Adaptive So�ware Development (ASD)

2002TDD: Kent BeckPlanning PokerLean So�ware Development: Mary and Tom Poppendieck

I 4 DOGMI DEL MANIFESTO AGILE1. Gli individui e le interazioni più che i processi e gli strumenti2. Il so�ware funzionante più che la documentazione esaustiva3. La collaborazione col cliente più che la negoziazione dei contratti4. Rispondere al cambiamento più che seguire un piano

I 12 PRINCIPI AGILE1. Soddisfare il cliente con continue consegne di so�ware di valore2. Accogliere il cambio di requisiti per il vantaggio del progetto3. Consegnare so�ware funzionante frequentemente4. Affiancare Business e Sviluppo per la durata dei lavori5. Costruire progetti attorno a persone motivate, offrendo supporto e fiducia6. Conversare faccia a faccia per ottimizzare la comunicazione nel team7. Il so�ware funzionante e’ la prima misura del progresso8. Sviluppo sostenibile: Committente, Sviluppatori, Utenti9. L’attenzione costante alle eccellenze tecniche e ad un buon design aumentano l’agilita’

10. La semplicità: l’arte del non lavorare11. La migliore architettura, design e requisiti emergono da team auto organizzati12. Riflessioni regolari per correggere il tiro

LE METODOLOGIELEAN

SCRUM XP

LEAN

LEANPensa in grande

Agisci nel piccolo

Fallisci rapidamente

Impara continuamente

LEANEliminare gli sprechi

Amplificare l’apprendimento

Decidere il più tardi possibile

Consegnare il più velocemente possibile

Integrità nella costruzione

Vedere il tutto

SCRUM?

SCRUMempirismo con sprint

EXTREME PROGRAMMING (XP)

EXTREME PROGRAMMING (XP)I 12 PRINCIPI

Feedback1. Pair Programming2. Planning Game3. Test Driven4. Whole TeamProcesso continuo5. Continuous Integration6. Refactoring7. Small ReleasesConoscenza condivisa8. Coding Standards9. Collective Ownership

10. Simple design11. System metaphor

Benessere dei Programmatori12. Sustainable Pace

EXTREME PROGRAMMING (XP)Linee Guida

Comunicazione (gerarchia piatta)Semplicità (KISS)Verifica (Test)Coraggio (Fail early)

EXTREME PROGRAMMING (XP)Fasi Progetto

PianificazioneUser StoriesSmall Release PlanningProject VelocityLoad Factor

ProgettazioneMetaforeLazy ProgrammerSpike solutionsRefactoring

SviluppoFeedbackStandardsUnit Test FirstPair ProgrammingCode Ownership

Collaudo (Automated Tests)

STRUMENTI UPSTREAMProduct Owner / Scrum MasterSmall iterations (2-4 weeks)User Story Based RequirementsKanbanBurndown/up chartsDaily Scrum

USER STORYCome [tipo di utente]

Voglio [ottenere un obiettivo] In modo da [avere un valore]

USER STORYCome utente

Voglio registrarmi alla news letter In modo da rimanere aggiornato

KANBANesplicitare lo stato dei compiti che si muovno verso destra, work in progress limit

KANBAN

BRUNDOWN

STRUMENTI DOWNSTREAMCross functional teamContinuous IntegrationTest driven developmentData driven development

TDD

TIPOLOGIE DI TESTSManualeUnitRegressionFunctionalUser AcceptanceExploratoryA/B TestingMock & stub

COME DIVENTARE AGILI?

CREARE CULTURA1) Gli individui più dei processi.

Cosa pensa il vostro Team dell'Agile?

2) So�ware funzionante più della documentazione. Test, test e ancora test.

3) La collaborazione col cliente Il Management è il primo cliente: Delega e Controllo.

CREARE IL TEAM (HR AGILE)Reclutamento e selezione: Social branding e communityPerformance: dal basso, valutazione mensileTraining: personalizzato sul campoCarriera: reticolare e a tempo breve

IL CANDIDATO AGILE (NON FRAGILE)

Risolve i problemi invece di discuterliEsce dall'isolamento lavorando in gruppoÈ creativo e appassionato non una macchina esecutriceAscolta utenti e clienti e non il proprio ego

ANALIZZARE LA SITUAZIONEArchitettura Monolitica vs MicroserviziApi, Rest, Open DataMulti devices (mobile first)Refactoring del codice Legacy

COMINCIARE CON UN PROGETTO PILOTASufficientemente ComplessoDurata contenutaRilevante per gli stakeholdersChiarezza dei ruoli (PO, SM, Team)

IL PILOTABacklog & Sprint PlanningDaily ScrumBurndownSprint DemoRetrospectiveIterate

TOOLS

PROBLEMI AGILIPIANIFICAZIONE

Scarsa pianificazioneTroppa pianificazioneIterazioni troppo cariche di coseStime inefficaciAggiungere storie alle iterazioni in atto

PROBLEMI AGILIRUOLI E TEAM

Resistenza al cambio di culturaProduct Owner indifferente o assenteScrum master sviluppatoreProblem solving nei daily scrumTeam non allenatoTeam non Cross FunctionalMancanza di fiducia/libertà verso il teamMancanza di focus nel team

PROBLEMI AGILITECNOLOGIE

Mancanza di test automaticiAccumulo di debiti tecniciMancanza di ascolto del feedback degli utenti Mancanza di Demo e Retrospettive

THE END

CONTATTI

adamquadmon@gmail.com

facebook.com/luciano.amodio

linkedin.com/in/adamquadmon