Php,Javascript,Mysql

All’inizio del 2012 ho iniziato a fare l’analisi per il progetto di un Task Manager che comprendesse tutti gli aspetti legati alle lavorazioni all’interno di uno studio di animazione. Bisognava modellare il modo di lavorare all’interno dello studio, con tutte le sue regole e le sue eccezioni. Quando poi ti rendi conto che le eccezioni sono più delle regole, l’impresa diventa complessa. Soprattutto se questo strumento va ad inserirsi nel modo di lavorare di un individuo.

Tralascerò in questa descrizione tutti gli aspetti che riguardano le dinamiche interpersonali che intervengono quando si vuole cambiare il modo di lavorare in un azienda. Purtroppo la mediazione culturale all’interno dell’ambiente aziendale non erano di mia competenza, ma alla fine ho imparato  che, bisogna sempre accompagnare un nuovo strumento di lavoro  con un adeguato supporto comunicativo all’interno del micro-cosmo aziendale. Perché nessuno strumento potrà mai accontentare tutti, vedi Shotgun.

Venivo da un esperienza analoga, fatta da un azienda molto più piccola in cui avevo, fatto un piccolo manager con PHP utilizzando AJAX (Asynchronous JavaScript and XML), in questa azienda curavo anche l’aspetto sistemistico, poi capii che è l’aspetto determinante se si vuole che il software funzioni.

Quando  l’AD di questa nuova azienda mi ha prospettato il progetto che voleva realizzare, mi resi conto che non potevo affrontarlo da solo, si trattava di qualcosa che coinvolgeva tutte le 100 persone che facevano parte dell’azienda. Pur avendo una conoscenza del settore, vi avevo lavorato per 8 anni, mi mancavano delle conoscenze tecniche nei vari aspetti del progetto, quali per esempio, quelle da DB Admin. Formai una specie di team dopo una selezione. Devo dire che fui bravo a scegliere le persone dal punto di vista tecnico, non altrettanto da quello umano. Ma anche questa è un’altra storia.

Comunque il Taskmanager ha visto la luce dopo tre mesi, ma ovviamente pur avendo modellato il DB sulla base di interviste, abbiamo dovuto cambiare delle  logiche in corso d’opera, soprattutto perché usciva sempre un esigenza produttiva non menzionata.

In estrema sintesi questo è un breve estratto della documentazione di 84 pagine:

Task Manager.

Il software Task Manager è un gestore di task inserito in una pipeline di produzione di uno studio di computer grafica.

Il lavoro in sinergia con la Pipeline di produzione lo classifica anche come un DAM (Digital Asset Manager).

Il principale attore di questo software è il TASK, che è una struttura di dati che contiene dentro di se il concetto di lavorazione legato al suo ciclo di vita.

Nel Task viene misurata la lavorazione dal suo concepimento, passando per la sua assegnazione, per la sua attuazione e per finire con la sua approvazione. Un Task può essere riaperto in qualsiasi momento.

Questa struttura può essere applicata a qualsiasi tipo di lavorazione, infatti il software lavora anche con tipologie di lavorazioni diverse da quelle dell’animazione digitale, tuttavia, c’è la possibilità di specificare se ci troviamo in un progetto normale oppure in uno di Computer Grafica. Se il progetto è di questo ultimo tipo, la lavorazione è divisa in due macro-aree:

  1. Main Content: Area di creazione e sviluppo di Asset, (es: modelli texture ecc.)
  2. Shot Content: Area di creazione e sviluppo di entità della timeline (es: episodio, sequenza, scena).

All’interno di queste due aree la singola entità viene tracciata in tutto il suo sviluppo lavorativo, così da poter capire il suo stato in qualsiasi momento.

Per esempio un modello di un character (Asset) può essere seguito attraverso lo sviluppo dei suoi tasks, quali model sheet, modellazione, rig e textures. Vedi figura sotto:

StatusTasks

Caratteristiche tecniche.

Il TM è una web application, scritta in PHP5, utilizza Javascript e il framework JQUERY.

Il Database utilizzato è MySQL, il server utilizzato è Apache 2.0, attualmente su una distro Fedora 19.

Principi di Funzionamento: Creazione Struttura.

Quando si presenta un’esigenza per un contenuto aziendale, tramite il modulo Administator viene creato un PROGETTO all’interno della struttura del TM.

Definizione di Progetto nel TM.

Il TM lavora sulla base di un PROGETTO, che può essere considerato una macrostruttura DATI, sotto cui classificare e definire eventi temporali legati allo sviluppo di una attività e Asset aziendali.

Per Asset aziendali si intende tutto ciò che viene creato in azienda e di cui l’azienda ne ha la proprietà e i diritti di sfruttamento. Quindi sostanzialmente tutti i files al di la’ se essi siano documenti, disegni o altro.

 


Alla fine di questa esperienza ho acquisito le seguenti conoscenze:

PHP 5.3 programmazione ad oggetti, Javascript con framework JQuery, JSON(data-interchange language), CSS3, HTML5, MySQL function e stored procedure, Mem cache, GIT, ovviamente AJAX.

Inoltre grazie alla quasi inesistente collaborazione con il reparto IT (Network e Management) ho avuto la possibilità di fare anche System Admin sui server VMWare Linux (Fedora 19).