Drupal Day 2011 - Organizza il tuo lavoro
-
Upload
drupalday -
Category
Technology
-
view
1.437 -
download
0
Transcript of Drupal Day 2011 - Organizza il tuo lavoro
Organizza il lavoro
Marco Vito Moscaritolo
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 inDRUPAL
Ok, partiamo dall'inizio...
Drupal un CMS(con i superpoteri, ma sempre come CMS nasce)
Ecco, magari questo nonglie lo lascerei fare...
Facciamoci aiutare, ecco a voi...
Il cliente(d'ora in poi Mr. X)
Il PM
Lo sviluppatore
Il cliente
Il PM
Ho un idea, vorrei...poi anche......inoltre......e non si pu fare a meno di...
...e mi serve per settimana prossima.
OMG!
Ma almeno hale idee chiare?
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 PM
Lo sviluppatore
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..
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)
Il PM
Lo sviluppatore
Mr. X vorrebbe...Con Drupal si pi fare usando il modulo...Poi anche...Questa cosa, invece, va sviluppata ad-hoc...
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
Lo sviluppatore
So cosa fare, in che ordine e come procedere!
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?)
Lo sviluppatore
Clicco e sono pronto a creare nuove funzionalit
Clicco e posso andarmene a casa tranquillo
Clicco e rilascio!
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)
Lo sviluppatore
/** * Implementation of hook_node_save(). */ function miomodulo_node_save(...)
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 PM
Il progetto andato benissimo....vorrei aggiungere anche...
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