SlideShare a Scribd company logo
Organizza il lavoro Marco Vito Moscaritolo [email_address]
Mettiamo SUBITO in chiaro le cose... ...non parleremo di  Agile  vs  Waterfall ...non parleremo di come gestire i costi del progetto ...tutti, TUTTI,  TUTTI  potrebbero sbagliare (ed io non son da meno) ...non parleremo di come gestire un progetto  qualsiasi ...ok, quindi? parleremo di? Come gestire un progetto in DRUPAL
Ok, partiamo dall'inizio...   Drupal è un CMS (con i superpoteri, ma sempre come CMS nasce) Ecco, magari questo non glie lo lascerei fare...
Facciamoci aiutare, ecco a voi... Il cliente (d'ora in poi Mr. X) Il “PM” Lo sviluppatore
Il cliente Ho un idea, vorrei… ...poi anche... ...inoltre... ...e non si può fare a meno di... ...e mi serve per settimana prossima. OMG! Ma almeno  ha le idee chiare? Il “PM”
Raccogliamo le informazioni   Impariamo la terminologia dei clienti, non sono i clienti a dover imparare la nostra  #ddroma11 Capiamo lo scopo del progetto (aiutiamo Mr. X a capire cosa vuole) Organizziamo le informazioni SCRIVENDOLE (su web, mail, carta, … ovunque ma scriviamo!)
Il progetto riguarda... ..e servirebbe avere.... In Drupal questo è un nodo... ...questo una tassonomia... ...quest'altro sono invece utenti...  su quest'ultimo punto, invece, ho qualche dubbio.. Il PM Lo sviluppatore
Identifichiamo le strutture dati   Ragioniamo indipendentemente dall'uso, ma su cosa le informazioni sono/rappresentano (diamo importanza all'architettra dell'informazione del prodotto) Identifichiamo le strutture dati Drupal che le rappresentano (usiamo ciò che c'è a disposizione, quando possibile) Confrontarsi (una scelta sbagliata a questa fase può diventare un grande problema)
Mr. X vorrebbe... Con  Drupal  si più fare usando il modulo... Poi anche... Questa cosa, invece, va sviluppata ad-hoc... Il PM Lo sviluppatore
Ragioniamo sui processi... Identificare le funzionalità di uso del sistema (azioni, procedure, automatismi.. e molto altro! :) ) Pensiamo ai moduli per implementarli in Drupal (dai classici rules + views + context.. fino ai moduli un po' più “sperimentali” come plupload+mupload ancora in sandbox) Testare e sperimentare (in caso di incertezze, dubbi.. o anche solo per valutare alternative, provare!) Confrontarsi (anche qui l'importanza non è da meno)
“ Pappardella teorica” finita, ma nella  realtà ? Come  operiamo ? Cosa  usiamo ?
Le tre leggi della  termodinamica  lavoro in Drupal Suddividiamo Automatizziamo Implementiamo
So cosa fare, in che ordine e come procedere! Lo sviluppatore
Suddividiamo Separare le funzionalità, rendendole “isolate” (disaccoppiamento di elementi) Definire le dipendenze  (A dipende da B, C dipende da A e B, …) Definire l'importanza e l'ordine di realizzazione (solo io sento puzza di gantt?)
“ Clicco” e sono pronto a creare nuove funzionalità “ Clicco” e posso andarmene a casa tranquillo “ Clicco” e rilascio! Lo sviluppatore
Automatizziamo   Rendiamo le procedure ripetitive  automatiche (non vogliamo fare “lavori da scimmia”) Usiamo gli strumenti a disposizione, non reinventiamo la ruota (jenkins [ http://jenkins-ci.org/ ], phing [ http://phing.info/ ], drush [ http://drupal.org/project/drush ], drush_make [ http://drupal.org/project/drush_make ], features [ http://drupal.org/project/features ], giusto per citarne qualcuno) Si da  per scontato  l'uso di sistemi di versioning (CVS, git, svn, bazaar, mercury, poco importa quale.. basta usarli!) Testiamo il codice, le integrazioni e le interazioni (qui si apre un mondo che esula da questa sessione)
/** * Implementation of hook_node_save(). */ function miomodulo_node_save(...) Lo sviluppatore
Implementiamo Usiamo quello che c'è già pronto (non reinventiamo la ruota ogni volta…) Possiamo ESTENDERE molti dei moduli già presenti (non ha senso sviluppare da 0 tutto perché manca una funzionalità, contribuiamo al progetto originario o creiamo moduli estensione) Ricordiamo che se scriviamo codice poi dobbiamo MANTENERLO (no, non usate come scusa i contratti di manutenzione...)
Il cliente Il progetto è andato benissimo.. ..vorrei aggiungere anche... Il PM
Manteniamo I progetti vanno poi mantenuti (operazioni automatiche ci aiutano anche dopo mesi che non mettiamo mano ad un progetto, loro non “si dimenticano”) Documentiamo (progetto fantastico, ma tra 2 mesi ci chiedono l'aggiunta dell'#inventatiqualcosa .. ed ora come lo faccio?) Aggiornamenti del core, dei moduli... (Disabilitando il sistema di notifica degli update non si risolvono i problemi ;) )
Tool di gestione “progetto”   Redmine [ http://www.redmine.org ]
Definire le tipologie di attività (nuova feature, test, bug, ...) Definire il workflow delle attività (nuova, in lavorazione, in approvazione, chiusa) Definire (internamente ed esternamente) il significato di priorità
Sistemi di automatizzazione   Jenkins con phing
“ Se nn conosci il #web,  non gestire il progetto. Sarà un disastro a catena.” Pillole da twitter: Lasciatemi spiegare...
Marco Vito Moscaritolo http://agavee.com http://mavimo.org @mavimo [email_address]
 

More Related Content

ODP
Organizza il lavoro
Marco Vito Moscaritolo
 
PDF
Non so assolutmente niente di informatica o web ma devo comunque creare un pr...
Gabriele Guizzardi
 
PDF
CMDBUILD: Collaboration Suite?
CMDBuild org
 
PDF
Un approccio integrato e open al service management: l'esperienza e le prospe...
CMDBuild org
 
KEY
L'analisi e le scelte nello sviluppo di un plugin
federicobernardin
 
ODP
BioDec LinuxDay2012 Erlug
BioDec
 
PDF
DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile
DrupalDay
 
Organizza il lavoro
Marco Vito Moscaritolo
 
Non so assolutmente niente di informatica o web ma devo comunque creare un pr...
Gabriele Guizzardi
 
CMDBUILD: Collaboration Suite?
CMDBuild org
 
Un approccio integrato e open al service management: l'esperienza e le prospe...
CMDBuild org
 
L'analisi e le scelte nello sviluppo di un plugin
federicobernardin
 
BioDec LinuxDay2012 Erlug
BioDec
 
DDAY2014 - Agile Drupal: un caso reale di Drupal utilizzato nel mondo Agile
DrupalDay
 

Similar to Drupal Day 2011 - Organizza il tuo lavoro (20)

PDF
Drupal Agile: DRUPAL ED IL MERCATO ENTERPRISE
Twinbit
 
PDF
[drupalday2017] - Drupal 4 Stakeholders
DrupalDay
 
PPTX
Drupal 4 stakeholder
bmeme
 
PPTX
Introduzione a Drupal 7 - 14/03/2013
Alessandro del Gobbo
 
PDF
Il project management per il web
Simone Moriconi
 
PPTX
Introduzione a Drupal e componenti del core - SIDCamp 2015
Kelyon Srl
 
PDF
SMAU Milano 2015
Paolo Dadda
 
PPT
Agile project management 1 giornata - board game - v2
Giulio Roggero
 
PDF
Drupal
NaLUG
 
PPT
Agile Project Management - the Board Game workshop
Giulio Roggero
 
PPT
Come creare un progetto web
Riccardo Mares
 
PDF
Introduzione a Drupal - Versione Italiana
Giovanni Buffa
 
PPT
Project Management Corso Base Saggio
FR Projects
 
PPTX
Alm pills - Sessione community tour Dot Net Umbria 2011
Gian Maria Ricci
 
ODP
Slide Wallabiez Agile Day 2007
Manuela Munaretto
 
PDF
Sviluppo Agile secondo l'approccio SCRUM
Matteo Papadopoulos
 
PDF
Drupal Day 2011 - Drupal: stand alone VS integrazione con altri software
DrupalDay
 
PDF
Presentazione corso Project Management
roberta osti
 
PDF
Drupal Lessons by nois3lab
nois3lab
 
PDF
Drupal come framework di sviluppo
GrUSP
 
Drupal Agile: DRUPAL ED IL MERCATO ENTERPRISE
Twinbit
 
[drupalday2017] - Drupal 4 Stakeholders
DrupalDay
 
Drupal 4 stakeholder
bmeme
 
Introduzione a Drupal 7 - 14/03/2013
Alessandro del Gobbo
 
Il project management per il web
Simone Moriconi
 
Introduzione a Drupal e componenti del core - SIDCamp 2015
Kelyon Srl
 
SMAU Milano 2015
Paolo Dadda
 
Agile project management 1 giornata - board game - v2
Giulio Roggero
 
Drupal
NaLUG
 
Agile Project Management - the Board Game workshop
Giulio Roggero
 
Come creare un progetto web
Riccardo Mares
 
Introduzione a Drupal - Versione Italiana
Giovanni Buffa
 
Project Management Corso Base Saggio
FR Projects
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Gian Maria Ricci
 
Slide Wallabiez Agile Day 2007
Manuela Munaretto
 
Sviluppo Agile secondo l'approccio SCRUM
Matteo Papadopoulos
 
Drupal Day 2011 - Drupal: stand alone VS integrazione con altri software
DrupalDay
 
Presentazione corso Project Management
roberta osti
 
Drupal Lessons by nois3lab
nois3lab
 
Drupal come framework di sviluppo
GrUSP
 
Ad

More from DrupalDay (20)

PDF
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
DrupalDay
 
PDF
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
DrupalDay
 
PDF
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
DrupalDay
 
PDF
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
DrupalDay
 
PDF
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
DrupalDay
 
PDF
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
DrupalDay
 
PDF
[drupalday2017] - Behat per Drupal: test automatici e molto di più
DrupalDay
 
PDF
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di Sapienza
DrupalDay
 
PDF
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
DrupalDay
 
PDF
[drupalday2017] - Quando l’informazione è un servizio
DrupalDay
 
PDF
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8
DrupalDay
 
PDF
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
DrupalDay
 
PDF
[drupalday2017] - Async navigation with a lightweight ES6 framework
DrupalDay
 
PDF
[drupalday2017] - Devel - D8 release party
DrupalDay
 
PDF
[drupalday2017] - Speed-up your Drupal instance!
DrupalDay
 
PDF
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
 
PDF
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
 
PDF
[drupalday2017] - REST in pieces
DrupalDay
 
PDF
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
DrupalDay
 
PDF
Your Entity, Your Code
DrupalDay
 
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
DrupalDay
 
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
DrupalDay
 
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
DrupalDay
 
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
DrupalDay
 
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
DrupalDay
 
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
DrupalDay
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
DrupalDay
 
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di Sapienza
DrupalDay
 
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
DrupalDay
 
[drupalday2017] - Quando l’informazione è un servizio
DrupalDay
 
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8
DrupalDay
 
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
DrupalDay
 
[drupalday2017] - Async navigation with a lightweight ES6 framework
DrupalDay
 
[drupalday2017] - Devel - D8 release party
DrupalDay
 
[drupalday2017] - Speed-up your Drupal instance!
DrupalDay
 
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
 
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
 
[drupalday2017] - REST in pieces
DrupalDay
 
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
DrupalDay
 
Your Entity, Your Code
DrupalDay
 
Ad

Drupal Day 2011 - Organizza il tuo lavoro

  • 1. Organizza il lavoro Marco Vito Moscaritolo [email_address]
  • 2. Mettiamo SUBITO in chiaro le cose... ...non parleremo di Agile vs Waterfall ...non parleremo di come gestire i costi del progetto ...tutti, TUTTI, TUTTI potrebbero sbagliare (ed io non son da meno) ...non parleremo di come gestire un progetto qualsiasi ...ok, quindi? parleremo di? Come gestire un progetto in DRUPAL
  • 3. Ok, partiamo dall'inizio... Drupal è un CMS (con i superpoteri, ma sempre come CMS nasce) Ecco, magari questo non glie lo lascerei fare...
  • 4. Facciamoci aiutare, ecco a voi... Il cliente (d'ora in poi Mr. X) Il “PM” Lo sviluppatore
  • 5. Il cliente Ho un idea, vorrei… ...poi anche... ...inoltre... ...e non si può fare a meno di... ...e mi serve per settimana prossima. OMG! Ma almeno ha le idee chiare? Il “PM”
  • 6. Raccogliamo le informazioni Impariamo la terminologia dei clienti, non sono i clienti a dover imparare la nostra #ddroma11 Capiamo lo scopo del progetto (aiutiamo Mr. X a capire cosa vuole) Organizziamo le informazioni SCRIVENDOLE (su web, mail, carta, … ovunque ma scriviamo!)
  • 7. Il progetto riguarda... ..e servirebbe avere.... In Drupal questo è un nodo... ...questo una tassonomia... ...quest'altro sono invece utenti... su quest'ultimo punto, invece, ho qualche dubbio.. Il PM Lo sviluppatore
  • 8. Identifichiamo le strutture dati Ragioniamo indipendentemente dall'uso, ma su cosa le informazioni sono/rappresentano (diamo importanza all'architettra dell'informazione del prodotto) Identifichiamo le strutture dati Drupal che le rappresentano (usiamo ciò che c'è a disposizione, quando possibile) Confrontarsi (una scelta sbagliata a questa fase può diventare un grande problema)
  • 9. Mr. X vorrebbe... Con Drupal si più fare usando il modulo... Poi anche... Questa cosa, invece, va sviluppata ad-hoc... Il PM Lo sviluppatore
  • 10. Ragioniamo sui processi... Identificare le funzionalità di uso del sistema (azioni, procedure, automatismi.. e molto altro! :) ) Pensiamo ai moduli per implementarli in Drupal (dai classici rules + views + context.. fino ai moduli un po' più “sperimentali” come plupload+mupload ancora in sandbox) Testare e sperimentare (in caso di incertezze, dubbi.. o anche solo per valutare alternative, provare!) Confrontarsi (anche qui l'importanza non è da meno)
  • 11. “ Pappardella teorica” finita, ma nella realtà ? Come operiamo ? Cosa usiamo ?
  • 12. Le tre leggi della termodinamica lavoro in Drupal Suddividiamo Automatizziamo Implementiamo
  • 13. So cosa fare, in che ordine e come procedere! Lo sviluppatore
  • 14. Suddividiamo Separare le funzionalità, rendendole “isolate” (disaccoppiamento di elementi) Definire le dipendenze (A dipende da B, C dipende da A e B, …) Definire l'importanza e l'ordine di realizzazione (solo io sento puzza di gantt?)
  • 15. “ Clicco” e sono pronto a creare nuove funzionalità “ Clicco” e posso andarmene a casa tranquillo “ Clicco” e rilascio! Lo sviluppatore
  • 16. Automatizziamo Rendiamo le procedure ripetitive automatiche (non vogliamo fare “lavori da scimmia”) Usiamo gli strumenti a disposizione, non reinventiamo la ruota (jenkins [ http://jenkins-ci.org/ ], phing [ http://phing.info/ ], drush [ http://drupal.org/project/drush ], drush_make [ http://drupal.org/project/drush_make ], features [ http://drupal.org/project/features ], giusto per citarne qualcuno) Si da per scontato l'uso di sistemi di versioning (CVS, git, svn, bazaar, mercury, poco importa quale.. basta usarli!) Testiamo il codice, le integrazioni e le interazioni (qui si apre un mondo che esula da questa sessione)
  • 17. /** * Implementation of hook_node_save(). */ function miomodulo_node_save(...) Lo sviluppatore
  • 18. Implementiamo Usiamo quello che c'è già pronto (non reinventiamo la ruota ogni volta…) Possiamo ESTENDERE molti dei moduli già presenti (non ha senso sviluppare da 0 tutto perché manca una funzionalità, contribuiamo al progetto originario o creiamo moduli estensione) Ricordiamo che se scriviamo codice poi dobbiamo MANTENERLO (no, non usate come scusa i contratti di manutenzione...)
  • 19. Il cliente Il progetto è andato benissimo.. ..vorrei aggiungere anche... Il PM
  • 20. Manteniamo I progetti vanno poi mantenuti (operazioni automatiche ci aiutano anche dopo mesi che non mettiamo mano ad un progetto, loro non “si dimenticano”) Documentiamo (progetto fantastico, ma tra 2 mesi ci chiedono l'aggiunta dell'#inventatiqualcosa .. ed ora come lo faccio?) Aggiornamenti del core, dei moduli... (Disabilitando il sistema di notifica degli update non si risolvono i problemi ;) )
  • 21. Tool di gestione “progetto” Redmine [ http://www.redmine.org ]
  • 22. Definire le tipologie di attività (nuova feature, test, bug, ...) Definire il workflow delle attività (nuova, in lavorazione, in approvazione, chiusa) Definire (internamente ed esternamente) il significato di priorità
  • 23. Sistemi di automatizzazione Jenkins con phing
  • 24. “ Se nn conosci il #web, non gestire il progetto. Sarà un disastro a catena.” Pillole da twitter: Lasciatemi spiegare...
  • 25. Marco Vito Moscaritolo http://agavee.com http://mavimo.org @mavimo [email_address]
  • 26.