Corso Di Laurea In Informatica
Ampliamento delle funzionalità del sistema interno per la pianificazione/consuntivazione delle attività
da parte dei dipendenti aziendali
Anno Accademico 2010/2011
Laureando: Mattia Rabbi
Relatore: Prof. Silvia Crafa
Struttura del presente documento
La presente relazione è strutturata come segue:
• nel capitolo “Introduzione” viene presentato lo stage, dove è stato svolto e che obiettivi sono stati fissati inizialmente;
• nel capitolo “Dominio applicativo” viene descritta l’azienda dove si è svolto lo stage e quali tecnologie utilizza;
• nel capitolo “Attività di stage” viene descritta la pianificazione dello stage ed il suo svolgimento nelle varie fasi, specificando tutte le funzionalità che sono state aggiunte;
• nel capitolo “Conclusioni” viene espressa una valutazione delle attività svolte e degli obiettivi raggiunti.
Seguono le appendici contenenti la bibliografia ed il glossario.
Convenzioni tipografiche
Al fine di rendere più leggibile e comprensibile il documento, sono state adottate le seguenti convenzioni:
• corsivo per gli acronimi, i nomi di organizzazioni ed i nomi di tecnologie;
• grassetto e corsivo per la prima ricorrenza di ogni parola riportata e spiegata nel glossario.
1 Introduzione 1
1.1 Progetto di stage . . . 1
1.2 Descrizione del progetto . . . 1
1.3 Svolgimento dello stage . . . 2
1.4 Obiettivi prefissati . . . 2
1.5 Obiettivi fissati successivamente . . . 3
1.6 Rilevanza del progetto di stage. . . 3
2 Dominio applicativo 5 2.1 Azienda ospitante . . . 5
2.2 Clientela target . . . 6
2.3 Tecnologie in uso . . . 6
2.3.1 Tutos R . . . 6
2.4 GUFO . . . 7
2.4.1 Descrizione database GUFO . . . 8
2.4.2 Descrizione interfaccia GUFO . . . 11
2.4.2.1 Pannello Business Unit. . . 12
2.4.2.2 Pannello Persone . . . 13
2.4.2.3 Pannello Progetti . . . 14
2.4.2.4 Pannello Attività . . . 15
2.4.2.5 Pannello Clienti. . . 16
2.4.2.6 Pannello Report . . . 17
3 Attività di stage 21 3.1 Piano di lavoro . . . 21
3.1.1 Formazione . . . 22
3.1.2 Analisi e progettazione . . . 22
3.1.3 Implementazione . . . 22
3.1.4 Integrazione . . . 23
3.1.5 Documentazione . . . 23
3.2 Formazione iniziale . . . 24
3.3 Tecnologie e strumenti utilizzati . . . 25
3.3.1 FileMaker Pro R . . . 25
3.4 Funzionalità aggiunte . . . 26
3.4.1 FUNZ-01 . . . 26
3.4.2 FUNZ-02 . . . 29 v
3.4.2.1 Report per progetto . . . 30
3.4.2.2 Report per persona . . . 32
3.4.3 FUNZ-03 . . . 33
3.4.4 FUNZ-04 . . . 34
3.4.5 FUNZ-05 . . . 36
3.4.6 FUNZ-06 . . . 39
3.4.7 FUNZ-07 . . . 43
3.4.8 FUNZ-08 . . . 44
3.5 Aggiornamenti effettuati . . . 46
3.5.1 AGG-01 . . . 46
3.5.2 AGG-02 . . . 47
3.5.3 AGG-03 . . . 48
3.5.4 AGG-04 . . . 49
3.5.5 AGG-05 . . . 49
3.5.6 AGG-06 . . . 49
3.5.7 AGG-07 . . . 49
4 Conclusioni 51 4.1 Problemi riscontrati. . . 51
4.1.1 Tecnologie sconosciute . . . 51
4.2 Complessità del progetto di stage . . . 51
4.3 Conseguimento degli obiettivi fissati . . . 52
4.3.1 Obiettivi aziendali . . . 52
A Glossario 55
2.1 Logo IKS S.r.l. . . 5
2.2 Logo TUTOS R . . . 7
2.3 Logo GUFO . . . 7
2.4 Database semplificato GUFO . . . 9
2.5 Database completo GUFO . . . 10
2.6 Pulsanti Nuovo record / Elimina record . . . 11
2.7 Pulsante dettaglio . . . 11
2.8 Pulsante consuntiva . . . 11
2.9 Pulsante elimina riga . . . 11
2.10 Pannello Bisiness Unit - Tab Persone . . . 12
2.11 Pannello Persone - Tab Pianificazione . . . 13
2.12 Pannello Progetti - Tab Task di progetto . . . 14
2.13 Pannello Attività . . . 15
2.14 Pannello Clienti - Tab Progetti . . . 16
2.15 Pannello Clienti - Tab Attività. . . 16
2.16 Pannello Report - Tab Report per progetto . . . 17
2.17 Pannello Report - Tab Report per persona . . . 17
2.18 Pannello Report - Tab Report scostamenti per progetto . . . 18
2.19 Pannello Report - Tab Report scostamenti per persona . . . 19
3.1 Diagramma di Gantt per la pianificazione delle attività di stage . . . 21
3.2 Logo FileMaker R . . . 25
3.3 Report presenze in TUTOS . . . 26
3.4 Progetto “Presenze” in GUFO . . . 27
3.5 Report presenze in GUFO . . . 28
3.6 Report per progetto in TUTOS . . . 29
3.7 Report per persona in TUTOS. . . 29
3.8 Script filtra_report_per_progetto . . . 30
3.9 Report per progetto in GUFO . . . 31
3.10 Report per persona in GUFO . . . 32
3.11 Report riassuntivo per ogni progetto . . . 33
3.12 Attività scadute o in scadenza assegnate ad ogni persona . . . 35
3.13 Connessione ODBC tra applicazione client e database . . . 36
3.14 Configurazione DSN di sistema (Windows) . . . 37
3.15 Output query SQL per la fatturazione . . . 38
3.16 Script imposta campo effort pianificato mese corrente . . . 40 vii
3.17 Script imposta campo effort pianificato tre mesi successivi . . . 41
3.18 Tempo pianificato mese in corso e tre mesi successivi . . . 42
3.19 Percentuale attività pianificata / consuntivata . . . 43
3.20 Report scostamenti per progetto . . . 45
3.21 Report scostamenti per persona . . . 45
3.22 Eliminazione di un progetto dal portale . . . 46
3.23 BU / Pianificazione . . . 47
3.24 Relazione tra “azioni” e “Clienti” . . . 48
Introduzione
Al giorno d’oggi, per le società di consulenza informatica come “IKS S.r.l.”, è molto importante fornire ai propri dipendenti un facile sistema per gestire la piani- ficazione delle varie attività lavorative e, di conseguenza, di come consuntivarle nel modo più adeguato ed efficiente.
Ciò diventa molto importante nel momento in cui si propone un’offerta di un prodotto ad un cliente, in modo tale che si abbia una certa precisione sulla stima economica da proporre.
Invece, a prodotto finito, l’attività consuntivata per ogni dipendente è di fondamen- tale importanza: in base al calcolo del consuntivo l’azienda richiederà l’esatto onere economico al cliente.
Inoltre, quando il numero di dipendenti aumenta, risulta necessario disporre di uno strumento di facile consultazione per monitorare tutte le attività delle varie persone assegnate ai diversi progetti.
Creando dei report di facile utilizzo, i responsabili di ogni progetto possono, ad esempio, osservare e valutare se il piano di lavoro stilato nella fase iniziale è in linea con le aspettative oppure se si sta scostando troppo dalle previsioni e quindi intervenire di conseguenza.
In questo modo è possibile valutare se sia il caso di assegnare alcuni lavoratori ad altri progetti.
1.1 Progetto di stage
Ampliamento delle funzionalità del sistema interno per la pianificazione / con- suntivazione delle attività da parte dei dipendenti impegnati nei vari progetti / attività.
1.2 Descrizione del progetto
In IKS S.r.l. è stato sviluppato un prodotto interno che permette di gestire varie attività da svolgere all’interno dell’azienda.
-1-
Il prodotto è stato rilasciato in una prima versione base, la quale è stata da me ampliata con l’inserimento di nuove funzionalità.
1.3 Svolgimento dello stage
Lo stage si è svolto presso l’azienda “IKS S.r.l.” di Padova dal 20 aprile 2011 al 17 giugno 2011, per un totale di 304 ore.
Il progetto di stage l’ho portato a termine individualmente senza l’affiancamento di un secondo stagista.
Ad ogni modo, durante il periodo di stage sono stato affiancato dalla dott.ssa Giuliana Ferro, dipendente aziendale da molti anni, la quale mi ha fornito dei consigli utili atti a migliorare l’utilizzo futuro dell’applicazione all’interno dell’azienda.
Il mio tutor aziendale dott. Andrea Scarpa ha contribuito a gestire l’insieme di attività da svolgere, stabilendo le priorità, l’ordine di svolgimento e le finalità.
1.4 Obiettivi prefissati
Prima di iniziare l’attività di stage, i requisiti fissati erano i seguenti:
• creazione di un report presenze che visualizzi permessi, ferie, malattie di ogni persona;
• creazione di report per progetto e per persona;
• creazione di un report riassuntivo per ogni progetto con - elenco delle persone coinvolte;
- effort assegnato, schedulato e consuntivato;
• visualizzazione per ogni persona delle attività in scadenza o scadute a lei assegnate;
• creazione di report per la fatturazione;
• visualizzare la percentuale di tempo pianificato nel mese in corso e nei tre mesi successivi per ogni persona;
• visualizzare l’elenco dei progetti in essere, con la percentuale di attività piani- ficata e la percentuale di attività consuntivata;
• creazione di un report scostamenti che evidenzia se ci sono differenze tra l’impegno pianificato e quello effettivamente consuntivato.
1.5 Obiettivi fissati successivamente
Durante il mio percorso di stage, i requisiti si sono leggermente ampliati facendo emergere nuove funzionalità:
• visualizzazione nel report presenze di eventuali congedi di maternità (oltre a permessi, ferie, malattie);
• visualizzazione del numero di giornate pianificate nel mese in corso e nei tre mesi successivi per ogni persona (oltre alla percentuale).
1.6 Rilevanza del progetto di stage
Il progetto di cui mi sono occupato presenta molteplici aspetti rilevanti, tra i quali vengono riportati di seguito i più salienti.
• La Web Application che ho contribuito a sviluppare andrà a sostituire com- pletamente l’utilizzo delle tecnologie tutt’oggi in uso nell’azienda.
• La nuova applicazione consente di semplificare l’insieme di operazioni neces- sarie alla pianificazione / consuntivazione delle attività svolte; infatti, mentre attualmente vengono utilizzate due tecnologie separate per tali operazioni, grazie all’implementazione di questo nuovo sistema sarà possibile gestire con un’unica applicazione le diverse operazioni sopra descritte.
• Tale applicazione renderà più semplice l’attività dei responsabili dei vari pro- getti, i quali potranno avere un’unica modalità per visualizzare i diversi report riguardanti tutti i progetti e tutte le persone coinvolte nella loro realizzazione.
Dominio applicativo
In questo capitolo viene descritta l’azienda presso la quale si è svolta l’attività di stage ed il contesto aziendale dove opera.
Successivamente verranno descritte le tecnologie utilizzate dai dipendenti azien- dali per pianificare le varie attività da svolgere e per consuntivare le attività già svolte.
In particolare verrà descritto “TUTOS”, la tecnologia attualmente in uso in IKS S.r.l., la quale verrà sostituita con “GUFO”, un database sviluppato internamente all’azienda e adattabile secondo le esigenze.
2.1 Azienda ospitante
IKS S.r.l. nasce alla fine degli anni novanta con lo scopo di agire sui principali temi dell’Information e Communication Techonology. Da sempre l’azienda lavora nei campi della sicurezza informatica, nella gestione e automazione di infrastrutture ICT e nello sviluppo di soluzioni software, spesso basate sulle tecnologie Java e J2EE.
Uno dei campi d’attuazione più importanti di IKS S.r.l. è la fornitura di servizi e soluzioni utili, ai suoi clienti, per migliorare i processi aziendali. Sono leader nel panorama nazionale sui temi legati alla governance e alla protezione dei sistemi informativi.
Figura 2.1: Logo IKS S.r.l.
-5-
Grazie alla qualità e competenza del suo personale, IKS S.r.l. viene percepita come una azienda di elevate capacità e competenze. Infatti, uno dei punti al quale l’azienda fa più attenzione, è quello riguardante la formazione del suo personale, attraverso la quale riesce a mantenere il livello di qualità raggiunto.
IKS S.r.l. annovera tra i propri clienti le principali aziende del panorama nazionale.
Nel 2003 IKS S.r.l. viene certificata con l’ISO 9001:2000 che evidenzia la qua- lità e sicurezza dei suoi prodotti e l’impegno e attenzione che l’azienda pone verso i propri clienti. Con il passare degli anni, l’azienda ha maturato esperienze reali e idee che permettono di proporsi sul mercato in modo esclusivo.
2.2 Clientela target
IKS S.r.l. ha oggi una elevato numero di clienti, tra i quali spiccano aziende di peso nel loro settore. L’azienda mette a disposizione dei suoi clienti la propria esperienza maturata in più di un decennio di progetti svolti nell’area di Audit Ma- nagement e Risk Assessment.
La sicurezza è stata sempre un campo di notevole interesse per IKS S.r.l.. Infatti offre consulenza in ambito di auditing, mirata alla verifica del sistema di controllo interno dell’azienda.
2.3 Tecnologie in uso
In questa sezione vengono descritte le tecnologie in uso da tutto il team di IKS S.r.l.. In particolare verrà descritto TUTOS, un sistema per la pianificazione / consuntivazione interno all’azienda.
2.3.1 Tutos
RTUTOS (The Ultimate Team Organization Software) è:
• un GROUPWARE, trattasi di una tecnologia pensata per facilitare e rendere più efficace il lavoro cooperativo da parte di gruppi di persone;
• ERP (Enterprise Resource Planning, letteralmente “pianificazione delle risorse d’impresa”), un sistema di gestione che integra tutti i processi di business rilevanti di un’azienda (vendite, acquisti, gestione magazzino, contabilità, etc.);
• CRM (Customer Relationship Management), un sistema di gestione del cliente, non più rappresentato solo dal singolo individuo ma dalla società e dall’am- biente circostante;
• PLM (Product Lifecycle Management), un approccio strategico alla gestione delle informazioni, dei processi e delle risorse a supporto del ciclo di vita di prodotti e servizi, dalla loro ideazione, allo sviluppo, al lancio sul mercato, al ritiro.
Figura 2.2: Logo TUTOS R
Per compiere le sue funzioni, TUTOS mette a disposizione vari strumenti web- based collegati fortemente tra loro in modo tale da presentare un’interfaccia unica per tutte le esigenze quotidiane delle persone coinvolte.
IKS S.r.l. ha utilizzato TUTOS per gestire tutte le varie esigenze organizzative.
Ogni dipendente aziendale ha l’obbligo di consuntivare a fine giornata (oppure a fine mese) le mansioni che ha effettivamente svolto; questo è necessario per la fatturazione ai clienti.
2.4 GUFO
In questa sezione verrà presentato GUFO, la Web Application interna all’azien- da, che dovrà sostituire a pieni effetti TUTOS. In questo modo IKS S.r.l. avrà la possibilità di gestire a proprio piacimento la creazione di nuovi report ad hoc, senza dover utilizzare le soluzioni già proposte da un software fatto da terze parti.
Figura 2.3: Logo GUFO
Nelle prossime due sezioni verrà spiegato come è stata implementata l’appli- cazione. È stata rispettata la separazione tra il database e la parte grafica, la quale verrà utilizzata via web per interagire in modo semplice ed intuitivo con l’utilizzatore finale del prodotto.
2.4.1 Descrizione database GUFO
GUFO è un database composto da molte tabelle, in seguito vengono riportate le più importanti con una piccola descrizione di ognuna.
• BusinessUnit
Ogni ramo aziendale viene visto come una Business Unit (anche chiamata BU), ed ogni dipendente appartiene ad una determinata BU.
• Persone
Qui vengono memorizzati tutti i dipendenti aziendali; è una semplice tabella contenente i dati anagrafici di ciascuna persona.
• Progetti
In questa tabella vengono salvati tutti i progetti aziendali, ognuno con vari indicatori sul loro andamento.
• Azioni
In questa tabella vengono salvate tutte le azioni che ogni dipendente compie con persone interne o esterne all’azienda. Ogni azione ha un responsabile, al quale verrà assegnato il “pallino”: in caso di problemi è possibile rivolgersi a questa persona per chiedere i motivi di ciò. Può trattarsi di una richiesta interna, di una richiesta ad un cliente oppure di un’indagine.
• Clienti
In questa tabella vengono memorizzati tutti i clienti dell’azienda.
• Task
Ogni progetto è suddiviso in più task, visti come sottoattività da svolgere per completare l’intero progetto aziendale.
• RuoliTask
Qui vengono memorizzati i vari ruoli che una persona può avere in quel mo- mento, come per esempio “Project Manager” oppure “Consultant”.
• Assegnazioni
In questa tabella sono salvate tutte le attività che sono state assegnate ad una determinata persona su un particolare progetto.
• Schedulazioni
Qui vengono segnate le ore che ogni persona pianifica di svolgere su un progetto al quale è stata precedentemente assegnata. Ogni schedulazione ha un flag che indica se è stata già consuntivata.
• Consuntivazioni
Questa è una tabella parallela alla tabella “Schedulazioni”, ma totalmente se- parata. Infatti qui vengono salvate le ore che ogni persona ha consuntivato per un progetto; queste sono le ore che verranno effettivamente fatturate ai clienti dell’azienda.
Riassumendo tutto ciò in un diagramma relazionale semplificato, abbiamo le seguenti tabelle.
Figura 2.4: Database semplificato GUFO
Come si può notare dalla Figura 2.4, collegando la tabella Assegnazioni alla tabella Persone si creerebbe una relazione circolare: questo tipo di collegamento non è possibile con FileMaker Pro. Verrà quindi creata una nuova istanza della tabella Persone, chiamata in modo automatico Persone 2.
Per lo stesso principio, collegando la tabella Clienti alla tabella Progetti e suc- cessivamente alla tabella Azioni, si creerebbe una relazione circolare. Verrà quindi creata una nuova istanza della tabella Clienti, chiamata Clienti 2.
Per completezza riporto anche la Figura 2.5, la quale mostra la complessità del database GUFO. In particolare possiamo notare le tabelle non specificate sopra e le varie istanze che è stato necessario creare per evitare relazioni circolari.
usrnm pwdNew pwdNew2 old_pwd Chg_Pwd
username fk_Sedi fk_bu id nome cognome sigla eMail telefonoFisso cellulare inForza Etichetta fitt_da fitt_a fitt_mese id Totale id Conteggio tipo_account id Totale Progressivo tot_pallini tot_pallini_chiusi tot_pallini_sospesi tot_pallini_aperti tot_pallini_scaduti tot_pallini_in_scadenza tot_pallini_non_in_scadenza effort_pianificato effort_consuntivato differenza_effort effort_pianificato_mese_corrente perc_pianificato_mese_corrente effort_pianificato_tre_mesi_successivi perc_pianificato_tre_mesi_successivi Persone
da a responsabile id fk_Persone fk_BusinessUnit ASSOCIATO fk_BusinessUnit Cont…
fk_BusinessUnit Cont…
N
fk_BusinessUnit Total…
PersoneBU
id nome descrizione Divisioni
fk_bu schedulazione viewer VistaSchedulazione_…
fk_Divisioni id nome
descrizione giorni BusinessUnit
fk_TipologieProgetto fk_BusinessUnit fk_clienti id fk_StatiProgetto billable nome colore dataFine dataInizio descrizione dirDocumenti effortAssegnato effortConsuntivato effortPianificato effortPrevisto
idCommessa indicatoreAssegnato indicatorePianificato indicatoreConsuntivato perc_Assegnato_Consuntiv…
perc_Assegnato_Pianificato perc_Consuntivato_Pianific…
differenza_Effort Progetti
fk_Progetti id fk_StatiTask nome descrizione dataInizio dataFine
colore effortPrevisto effortAssegnato effortPianificato effortConsuntivato indicatoreAssegnato indicatorePianificato indicatoreConsuntivato Task
id nome descrizione StatiTask
username viewer data progetto ore id_Assegnazioni id_schedulazione task ruolo giorno consuntivata VistaSchedulazione
fk_Persone fk_RuoliTask id
CONTEGGIO composto attiva effortAssegnato effortPianificato effortConsuntivato nomeProgetto nomeTask nomeRuolo nomePersona Assegnazioni
id nome descrizione Figure
fk_Task fk_Figure id effortPrevisto note
effortAssegnato effortPianificato effortConsuntivato RuoliTask
id fk_RuoliTask fk_Persone CONTEGGIO nomeProgetto effortAssegnato effortPianificato effortConsuntivato attiva composto nomeTask nomeRuolo nomePersona data_inizio numero_giorni note ore Assegnazioni_Filtrate
fk_Assegnazioni fk_FasceOrarie oraInizio oraFine data ore note id
data_max progetto task ruolo id Totale id Totale progressivo id Conteggio persona_id sintesi descrittiva username Consuntivazioni
id FasceOrarie 2
fk_Assegnazioni fk_FasceOrarie persona_id oraInizio oraFine data ore note id
data_max progetto task ruolo id Totale id Totale progressivo id Conteggio sintesi descrittiva username consuntivata Schedulazioni
id BusinessUnit 2 username
id fk_bu Persone 2
fk_pallino_persona azioni 3 fk_owner_persona azioni 2 fk_Progetti
data note id Check
fk_Progetti nome descrizione id FasceOrarie
username viewer data progetto ore id_Assegnazioni id_consuntivazione task ruolo giorno VistaConsuntivazioni id
nome Clienti id
nome descrizione TipologieProgetto
fk_business unit fk_owner_persona fk_pallino_persona fk_richiedente_per…
fk_clienti nome opportunità richiedente tipo richiesta data richiesta Business Unit tema owner stato pallino prossimo passo data prossimo passo descrizione storia data ultimo aggiorna…
data pros pas test pallino_scaduto pallino_in_scadenza azioni
id Clienti 2
id Persone 5 id Persone 4 id Persone 3 id
nome Aziende id
fk_Aziende indirizzo
città provincia Sedi
id FasceOrarie 3 id nome descrizione StatiProgetto
Figura 2.5: Database completo GUFO
2.4.2 Descrizione interfaccia GUFO
In questa sezione troviamo una piccola descrizione degli aspetti più significativi dell’interfaccia grafica del database GUFO. Questa parte è totalmente personalizza- bile dell’utente che la implementa.
Per aggiungere un nuovo record nel database utilizzando l’interfaccia grafica è necessario utilizzare il pulsante “Nuovo record” (vedi Figura 2.6).
Per eliminare un record già esistente nel database è necessario utilizzare il pulsante
“Elimina record” (vedi Figura2.6).
Figura 2.6: Pulsanti Nuovo record / Elimina record
Per andare nel dettaglio in una particolare scheda è necessario utilizzare il pul- sante riportato in Figura 2.7.
Figura 2.7: Pulsante dettaglio
Per consuntivare un lavoro già pianificato è necessario utilizzare il pulsante riportato in Figura2.8.
Figura 2.8: Pulsante consuntiva
Per eliminare una riga in un portale è necessario utilizzare il pulsante riportato in Figura 2.9.
Figura 2.9: Pulsante elimina riga
2.4.2.1 Pannello Business Unit
In questo pannello l’utente può visualizzare tutte le Business Unit inserite all’in- terno del database GUFO.
Viene chiesto solamente di inserire il nome della BU.
Ad ogni Business Unit sono associate più schede, qui riportate di seguito.
• Tab Persone
Qui possiamo visualizzare tutte le persone appartenenti alla BU selezionata.
• Tab Progetti
Qui possiamo visualizzare tutti i progetti appartenenti alla BU selezionata.
• Tab Prevendita
Qui possiamo visualizzare tutte le azioni (attività) appartenenti alla BU sele- zionata; vengono mostrate solo quelle non chiuse e la tipologia della richiesta deve essere “cliente”.
• Tab Indagine
Qui possiamo visualizzare tutte le azioni (attività) appartenenti alla BU sele- zionata; vengono mostrate solo quelle non chiuse e la tipologia della richiesta deve essere “indagine”.
• Tab Ric.Int.
Qui possiamo visualizzare tutte le azioni (attività) appartenenti alla BU sele- zionata; vengono mostrate solo quelle non chiuse e la tipologia della richiesta deve essere “interna”.
• Tab Pianificazione
Qui possiamo visualizzare tutta la pianificazione mensile di tutte le persone appartenenti alla BU selezionata. Possiamo scorrere ai mesi precedenti ed ai mesi successivi per visualizzare le relative pianificazioni.
In Figura 2.10 viene riportato il “Pannello Business Unit - Tab Persone”.
Figura 2.10: Pannello Bisiness Unit - Tab Persone
2.4.2.2 Pannello Persone
In questo pannello l’utente può inserire una nuova persona all’interno del database GUFO.
Viene chiesto di inserire i dati anagrafici principali e la Business Unit di apparte- nenza. I campi “sigla”, “email” ed “username” vengono generati automaticamente secondo regole stabilite.
Ad ogni persona sono associate più schede, qui riportate di seguito.
• Tab Pianificazione
Qui possiamo visualizzare tutto ciò che la persona selezionata ha pianificato nel mese corrente. In questa scheda l’utente dovrà provvedere a pianificare quello che gli è stato assegnato. È possibile visualizzare i mesi precedenti e successivi tramite gli appositi pulsanti.
• Tab Consuntivazione
Qui possiamo visualizzare tutto ciò che la persona selezionata ha consuntivato nel mese corrente. In questa scheda l’utente dovrà provvedere a consuntivare il lavoro che ha già svolto. È possibile visualizzare i mesi precedenti e successivi tramite gli appositi pulsanti.
• Tab Progetti
Qui possiamo visualizzare i progetti (in esecuzione) ai quali la persona è collegata; non vengono visualizzati i progetti chiusi ed in attesa.
• Tab Ownership
Qui possiamo visualizzare le attività (aperte), per le quali la persona selezio- nata è l’owner; non vengono visualizzate le attività chiuse e sospese.
• Tab Pallini
Qui possiamo visualizzare le attività (aperte), per le quali la persona selezio- nata ha il “pallino”; non vengono visualizzate le attività chiuse e sospese.
In Figura 2.11 viene riportato il “Pannello Persone - Tab Pianificazione”.
Figura 2.11: Pannello Persone - Tab Pianificazione
2.4.2.3 Pannello Progetti
In questo pannello l’utente può inserire un nuovo progetto.
Viene chiesto di inserire il nome del progetto, la Business Unit di riferimento, lo stato, la tipologia, le date di inizio / fine progetto ed una piccola descrizione.
I campi “effortPrevisto” ed “effortAssegnato” vengono generati automaticamente:
la colorazione in grigio indica che tali campi non sono inseribili direttamente dall’u- tente.
Ad ogni progetto sono associate più schede, qui riportate di seguito.
• Tab Task di progetto
Qui possiamo visualizzare tutti i task relativi al progetto selezionato; andan- do nel dettaglio possiamo visualizzare tutti i ruoli di progetto che sono stati assegnati alle varie persone. Infine andando ancora più nel dettaglio possiamo visualizzare tutte le persone che sono state assegnate ai vari ruoli di progetto.
Per ogni ruolo dobbiamo inserire l’effort previsto; per ogni persona dobbiamo inserire l’effort assegnato.
• Tab Note
Qui possiamo visualizzare eventuali note relative al progetto selezionato.
• Tab Persone
Qui possiamo visualizzare tutte le persone collegate al progetto selezionato.
In Figura 2.12 viene riportato il “Pannello Progetti - Tab Task di progetto”.
Figura 2.12: Pannello Progetti - Tab Task di progetto
2.4.2.4 Pannello Attività
In questo pannello l’utente può inserire una nuova attività.
Viene chiesto di inserire il nome dell’attività, il nome del cliente per il quale si svolgerà l’attività, lo stato dell’attività (aperto, chiuso, sospeso) e la “data prossi- mo passo”, cioè il giorno in cui verrà eseguito un aggiornamento sull’avanzamento dell’attività. Questi campi sono da inserire obbligatoriamente.
Inoltre vi sono altri campi che l’utente può inserire per ampliare la descrizione dell’attività:
- richiedente, colui che richiede un’attività;
- tipo richiesta, il tipo dell’attività (cliente, indagine, interna);
- Business Unit, la BU alla quale l’attività è associata;
- owner, il possessore dell’attività;
- data richiesta, quando è stata richiesta l’attività;
- tema;
- descrizione;
- “pallino” , a chi è stata assegnata l’attività (è colui che ha in mano l’attività in questo momento);
- aggiornato a, l’ultima data di aggiornamento;
- prossimo passo, una piccola descrizione di cosa verrà svolto nel passo suc- cessivo;
- storia, una descrizione di tutta la storia dell’attività. Ad ogni prossimo passo verrà aggiunta la relativa descrizione.
In Figura 2.13 viene riportato il “Pannello Attività”.
Figura 2.13: Pannello Attività
2.4.2.5 Pannello Clienti
In questo pannello l’utente può inserire un nuovo cliente.
Viene chiesto di inserire il nome del cliente.
Inoltre l’utente può visualizzare per ogni cliente, andando in dettaglio con l’ap- posito pulsante, le informazioni di seguito riportate.
- Visualizza i progetti, dove vengono mostrati i progetti relativi a quel cliente.
- Visualizza le attività, dove vengono mostrate le attività relative a quel cliente.
In Figura 2.14 viene riportato il “Pannello Clienti - Tab Progetti”.
Figura 2.14: Pannello Clienti - Tab Progetti
In Figura 2.15 viene riportato il “Pannello Clienti - Tab Attività”.
Figura 2.15: Pannello Clienti - Tab Attività
2.4.2.6 Pannello Report
In questo pannello l’utente può visualizzare vari report, di seguito spiegati sin- golarmente.
• Report per progetto
Qui vengono visualizzate, per ogni progetto, tutte le consuntivazioni di ogni persona per il progetto selezionato. Possiamo filtrare i dati visualizzati in- serendo il progetto desiderato, lo stato del progetto (attesa ordine, chiuso, esecuzione), il mese e/o l’anno. Inoltre viene visualizzato il totale dei giorni consuntivati per il progetto selezionato.
In Figura2.16 viene riportato il “Pannello Report - Tab Report per progetto”.
Figura 2.16: Pannello Report - Tab Report per progetto
• Report per persona
Qui vengono visualizzate, per ogni persona, tutte le consuntivazioni che la persona selezionata ha effettuato per i vari progetti. Possiamo filtrare i dati visualizzati inserendo il nome della persona, il mese e/o l’anno.
In Figura 2.17 viene riportato il “Pannello Report - Tab Report per persona”.
Figura 2.17: Pannello Report - Tab Report per persona
• Report scostamenti per progetto
Qui vengono visualizzati, per ogni progetto, le seguenti informazioni:
- effort previsto, il totale dei giorni previsti per il progetto selezionato;
- effort assegnato, il totale dei giorni assegnati per il progetto selezionato;
- effort pianificato, il totale dei giorni pianificati per il progetto selezio- nato;
- effort consuntivato, il totale dei giorni consuntivati per il progetto selezionato;
- differenza effort, la differenza tra l’effort consuntivato e l’effort pianifi- cato (espresso in giorni) per il progetto selezionato;
- attività consuntivata, una percentuale che indica quanto è stato con- suntivato rispetto a quanto è stato pianificato per il progetto selezionato;
- attività pianificata, una percentuale che indica quanto è stato pianifi- cato rispetto a quanto è stato assegnato al progetto selezionato;
- attività consuntivata, una percentuale che indica quanto è stato con- suntivato rispetto a quanto è stato assegnato al progetto selezionato.
Possiamo filtrare i dati visualizzati inserendo il progetto desiderato. Inoltre possiamo visualizzare due grafici che illustrano in modo semplice i dati sopra riportati.
In Figura 2.18 viene riportato il “Pannello Report - Tab Report scostamenti per progetto”.
Figura 2.18: Pannello Report - Tab Report scostamenti per progetto
• Report scostamenti per persona
Qui vengono visualizzati, per ogni persona, le seguenti informazioni:
- effort pianificato, il totale dei giorni pianificati per la persona selezio- nata;
- effort consuntivato, il totale dei giorni consuntivati per la persona selezionata;
- differenza effort, la differenza tra l’effort consuntivato e l’effort pianifi- cato (espresso in giorni) per la persona selezionata;
- effort pianificato nel mese corrente, il totale dei giorni pianificati nel mese corrente per la persona selezionata;
- percentuale effort pianificato nel mese in corso, una percentuale che indica quanto è stato pianificato per il mese in corso relativo alla persona selezionata;
- effort pianificato nei tre mesi successivi, il totale dei giorni pianifi- cati nei tre mesi successivi per la persona selezionata;
- percentuale effort pianificato nei tre mesi successivi, una per- centuale che indica quanto è stato pianificato per i tre mesi successivi relativo alla persona selezionata.
Possiamo filtrare i dati visualizzati inserendo il nome della persona desiderata.
Inoltre possiamo visualizzare due grafici che illustrano in modo semplice i dati sopra riportati.
In Figura 2.19 viene riportato il “Pannello Report - Tab Report scostamenti per persona”.
Figura 2.19: Pannello Report - Tab Report scostamenti per persona
Attività di stage
In questo capitolo viene descritta la pianificazione dello stage ed il suo svolgi- mento nelle varie fasi.
Successivamente vengono descritte le tecnologie e gli strumenti utilizzati durante l’attività di stage. In particolare verrà descritto FileMaker Pro, un database multi piattaforma utilizzato completamente per l’implementazione di GUFO e di ogni suo aspetto.
Infine vengono specificate tutte le funzionalità che sono state aggiunte e tutti i vari aggiornamenti che sono stati effettuati, aggiungendo delle immagini per rendere il tutto più chiaro.
3.1 Piano di lavoro
Per poter iniziare l’attività di stage è necessario redigere un documento, denomi- nato Piano di Lavoro, che, oltre a definire il progetto di stage, attesta come questo progetto si svolgerà nel tempo. Per questo specifico progetto di stage, il piano di lavoro è stato redatto completamente dal proponente, senza nessuna partecipazione da parte mia.
La Figura3.1dimostra come si è deciso di pianificare l’attività di stage nel tempo.
Figura 3.1: Diagramma di Gantt per la pianificazione delle attività di stage
-21-
3.1.1 Formazione
Durante le prime due settimane ho effettuato la fase di formazione, in modo tale da facilitare le fasi successive mediante lo studio delle problematiche da affrontare e le tecnologie che saranno utilizzate durante lo svolgimento dello stage.
In particolare, la formazione si è basata su:
• studio del prodotto FileMaker Pro;
• presa in carico della soluzione attuale TUTOS;
• presa in carico della soluzione attuale / futura GUFO.
Durata: 2 settimane
3.1.2 Analisi e progettazione
Una volta acquisite le conoscenze necessarie al proseguimento dell’attività di stage, si è passati alla fase di analisi e progettazione delle soluzioni, dove sono state analizzate le richieste del tutor aziendale e sono state progettate le soluzioni per soddisfare tali esigenze.
In particolare, questa fase si è basata su:
• analisi delle funzionalità da implementare;
• analisi delle specifiche funzionali;
• definizione del piano di test;
• progettazione tecnica delle soluzioni da realizzare;
• documentazione.
Durata: 1 settimana
3.1.3 Implementazione
Dopo la fase di progettazione, si è passati all’implementazione di tutti gli obiet- tivi fissati, generando in questo modo tutte le funzionalità desiderate.
In particolare, questa fase si è basata su:
• implementazione delle nuove funzionalità richieste;
• documentazione.
Durata: 3 settimane
3.1.4 Integrazione
Dopo aver sviluppato tutte le funzionalità, si è passati all’integrazione di quanto fatto (in locale) con il database GUFO usato in produzione. Tale database è uti- lizzato da una fetta di dipendenti aziendali, i quali testano in modo continuativo quanto fatto.
In particolare, questa fase si è basata su:
• integrazione delle varie componenti sviluppate con il database di produzione;
• test di integrazione;
• documentazione.
Durata: 1 settimana
3.1.5 Documentazione
Infine, dopo aver integrato tutto ciò che è stato fatto durante il periodo di stage, si è passati a produrre la documentazione finale delle soluzioni sviluppate.
Ad ogni modo, alla fine di ogni fase precedente è stato possibile ricavare del tempo per aggiornare tutta la documentazione.
Per questo motivo questa ultima fase è risultata più breve rispetto alle altre.
In particolare, questa fase si è basata su:
• aggiornamento della manualistica;
• aggiornamento dei documenti di rilascio.
Durata: 1/2 settimana
3.2 Formazione iniziale
La fase di formazione è stata suddivisa in più sottofasi, che vengono di seguito riportate.
• Lettura di documenti ufficiali FileMaker Pro
Innanzitutto è stato necessario conoscere e comprendere gli strumenti e le tec- nologie con le quali si doveva operare. Questi erano completamente sconosciuti allo stagista e la lettura della loro documentazione si è rivelata di grande utilità.
• Esempi pratici utilizzando FileMaker Pro
Una volta terminata la lettura della documentazione ufficiale, ho iniziato a familiarizzare con FileMaker Pro iniziando con dei piccoli esempi pratici. Ho quindi approfondito:
- la differenza che c’è tra una tabella e le sue eventuali istanze;
- l’utilizzo dei join per collegare più tabelle tra loro;1
- l’utilizzo dei formati e dei portali per mostrare all’utente i dati desiderati;
- l’utilizzo degli script e la loro utilità nello svolgere funzioni.
• Lettura di documentazione GUFO
Dopo aver familiarizzato con FileMaker, ho iniziato la lettura documenti rel- ativi all’utilizzo, l’architettura ed il funzionamento generale della Web Appli- cation GUFO.
• Analisi dell’applicazione GUFO
In questa fase ho potuto analizzare l’applicazione GUFO in dettaglio, esami- nando quali erano le funzionalità implementate fino a quel momento.
• Esempi pratici in GUFO
Infine, in questa ultima fase ho potuto familiarizzare con GUFO, inserendo nuovi dati nel database e analizzando nel dettaglio cosa provocano queste azioni.
1In FileMaker Pro non si possono creare relazioni circolari
3.3 Tecnologie e strumenti utilizzati
In questa sezione vengono presentate le tecnologie e gli strumenti informatici utilizzati per lo svolgimento dell’attività di stage.
3.3.1 FileMaker Pro
RFileMaker Pro è un database multi piattaforma sviluppato da FileMaker Inc., conosciuto per essere un database che combina potenza e facilità d’uso. È anche conosciuto per la stretta integrazione del database e dell’interfaccia grafica.
FileMaker Pro è stato uno dei primi database presentati per Apple Macintosh all’inizio degli anni ottanta.
FileMaker Pro è disponibile per la piattaforma Macintosh e la piattaforma Mi- crosoft Windows, è in grado di utilizzare una rete locale mista (composta da com- puter Macintosh e Windows).
FileMaker Pro è un prodotto scalabile2; è disponibile una versione per le postazioni degli utenti, una per i server ed esiste una versione in grado di interfacciarsi a siti web ed a dispositivi mobili.
Figura 3.2: Logo FileMaker R
FileMaker Pro mette a disposizione vari strumenti di facile utilizzo che con- sentono di:
• creare database personalizzati;
• produrre resoconti;
• pubblicare dati sul Web;
• condividere, in modo sicuro, i database in rete con più di 9 utenti.
2Nell’informatica e nell’ingegneria elettronica, si dice scalabile un prodotto hardware o software capace di crescere nelle circostanze di aumento del carico di lavoro o di evoluzione del prodotto.
3.4 Funzionalità aggiunte
Qui di seguito vengono riportate tutte le funzionalità aggiunte alla Web Appli- cation GUFO durante il periodo di stage svolto. Queste funzionalità rispettano gli obiettivi descritti nel capitolo introduttivo.
3.4.1 FUNZ-01
Creazione di un report presenze che visualizzi
permessi, ferie, malattie e congedi maternità di ogni persona
In IKS S.r.l. la gestione delle presenze da parte dei dipendenti aziendali viene così gestita:
• pianificazione delle ore/giornate di permessi/ferie/malattie/congedi maternità in un file Excel condiviso tra tutti i dipendenti aziendali;
• consuntivazione di quanto pianificato in TUTOS;
• e-mail alla segreteria ed al proprio responsabile di Business Unit per avvisare della propria assenza.
In questo modo la segreteria ha modo di gestire le presenze di tutti i vari dipen- denti aziendali, prendendo i dati dal report presenze disponibile in TUTOS (vedi Figura 3.3).
Figura 3.3: Report presenze in TUTOS
Successivamente all’avvio del database GUFO, la gestione delle presenze da parte dei dipendenti aziendali sarà così gestita:
• pianificazione e consuntivazione delle ore/giornate di permessi/ferie/malattie/congedi maternità direttamente in GUFO;
• e-mail alla segreteria ed al proprio responsabile di Business Unit per avvisare della propria assenza.
Per implementare questo requisito, ho dovuto seguire i seguenti passi:
• creare il progetto “Presenze”, interno all’azienda;
• assegnare al progetto appena creato quattro task per pianificare e consuntivare i permessi, le ferie, le malattie ed i congedi maternità;
• per ognuno dei task appena creati, assegnare il ruolo fittizio “––-” utile per il passo successivo;
• per ogni ruolo appena creato, assegnare tutte le persone inserite nel database.
Il progetto “Presenze” è visualizzabile in Figura 3.4.
Figura 3.4: Progetto “Presenze” in GUFO
In questo modo, ad ogni persona è stata data la possibilità di consuntivare le pro- prie ore di permessi/ferie/malattie/congedi maternità. Per pianificare e consuntivare ciò, l’utente potrà andare nel pannello Persone ed aggiungere le assenze accordate.
A questo punto, è stato necessario creare il report presenze raggiungibile dall’in- terfaccia grafica tramite Report → Report per progetto → selezionando dal menu a tendina il progetto “Presenze”. Qui vengono visualizzate le ore consuntivate rela- tive a permessi/ferie/malattie/congedi maternità di ogni persona. In più, possiamo filtrare i dati visualizzati per mese e per anno, in modo da avere una visione più facilmente comprensibile.
In Figura 3.5 troviamo uno screenshot di quanto è stato realizzato.
Figura 3.5: Report presenze in GUFO
3.4.2 FUNZ-02
Creazione di report per progetto e per persona
In IKS S.r.l. tutti i dipendenti aziendali possono accedere a TUTOS e visualiz- zare due tipologie di report: report per progetto (Figura 3.6) e report per persona (Figura 3.7).
Figura 3.6: Report per progetto in TUTOS
Figura 3.7: Report per persona in TUTOS
Analogamente, questo requisito si pone l’obiettivo di implementare queste due tipologie di report in GUFO. Nello sviluppare questa nuova funzionalità ho seguito la struttura grafica finora seguita, quindi ho creato un nuovo pannello chiamato
“Report” dove al suo interno compaiono due link per accedere ai relativi tab “Report per progetto” e “Report per persona”.
3.4.2.1 Report per progetto
Nello sviluppare questo report ho creato un nuovo tab dove al suo interno è stato inserito un portale. Esso mostra i record correlati della tabella Consuntivazioni e li filtra in base al seguente criterio:
If ( INTERFACCIA3::mese = “––-”;
If ( INTERFACCIA3::anno = “––-”;
Consuntivazioni::id = Consuntivazioni::id;
Anno (Consuntivazioni::data) = INTERFACCIA3::anno);
If(INTERFACCIA3::anno = “––-”;
NomeMese (Consuntivazioni::data) = INTERFACCIA3::mese;
NomeMese (Consuntivazioni::data) = INTERFACCIA3::mese and ...
... Anno (Consuntivazioni::data) = INTERFACCIA3::anno)) Possiamo fare un esempio relativo alla modalità di filtro del portale:
• MESE = “––-” and ANNO = “––-” → visualizza tutte le consuntivazioni
• MESE = “giugno” and ANNO = “––-” → visualizza le consuntivazioni di giu- gno di tutti gli anni
• MESE = “––-” and ANNO = “2011” → visualizza le consuntivazioni di tutti i mesi del 2011
• MESE = “giugno” and ANNO = “2011” → visualizza le consuntivazioni di giu- gno 2011
Inoltre è stata data la possibilità all’utente di filtrare i dati visualizzati in base al nome del progetto (selezionabile da un menu a tendina, dove sono riportati tut- ti i progetti inseriti nel database GUFO) ed allo stato del progetto (attesa ordine, chiuso, esecuzione). Questo è stato possibile associando uno script FileMaker alla pressione del tasto “Filtra”. In Figura 3.8 viene riportato lo script, seguito da una piccola descrizione sul suo funzionamento.
Figura 3.8: Script filtra_report_per_progetto
• Imposto una variabile locale ($val) con il nome del progetto selezionato dal- l’utente;
• passo al modo “Trova” (prima ero nel modo “Usa”);
• imposto il campo per la ricerca con il valore $val;
• eseguo la ricerca;
• cancello i dati correnti dal menu a tendina visualizzato all’utente.
Analogamente è stato fatto lo script per filtrare i dati visualizzati in base allo stato del progetto.
In Figura 3.9 viene riportato quanto è stato fatto.
Figura 3.9: Report per progetto in GUFO
3.4.2.2 Report per persona
Nello sviluppare questo report ho creato un nuovo tab dove al suo interno è stato inserito un portale. Esso mostra i record correlati della tabella Consuntivazioni e li filtra in base per mese e/o per anno, secondo il criterio descritto nella Sezione3.4.2.1.
Inoltre è stata data la possibilità all’utente di filtrare in base al nome e cognome della persona (selezionabile da un menu a tendina, dove sono riportate tutte le per- sone inserite nel database GUFO).
Lo script per filtrare i dati visualizzati in base al nome e cognome della persona ha funzionamento analogo allo script per filtrare i dati visualizzati nel report per progetto (vedi Sezione 3.4.2.1).
In Figura 3.10 viene riportato quanto è stato fatto.
Figura 3.10: Report per persona in GUFO
3.4.3 FUNZ-03
Creazione di un report riassuntivo per ogni progetto con elenco delle persone coinvolte, effort assegnato, schedulato e consuntivato
In IKS S.r.l., per avere una visione generale riassuntiva, è stato utile avere un report che per ogni progetto mostrasse quali sono le persone associate a quel deter- minato progetto e l’effort sia del progetto in totale, sia di ogni singola persona.
In Figura 3.11 viene riportato quanto è stato fatto.
Figura 3.11: Report riassuntivo per ogni progetto
In dettaglio, nel portale vengono visualizzati i vari effort relativi alla tabella As- segnazioni; al di fuori del portale vengono visualizzati i vari effort relativi alla tabella Progetti.
Per completezza riporto le seguenti informazioni, andando dal più specifico al meno specifico:
• Schedulazioni::ore ogni persona pianifica quanto ha lavorato (in ore);
• Assegnazioni::effortPianificato = Somma(Schedulazioni::ore)/8;
• RuoliTask::effortPianificato = Somma(Assegnazioni::effortPianificato);
• Task::effortPianificato = Somma(RuoliTask::effortPianificato);
• Progetti::effortPianificato = Somma(Task::effortPianificato).
3.4.4 FUNZ-04
Visualizzazione per ogni persona delle attività in scadenza o scadute a lei assegnate
In IKS S.r.l. dietro alla gestione di un’attività sono presenti più figure:
• richiedente, è colui che richiede tale attività;
• owner, è colui al quale è stata assegnata tale attività;
• “pallino”, è colui che ha in mano l’attività in questo preciso momento.
Solitamente l’owner ed il “pallino” sono la stessa persona, ma può capitare che l’owner assegni l’attività ad un’altra persona, e questa sarà quindi responsabile di continuare e portare a termine tale attività.
Detto ciò, è nato il bisogno di monitorare tutte le attività presenti in azienda;
quindi ho proceduto secondo quanto riportato in seguito.
• Tabella azioni
Sono stati aggiunti due campi dato (si/no):
- pallino_scaduto, impostato a “si” solo se la data_prossimo_passo è mi- nore della data corrente e lo stato è uguale ad “aperto”, “no” altrimenti;
- pallino_in_scadenza, impostato a “si” solo se la data_prossimo_passo è compresa tra la data corrente e la data corrente più cinque giorni e lo stato è uguale ad “aperto”, “no” altrimenti;
• Tabella Persone
Sono stati aggiunti i seguenti campi dato, ricalcolati in automatico ogni volta che succedono delle operazioni di modifica:
- tot_pallini, somma tutti i “pallini” associati alla persona selezionata;
- tot_pallini_chiusi, somma i “pallini” chiusi associati alla persona selezio- nata;
- tot_pallini_sospesi, somma i “pallini” sospesi associati alla persona sele- zionata;
- tot_pallini_aperti, somma i “pallini” aperti associati alla persona sele- zionata;
- tot_pallini_scaduti, conta le ricorrenze del campo dato pallino_scaduto (impostato a “si”) nella tabella azioni, relative alla persona selezionata;
- tot_pallini_in_scadenza, conta le ricorrenze del campo dato pallino_in_scadenza (impostato a “si”) nella tabella azioni, relative alla persona selezionata;
- tot_pallini_non_in_scadenza, è la differenza del tot_pallini_aperti - tot_pallini_scaduti - tot_pallini_in_scadenza;
• Tabella azioni
È stato reso obbligatorio l’inserimento dei seguenti campi dato:
- nome dell’attività;
- nome del cliente;
- stato dell’attività;
- data del prossimo passo.
Dopo aver ricavato tutte queste informazioni, ed aver impostato i vincoli sopra riportati, è stato possibile visualizzare tutto ciò nel pannello Business Unit, scheda Persone.
In Figura 3.12 viene riportato quanto è stato fatto.
Figura 3.12: Attività scadute o in scadenza assegnate ad ogni persona
3.4.5 FUNZ-05
Creazione di report per la fatturazione
In IKS S.r.l la gestione della fatturazione verso i clienti viene gestita “intreccian- do” l’utilizzo di TUTOS con Microsoft Excel. In pratica, tramite una connessione ODBC, l’applicazione client (Microsoft Excel) riesce a ricavare i dati delle consun- tivazioni dal database MySQL di TUTOS e riportarli in una tabella Excel.
Lo scopo di questo requisito è riprodurre lo stesso funzionamento utilizzando GUFO ed il relativo driver ODBC, lasciando quindi trasparente ed invariata tutta la gestione della fatturazione da parte della segreteria.
La pianificazione per implementare questo requisito è stata così suddivisa:
• scaricare dal sito http://www.filemaker.com/it/support/ il driver ODBC per FileMaker;
• installare il driver ODBC scaricato;
• configurare il driver client (aggiungendo un DSN di sistema);
• importare in Excel i dati delle consultivazioni dal database GUFO (tramite query SQL).
Dopo essermi documentato sulle guide ufficiali FileMaker, ho capito che il soft- ware FileMaker può agire o come applicazione client o come origine dati. Nel nostro caso, è necessario l’utilizzo del database FileMaker come origine dati.
Utilizzando le API ODBC o JDBC, un’applicazione client comunica con una ges- tione driver che identifica il driver client per comunicare con una origine dati.
Figura 3.13: Connessione ODBC tra applicazione client e database
Come origine dati, i dati FileMaker sono condivisi con applicazioni compatibili con ODBC e JDBC. L’applicazione si collega all’origine dati FileMaker utilizzando il driver client FileMaker, genera ed esegue le query SQL utilizzando ODBC o JDBC ed elabora i dati recuperati dalla soluzione di database FileMaker.
Seguendo la pianificazione, ho scaricato ed installato il driver client ODBC,
“ODBC FileMaker”: questo permetterà di configurare l’accesso a un’origine dati FileMaker, nel nostro caso al database GUFO. Quindi, ho configurato il driver client aggiungendo un DSN di sistema, ottenendo quanto visualizzato in Figura 3.14.
Figura 3.14: Configurazione DSN di sistema (Windows)
A questo punto, tutto è pronto per importare i dati delle consuntivazioni da GU- FO a Microsoft Excel. Quindi scegliendo da Dati → Carica dati esterni → Da altre origini (Da Microsoft Query) l’origine dati appena creata (DB_GUFO) otteniamo l’opportunità di creare una query SQL con Microsoft Query. A questo punto la sintassi della nostra query sarà la seguente:
SELECT Consuntivazioni.data AS ‘vtime’, Consuntivazioni.progetto AS
‘Progetto’, Progetti.idCommessa AS ‘Commessa’, Consuntivazioni.ruolo AS ‘Task’, p.cognome AS ‘Persona’, BU.nome AS ‘factory’,
Progetti.descrizione AS ‘description’, (Consuntivazioni.ore/8) AS ‘Giorni’
FROM Assegnazioni Assegnazioni, ‘BusinessUnit 2’ BU, Consuntivazioni Consuntivazioni, ‘Persone 2’ p, Progetti Progetti, RuoliTask
RuoliTask, Task Task
WHERE (Consuntivazioni.fk_Assegnazioni = Assegnazioni.id) AND (Assegnazioni.fk_Persone = p.id)
AND (BU.id = p.fk_bu)
AND (Assegnazioni.fk_RuoliTask = RuoliTask.id) AND (RuoliTask.fk_Task = Task.id)
AND (Task.fk_Progetti = Progetti.id) AND (Consuntivazioni.progetto = ?) 3
3Il carattere ‘ ?’ identifica un particolare valore inserito in una determinata cella del file Excel, da specificare. Per esempio posso associare alla cella A1 il nome del progetto da filtrare nella query SQL.
Questa query SQL mi produce l’output visualizzato in Figura 3.15, necessario alla segreteria per la fatturazione ai clienti.
Figura 3.15: Output query SQL per la fatturazione
3.4.6 FUNZ-06
Visualizzare la percentuale di tempo pianificato nel mese in corso e nei tre mesi successivi per ogni persona
In IKS S.r.l, per una migliore gestione del personale e del tempo a disposizione, c’era la necessità di capire quanto una persona fosse impegnata nel mese in corso e nei tre mesi successivi. In base a ciò si può capire se possiamo assegnare una persona ad un nuovo progetto.
Nell’implementare questo requisito ho seguito i passaggi di seguito riportati.
• Creazione dei seguenti campi dato nella tabella Persone:
- effort_pianificato_mese_corrente;
- perc_pianificato_mese_corrente4;
- effort_pianificato_tre_mesi_successivi;
- perc_pianificato_tre_mesi_successivi5.
• Creazione dello script imposta campo effort_pianificato_mese_corrente (vedi Figura 3.16).
• Creazione dello script imposta campo effort_pianificato_tre_mesi_successivi (vedi Figura 3.17).
Il primo script esegue un loop su tutte le persone presenti nel database GUFO, e per ogni persona entra nella tabella Schedulazioni nella quale, se trova la persona corrente, il mese corrente e l’anno corrente, aggiorna una variabile locale che tiene traccia di tutte le ore pianificate nel mese in corso (e nell’anno in corso). Infine, imposta la variabile effort_pianificato_mese_corrente con il valore trovato.
4Per il calcolo della percentuale vengono calcolati 20 giorni lavorativi in un mese
5Per il calcolo della percentuale vengono calcolati 60 giorni lavorativi in tre mesi
Figura 3.16: Script imposta campo effort pianificato mese corrente
Il secondo script ha lo stesso funzionamento, ma suddivide quattro casi diversi:
• se il mese della data corrente è compreso tra gennaio e settembre, allora si procede nel modo semplice (il primo mese successivo è il mese corrente più uno, il secondo mese successivo è il mese corrente più due, il terzo mese successivo è il mese corrente più tre);
• se il mese della data corrente è ottobre, allora i mesi successivi da considerare sono novembre, dicembre (dell’anno corrente) e gennaio (dell’anno successivo);
• se il mese della data corrente è novembre, allora i mesi successivi da considerare sono dicembre (dell’anno corrente), gennaio e febbraio (dell’anno successivo);
• se il mese della data corrente è dicembre, allora i mesi successivi da considerare sono gennaio, febbraio e marzo (dell’anno successivo).
Figura 3.17: Script imposta campo effort pianificato tre mesi successivi
A questo punto, quando entro in “Report scostamenti per persona” vengono ese- guiti questi due script che mi aggiornano i campi dato precedentemente creati.
L’output finale viene riportato in Figura 3.18.
Figura 3.18: Tempo pianificato mese in corso e tre mesi successivi
3.4.7 FUNZ-07
Visualizzare l’elenco dei progetti in essere, con la percentuale di attività pianificata e la percentuale di attività consuntivata
In IKS S.r.l, per una migliore gestione dei progetti in essere, si è presentata la necessità di capire quanto fosse stato pianificato e quanto fosse stato consuntivato fino a quel momento.
Nell’implementare questo requisito, è sorta la necessità di creare i seguenti campi dato nella tabella Progetti:
• perc_Assegnato_Consuntivato = effortConsuntivato/effortAssegnato)*100;
• perc_Assegnato_Pianificato = effortPianificato / effortAssegnato)*100;
• perc_Consuntivato_Pianificato = effortConsuntivato/effortPianificato)*100.
Dopo averli creati, sono stati inseriti nel pannello “Report scostamenti per pro- getto”, e visualizzati secondo la Figura 3.19.
Figura 3.19: Percentuale attività pianificata / consuntivata
3.4.8 FUNZ-08
Creazione di un report scostamenti che evidenzia se ci sono differenze tra l’impegno pianificato e quello effettivamente consuntivato
Per implementare questo requisito sono stati creati due report riassuntivi:
• Report scostamenti per progetto
• Report scostamenti per persona
Per il secondo report, è sorta la necessità di avere, nella tabella Persone, due campi dato ricavabili dalla tabella Assegnazioni:
• effort_pianificato
→ Somma (Assegnazioni::effortPianificato)
• effort_consuntivato
→ Somma ( Assegnazioni::effortConsuntivato )
In seguito è possibile vedere come sono stati realizzati questi report, notando il campo dato “Differenza effort”.
Tale campo, se negativo, sta ad indicare che:
• nel Pannello Report - Tab Report scostamenti per progetto
per il progetto selezionato è stato consuntivato di meno rispetto a quanto si era pianificato nella fase iniziale;
• nel Pannello Report - Tab Report scostamenti per persona
la persona selezionata ha consuntivato meno ore rispetto a quante ne aveva pianificate inizialmente.
Inoltre, mediante l’utilizzo dei grafici che FileMaker Pro mette a disposizione, è possibile mostrare all’utente finale i dati trovati, sia mediante numeri, sia mediante diagrammi.
In questo caso, tra le varie tipologie di grafici a disposizione, è stato preferito l’uti- lizzo di due grafici a colonne, dove visivamente si potesse notare subito se ci sono degli scostamenti.
Nel primo grafico vengono comparati l’effort pianificato e l’effort consuntiva- to; nel secondo grafico viene visualizzata singolarmente la differenza tra l’effort pianificato e l’effort consuntivato.
In Figura 3.20 viene riportato il “Report scostamenti per progetto”.
Figura 3.20: Report scostamenti per progetto In Figura 3.21 viene riportato il “Report scostamenti per persona”.
Figura 3.21: Report scostamenti per persona
3.5 Aggiornamenti effettuati
Vengono qui di seguito riportati i vari aggiornamenti effettuati durante il periodo di stage svolto.
3.5.1 AGG-01 BU/Progetti
Quando elimino un progetto dal portale mi compare una finestra dove viene spie- gato all’utente che prima di eliminare un progetto si devono eliminare tutti i task associati.
In tal caso è stato necessario modificare lo script che elimina un progetto, aggiun- gendo una clausola if dove:
• se ci sono dei task associati, mostra la finestra personalizzata ed interrompe l’eliminazione;
• altrimenti elimina la riga del portale.
In Figura 3.22 viene riportato un screen-shot relativo ad una eliminazione (non andata a buon fine) di un progetto con più task associati.
Figura 3.22: Eliminazione di un progetto dal portale
3.5.2 AGG-02
BU/Pianificazione
È stata migliorata la visualizzazione della pianificazione di tutte le persone ap- partententi alla Business Unit selezionata nel mese corrente. Con gli appositi tasti possiamo scorrere e visualizzare i mesi precedenti oppure i mesi successivi a quello in corso.
Per far ciò sono stati usati i seguenti accorgimenti:
• utilizzo del font courier (a larghezza fissa);
• troncamento del nome del progetto, prendendo i primi 20 caratteri mediante la funzione “(Sinistra(Schedulazioni::progetto, 20))”, disponibile in FileMaker Pro.
In Figura 3.23 viene riportato il Pannello BU - Tab Pianificazione.
Figura 3.23: BU / Pianificazione
3.5.3 AGG-03
azioni::fk_clienti
È stata aggiunta la chiave esterna fk_clienti nella tabella “azioni”, adesso colle- gata quindi con la tabella Clienti; in questo modo ogni attività è collegata con un cliente.
Precedentemente solo i progetti erano collegati con un cliente.
In Figura 3.24 possiamo visualizzare la relazione tra la tabella “azioni” e l’istanza della tabella “Clienti” (chiamata Clienti 2). Questo perché la tabella “Clienti” è già collegata alla tabella “Progetti”, ed è per questo motivo che risulta necessaria la creazione di una nuova istanza della tabella “Clienti”.
Figura 3.24: Relazione tra “azioni” e “Clienti”
3.5.4 AGG-04 modo Usa
Sono stati impostati non modificabili alcuni particolari campi dato, ritenuti
“pericolosi” altrimenti.
3.5.5 AGG-05 modo Usa
È stata aggiunta l’annotazione (*) per distinguere se l’effort (o tutti i dati numerici presenti nei vari formati) viene espresso in ore oppure in giorni.
3.5.6 AGG-06
Persone/Pianificazione e Consuntivazione
Se una persona pianifica o consuntiva delle attività per il sabato o la domenica esse vengono memorizzate nei giorni stabiliti dall’utente (precedentemente venivano spostate al lunedì successivo).
3.5.7 AGG-07
Progetti/Task di progetto
È stato sistemato l’allineamento dei task nel portale (precedentemente tramite la navigazione Web venivano visualizzati in modo errato).
Conclusioni
In questo capitolo vengono descritte le problematiche riscontrate, soprattutto nella fase iniziale dello stage, ed in seguito gli obiettivi conseguiti a conclusione del mio percorso di stage.
4.1 Problemi riscontrati
4.1.1 Tecnologie sconosciute
Inizialmente le tecnologie che mi accingevo a studiare erano del tutto sconosciute.
Nonostante ciò, grazie alla fase iniziale di formazione ho potuto acquisire le basi ne- cessarie per proseguire nelle fasi successive. Solo dopo aver preso dimestichezza con queste tecnologie, ho iniziato a lavorare su GUFO.
La problematica maggiormente riscontrata nel mio percorso di stage è stata quella di constatare che questo software è utilizzato da una fascia ridotta di utenti; ciò ha causato una scarsità di informazioni reperibili in rete sulle potenzialità reali di FileMaker Pro.
4.2 Complessità del progetto di stage
L’articolazione del progetto prevedeva inizialmente un tempo ridotto necessario alla realizzazione della relazione tra la tabella “azioni” e la tabella “Clienti”. In corso di svolgimento, invece, si è resa indispensabile l’associazione di ogni cliente ad un’identificativo univoco; è stato possibile ciò con l’aggiunta della chiave ester- na fk_clienti, sostituendo la stringa che identificava precedentemente un cliente.
Questo ha portato all’impiego di più ore, necessarie al raggiungimento di una mag- giore completezza e consistenza del prodotto finale.
-51-