drupal day 2011 - organizza il tuo lavoro

Download Drupal Day 2011 - Organizza il tuo lavoro

If you can't read please download the document

Upload: drupalday

Post on 16-Apr-2017

1.437 views

Category:

Technology


0 download

TRANSCRIPT

Organizza il lavoro

Marco Vito Moscaritolo

[email protected]

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

[email protected]