DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

79
DRUPAL AGILE DRUPAL ED IL MERCATO ENTERPRISE a.k.a “come non farsi male facendo parcour in carriola”

Transcript of DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Page 1: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

DRUPAL AGILEDRUPAL ED IL MERCATO ENTERPRISE

a.k.a “come non farsi male facendo parcour in carriola”

Page 2: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Marco Giacomassifondatore e COO di Twinbit

@marcogiaco

photographer, climber, wanderer

www.twinbit.it

Paolo Pustorino fondatore e CEO di Agavee GmbH

@stickgrinder

drummer, gamer, father

www.agavee.com

Page 3: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Drupal va verso l’enterpriseSo what?

Page 4: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Enterprise in che senso?

Page 5: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Management multilivelloe divisione delle responsabilità

Page 6: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Progetti di lungo raggionecessità di manutenzione ed evoluzione

Page 7: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Team ibridifornitore e cliente come unico gruppo di lavoro

Page 8: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Integrazioni con sistemi legacy e di terze parti

Page 9: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Poca elasticità sul piano finanziario e temporale

e spesso anche dello scope

Page 10: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Constraint legali e contrattuali

deathlines

:)

Page 11: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Have you ever heard of...Raise your hands if so

Page 12: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Continuous integration?

Page 13: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Scrum?

Page 14: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Drupal in contesto enterprise?

o con team di 5+ persone

Page 15: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Case studyla piattaforma ELITE di Borsa Italiana

Page 16: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile
Page 17: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile
Page 18: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

EliteBorsa Italiana

5 dev 8 dev 8 dev1 pm

11 dev1 pm

2013jul

2013dec

2014jan

2014may

Drupal 7CMSDocument & task managementSocialGerarchie multilivello

Page 19: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

ScrumMaster

ProductOwner

TeamDevsPM

TrackerCliente

TrackerTeam

Page 20: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

“Fare o non fare. Non esiste tentare”Maestro Yoda

a.k.a. “Come abbiamo affrontato le sfide tecnologiche”

Page 21: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Drupal non è pensato per la CI

Page 22: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Configurazione nel database

[ problema ]

Page 23: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Il nostro build stackmake file, installation profile, drush, features, phing

[ soluzione ]

Configurazione nel database

Page 24: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Import/export di contenuti [ problema ]

Page 25: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Migrate, hook_update_Ne tanto, ma tanto, amore

[ soluzione ]

Import/export di contenuti

Page 26: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

No mocking, no partyla mancanza di Acceptance Testing

[ problema ]

Page 27: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Behat e qualche esoterismoma l’implementazione è onerosa

ed i tempi di esecuzione sono molto lunghi

[ soluzione ]

La mancanza di Acceptance Testing

Page 28: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

NienteContinuous Deploy

In mancanza di accesso ai server di produzione

Page 29: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Niente upgrade path tools

Page 30: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Forte coupling tra business data e application data

Page 31: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

“Amo le scadenze. Adoro il sibilo che fanno quando ti

passano a fianco.”Douglas Adams

a.k.a. “Cosa poteva andare meglio”

Page 32: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Deploy Hell

Page 33: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

La not-so-continuous integration

Page 34: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

La gestione dell’affanno

Page 35: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

The Gatekeeper Quest

Page 36: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Le trappole della back-integration

Page 37: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

La scarsità di competenze

Page 38: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

“Il successo è una conseguenza, non un obiettivo.”

Gustav Falaubert

a.k.a. “Dove Drupal ci ha dato una gran mano”

Page 39: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Drupal è statod’aiuto perchè...

Page 40: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

È l’unico CMS che si fa trattare come un

framework

Page 41: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Core e principali moduli contrib robusti e affidabili

Page 42: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Propone una culturadoing things the Drupal way

Page 43: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Conoscenze ed esperienze da una grande community

Page 44: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Non c’è limite alla customizzazioneanche quando costosa, è possibile

Page 45: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Sicurezzanessuno dica “drupalgeddon”!

:)

Page 46: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

“Imparare significa scoprire quello che già sai.”

Richard Bach

Page 47: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

L’affanno porta affanno

Page 48: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Sollevare i problemi! e prendere il tempo di risolverli, è la strada migliore

Page 49: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Non rinunciate alla retrospettiva

se proprio dovete rinunciare a qualcosa

Page 50: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

L’ordine sarà la vostra unica salvezza... se proprio dovete rinunciare alla retrospettiva

Page 51: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

How to pimp your Drupal

Page 52: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Abbiamo l’integrationnon troppo continuous, ma c’è

Page 53: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Chi ha bisogno di un database?

:)

Page 54: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Flusso di controllosia dell’integrazione che dei rilasci

Page 55: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Integrazione tra issue tracker

e versioning tools

Page 56: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Enforcing dell’ordinecon git hooks, PHPCS e peer review

Page 57: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Ma c’è ancora aria sotto l’acceleratore!a.k.a. “Aspettando Drupal 8”

Page 58: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Un task runner più potentelogica più potente, parallel tasks e job queue

Page 59: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Automatizzazione dei rilasci

operazioni più atomiche, status reporting, speedy packaging

Page 60: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Migrazione dei contenuti più efficiente e robusta

gli uuid non sono ancora un’opzione matura

Page 61: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Un branching model più legato allo scope

delle storie

Page 62: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Più efficienza nei flussi di informazione

Page 63: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Tracker over e-mailmeno overhead nelle informazioni

Page 64: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Dockerla nostra febbrile fantasia notturna

Page 65: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Drupal 8 to the rescue

Page 66: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

OOP to the coretest, isolamento e interoperabilità

Page 67: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Configuration exportdeploy e versioning della configurazione

“bye bye Feature?”

Page 68: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Twigun vero template engine, finalmente!

:)

Page 69: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

RESTful servicestestare la business logic in isolamento,

sviluppo mobile nativo e in-browser app

Page 70: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Drupal sta convergendo verso gli industries

standard

Page 71: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

“They say Drupal 8 is really weird!”

Senior Drupal developers

“They say Drupal 8 is finally not weird!”

Rest of the world

Page 72: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

PHP Standards Recommendation

Interoperabilità e riusabilità

Page 73: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Più competenze in ambito Enterprise

Page 74: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Delega a non-drupalistiaspetti dell’applicazione

caching, logging, REST clients, etc

Page 75: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

DOMANDE?

Page 76: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

Quindi, verdetto?

Page 77: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

siii puooò FARE!

Page 78: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

MARCHETTE

Page 79: DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile

GRAZIE!