Roadmap #
In questo tutorial modelleremo un sistema di controllo di gestione aziendale su una Cloudlet, implementando requisiti per iterazioni successive. Modelleremo concetti come impiegati, progetti, incarichi (intesi come assegnazione di progetto a un impiegato), attività e fatture.
- Inizialmente ci occuperemo della sola gestione del personale (anagrafica, collaboratori, risorse e team). Questo dominio “ristretto” è necessario per introdurre i concetti basilari di modellazione come classi, attributi e warnings.
- Successivamente includeremo piccole migliorie e considereremo anche elementi come i progetti e le attività; a tale scopo introdurremo relazioni, associazioni e composizioni.
- Infine, affronteremo argomenti di modellazione avanzati come query e filtri, implementeremo la gestione della contabilità e partizioneremo il modello in più viste applicative, rendendo il modello un vero e proprio sistema di controllo di gestione.
Esempio nel mondo reale #
Siamo stati appena assunti come analisti dalla Thesfor Consulting, un’azienda di consulenza informatica che sviluppa progetti per conto di clienti e imprese di terze parti. Thesfor è nata un anno fa e allora non era altro che una startup di cinque persone in una stanza, tutte a lavoro su un unico progetto; oggi è una promettente impresa con una cinquantina tra dipendenti, collaboratori e freelance distribuiti su più città, e gestisce contemporaneamente dozzine di progetti presso diversi clienti.
Solo una cosa non è cambiata dal primo giorno: i dati aziendali, relativi a progetti, risorse, anagrafica e pagamenti sono frammentati in centinaia di documenti, fogli di calcolo, email e post-it sparpagliati su computer e scrivanie ai quattro angoli del globo. Questo approccio caotico non scala, e rischia anzi di rallentare la crescita altrimenti esponenziale dell’impresa.
Il CEO di Thesfor ha deciso di affidarti la progettazione di un sistema ad-hoc per accentrare i dati aziendali in un unico database, che consenta allo stesso tempo di effettuare controllo di gestione.
Cos’è il controllo di gestione?
Il CEO è di manica corta e già soffre pensando a quanto tempo ci vorrà per realizzare il sistema, e a quanti soldi serviranno per pagare sviluppatori, ingegneri e analisti per realizzarlo e mantenerlo nel futuro. È qui che entra in gioco Livebase: una volta che avremo appreso le tecniche di modellazione saremo in in grado di realizzare noi stessi l’intero sistema direttamente davanti al CEO durante una riunione di analisi di requisiti; egli sarà ben lieto di poter interagire con una demo dell’applicazione in tempo reale!
Il sistema dovrà quindi soddisfare un requisito fondamentale: offrire una visione strutturata e d’insieme su tutto il dominio di business aziendale evidenziando le relazioni che legano concetti come progetto, fattura, incarico e attività.
Profili utente #
Dobbiamo realizzare un sistema multi-utente, garantendo che ciascun profilo acceda solo alle informazioni di sua competenza e in funzione del suo ruolo nell’azienda. I profili che dobbiamo modellare sono i seguenti:
- Amministratore: ha visione di tutto il sistema; può creare, modificare e gestire tutti i dettagli dei progetti, e ha accesso agli indicatori di controllo di gestione relativi a ciascun progetto;
- Responsabile contabile (accountant): registra le fatture attive per ciascun progetto e inserisce i pagamenti dei clienti relativi a esse; registra anche le fatture passive relative alle spese vive dei progetti;
- Responsabile staff (staff manager): gestisce gli impiegati e collaboratori, inclusa la loro suddivisione in team e l’assegnazione di nuovi incarichi per i progetti;
- Impiegati (user): ciascuno dispone di un’area personale da cui può accedere ai suoi dati anagrafici registrare le attività che effettua giornalmente per i progetti che gli sono assegnati;
- Team manager: una impiegato “speciale”, abilitato a gestire le attività di tutti i membri del team di cui fa parte; ha accesso a dati relativi all’andamento generale del team.
Nella prossima lezione… #
Modelleremo una prima, semplice versione del sistema descritto: Crea la tua prima applicazione.