Tecnologia, certamente! Ma qual è la soluzione migliore? Per chi e per quale obiettivo? Non sempre l’adozione delle Tecnologie nelle organizzazioni (di quelle ICT stiamo parlando) avviene dopo aver risposto a queste domande e ancor più le scelte vengono effettuate senza avere una visione di insieme del proprio business e delle condizioni dei competitor ovvero la loro usabilità da parte di chi la dovrà adoperare.
Per Crinali, la Tecnologia è, insieme alla visione di mercato e a risorse umane di qualità, uno degli strumenti dell’Innovazione di ogni organizzazione.
Un processo di cambiamento continuo e il più delle volte necessario, che bisogna attuare con una visione di medio periodo e quindi un’attenzione a fattori quali le reali esigenze, la disponibilità del budget oltre alle competenze e alla propensione ad innovare delle persone: lavoratori, fornitori e clienti.
Per questo, la nostra mission è mettere la Tecnologia a servizio degli obiettivi di business delle organizzazioni e delle persone, digitalizzandone i processi.
Come operiamo? La figura che segue, chiarisce il nostro modo di intervenire. Come per gli altri servizi partiamo dalla fase conoscitiva e di programmazione – Assessment & Strategy – per poi passare alla fase di valutazione economica degli investimenti e progettazione funzionale e architetturale, prestando molta attenzione all’usabilità delle soluzioni applicative.
Quindi ci occupiamo della fase di gestione e controllo del progetto implementativo – Management & Control – lasciando la fase di sviluppo o di integrazione ad altre aziende.
Ove richiesto dal cliente, ovvero in casi in cui disponiamo di soluzioni ed esperienze progettuali consolidate, ci occupiamo anche della fase realizzativa – Deployment & Testing.
Tech & Strategy
Chi guida il processo di innovazione tecnologica all’interno il Business naturalmente, con i suoi obiettivi strategici e operativi.
La struttura tecnologica di ogni organizzazione – dall’infrastruttura di rete, all’hardware, dal middleware alle soluzioni applicative – deve essere a servizio degli obiettivi di business e per questo deve essere coerente non solo nelle funzionalità ma anche nella capacità di assicurare benefici tali da ripagare gli investimenti.
Per questo motivo mettiamo a disposizione la nostra esperienza e competenza per realizzare il Piano di Sviluppo Tecnologico della tua organizzazione.
Cos’è il Piano di Sviluppo Tecnologico?
Un master plan (dinamico e quindi aggiornabile) degli investimenti tecnologici della tua organizzazione che allinea la tua infrastruttura tecnologica – hardware, networking, software e applicativi – agli obiettivi di business.
Sotto l’aspetto operativo, l’attività si articola in 4 fasi:
- Assessment: analisi dell’”As is” sotto in ambito strategico, organizzativo e tecnologico. Valutazione delle criticità e disegno di un modello coerente: business model – organizzazione – infrastruttura tecnologica.
- Design: indicazione e descrizione sintetica, per ogni ambito (hardware, networking, software e applicativi) degli specifici investimenti. In ambito “applicativi” gli investimenti vengono organizzati per singola area applicativa (es. CRM, ERP, HR etc.). Ogni specifico investimento.
- Economics: definizione, per ogni specifico investimento, del budget orientativo di spesa e dei benefici attesi, considerando per investimento più di una ipotesi di budget (es. min e max).
- Planning: assegnazione delle priorità agli specifici investimenti e realizzazione di un gantt.
Il Piano di Sviluppo Tecnologico oltre ad essere un documento dinamico e quindi modificabile nel tempo (es. cambiamenti delle priorità aziendali, del mercato etc.) è costruito con il coinvolgimento di tutta la vostra organizzazione dalla fase di Assessment e Design a quella di Budgeting e Planning.
Una volta approvato il Piano, inizia la fase di Assistenza Tecnica all’implementazione del Piano di Sviluppo Tecnologico Aziendale che prevede lo svolgimento delle attività di analisi dei requisiti degli specifici investimenti contenuti nel piano e quindi la stesura dei capitolati tecnici ed economici che serviranno per selezionare chi li realizzerà.
In questa fase diventiamo come i tuoi “Avvocati Tecnologici” seguendo anche le attività di controllo e di collaudo degli investimenti in fase di realizzazione e di completamento.
Tech & Design
Progettare – un castello, una vacanza ma anche un applicativo software – significa, partendo da un’analisi del contesto, ideare qualcosa di nuovo, studiandone le possibilità e i modi di eseguirla, anticipando imprevisti e tenendo conto delle probabilità.
In ambito tecnologico, la progettazione è una fase del ciclo di vita software in cui, partendo dai requisiti degli utenti che useranno l’applicativo, si disegnano, documentano e verificano l’architettura del sistema, le componenti software, interfacce e i dati che saranno utilizzati.
Perché scegliere noi per progettare la vostra applicazione software?
Siamo bravi in tutte le fasi del processo dalla progettazione architetturale e delle componenti di alto livello, la progettazione di dettaglio delle singole componenti software, della struttura dei dati e degli algoritmi per le funzioni.
E la progettazione delle interfacce?
Seguiamo la metodologia di progettazione orientata all’utente, quella che in inglese si chiama Human Centred Design (HCD).
Segni distintivi? Un approccio che coinvolge le persone a cui i prodotti e servizi si rivolgono dalla fase di analisi a quelle di progettazione, implementazione e rilascio, mettendo in primo piano esigenze, punti di vista e modi di operare di chi userà il software.
Non più quindi il tradizionale processo a cascata in cui chi progetta immagina il mondo di chi userà il prodotto, ma una forte e continua interazione tra il gruppo di lavoro – smaccatamente interdisciplinare – e gli utenti.
Conseguenze immediate? Grandi benefici e minori sprechi di tempo, maggiore usabilità e migliore user-experience, appunto.
Come operiamo praticamente? Attuiamo un metodo articolato in tre fasi: User Research (o UX Research), Conceptual design (o UX Design) ed Evaluation (o UX evaluation).
Nella prima fase di User Research, partiamo dall’Analisi delle tipologie di utenza (attuale e potenziale) cui il progetto si rivolge, con loro definizione secondo parametri socio – demografici (es. censo, età, professione), definendo poi i contesti nei quali l’applicativo sarà usato.
Proseguiamo quindi con i potenziali utenti per capire vincoli e aspettative, oltre all’analisi di prodotti esistenti per l’individuazione di efficienze e criticità.
L’interazione con gli utenti/persone – per tipologia di profilo – avviene grazie ad interviste face to face, somministrazione di questionari o, in alcuni casi, focus group utilizzando strumenti come il card sorting e le tecniche di scenario.
Nella seconda fase di Conceptual Design, lavoriamo insieme agli utenti/persone alla creazione di soluzioni progettuali, utilizzando i seguenti strumenti: brainstorming, creazione di modelli e schemi di navigazione, disegnando e discutendo bozzetti e schermate fino a creare prototipi a bassa o alta fedeltà (es. wireframe, mock-up).
Nella terza fase di Evaluation, che inizia con le prime ipotesi progettuali e prosegue durante e dopo l’implementazione dell’applicativo svolgiamo le seguenti attività insieme agli utenti/personas: analisi euristiche e ispettive, simulazioni cognitive e testing dell’applicativo per individuare problemi o test di valutazione e benchmark.
Gli esiti delle valutazioni appena citate portano a modifiche dei requisiti identificati nelle fasi iniziali prima che si sia passati alla fase di implementazione (programmazione, realizzazione di bozzetti o template html/css, installazione di software di gestione lato server). Così gli interventi migliorativi diventano meno onerosi in termini di tempo e costi.
Tech & Management
Agile Project Management
Il nostro obiettivo è soddisfare il Cliente! Troppo scontato? Forse è meno ovvio raccontare come ci impegniamo per riuscirci, per esempio, nel Management di progetti di Software Development o di System Integration? (un’area che negli ultimi anni è cresciuta in termini di fatturato e di importanza dei progetti gestiti, come Portale Accordo Pagamenti e Ordine Elettronico della Regione Lazio).
Adottiamo metodologie di Software Project Management Agile. Come si legge si scrive? Veramente si pronuncia “Agiaile”, il concetto di Agile applicato al mondo del Software è infatti nato negli Stati Uniti.
Perché scegliamo le metodologie Agile per gestire i nostri progetti? Perché l’obiettivo finale di un progetto di Sviluppo software o di System Integration è che “funzioni bene” ma soprattutto che gli utenti siano soddisfatti nell’utilizzarlo.
Come ci si riesce con l’Agile Management? Attraverso la collaborazione stretta sia con il cliente – coinvolto nel processo stesso di sviluppo – che del team di sviluppo dove il Project Manager diventa Project Owner che è capo progetto, in alcuni momenti “capo” ovvero, colui che da indicazioni al gruppo perché “sa qual è la cosa giusta da fare”; ma, prima di tutto, si preoccupa di far crescere tutti i membri del Team, sia professionalmente che come “capi di se stessi”
Elemento chiave della filosofia Agile è dare più fiducia alle persone e nella loro capacità di collaborare, che non in un particolare processo di sviluppo da seguire pedissequamente.
Sono diverse le metodologie di Management Agile, come ad esempio la Lean Software Development o la Metodologia Scrum, ma tutte hanno delle proprietà comuni. Quali?
Sono iterativi, incrementali e orientati alle funzionalità: realizziamo l’intera applicazione articolando il piano di attività nello sviluppo di unità incrementali dette iterazioni, della durata, in media, di due settimane. Ogni iterazione è un mini incremento delle funzionalità del sistema che viene rilasciato sopra al risultato dell’iterazione precedente.
Coinvolgono attivamente il cliente, non solo in fase di progettazione ma anche in fase di sviluppo, facendogli testare e approvare ogni iterazione – funzionalità, riducendo così i rischi e le sorprese in merito alla sua soddisfazione.
La consegna basata su priorità: assegniamo una priorità ad ogni funzionalità in base a esigenze del cliente, rischi di sviluppo, opportunità di business e sviluppiamo prima le funzionalità con priorità maggiore, anche se al termine di ogni iterazione, le priorità del progetto possono essere rivalutate.
Sono adattive, flessibili e basate sulla semplicità: per noi, l’applicazione deve consentire l’afflusso di nuovi requisiti durante lo sviluppo. Progetto e codice sono impostati per semplificare, privilegiando l’adattabilità alle modifiche, piuttosto che il rispetto pieno di tutte le specifiche definite. Perché? Anche nel software, non è possibile sapere a priori tutto ciò che “si vuole”.
Responsabilizziamo le persone e non le regole: i nostri team, di solito piccoli, sono caratterizzati da un alto grado di interazione e comunicazione. Chi guida i nostri progetti è più un “allenatore” piuttosto che un “capo” che deve far seguire solo delle regole a dei sottoposti. Infatti, la documentazione e le altre attività, non propriamente di sviluppo e test, sono ridotte al minimo. Facciamo molto gioco di squadra e promuoviamo l’autodisciplina per raggiungere alti livelli di professionalità e organizzazione.
Lo sviluppo è rapido, testing e rilasci sono frequenti: i nostri team sviluppano ogni funzionalità – iterazione velocemente, con cicli di feedback ridotti e quindi con nuove versioni del software frequenti, ognuna preceduta dalla verifica automatica o manuale del corretto funzionamento del sistema.
Quali sono i vantaggi della scelta di metodologie agili?
Per i nostri clienti, il coinvolgimento più attivo e il calendario fisso delle frequenti consegne, dà controllo sui tempi di sviluppo e quindi è “tranquillizzante”; la flessibilità delle metodologie, invece, consente di “ripensare a quello che si vuole”. Infine, con i test continui, la qualità del software fornito è decisamente migliore.
Per il team di progetto il lavoro se è più responsabilizzante è anche più piacevole: poche regole e gioco di squadra, oltre a verifica diretta e continua dei risultati del proprio lavoro.
Per l’azienda, con il coinvolgimento dei clienti e la responsabilizzazione del team, meno sprechi di tempo, più qualità del software e più certezza dell’apprezzamento dei risultati da parte del committente.
Infine, minori costi di sviluppo complessivo. Perché? Meno tempo perso nella progettazione, meno rilavorazione, tempo per produrre documentazione e per gestire il progetto.
Deployment
La nostra esperienza nell’ambito dell’attività di Deployment è articolata in tre ambiti di intervento: soluzioni software chiavi in mano per la Pubblica Amministrazione, System Integration e sviluppo di applicazioni ad hoc per l’efficientamento e la dematerializzazione dei processi aziendali.
Soluzioni Software “chiavi in mano” per le PA
In quest’ambito di attività disponiamo di soluzioni software solitamente collegate al nostro Servizio di consulenza direzionale nell’ambito di progetti di efficientamento della Pubblica Amministrazione Locale come il procurement per le stazioni appaltanti e la gestione del Demanio fluviale da parte dell’ente Regione:
Better
Better è un applicativo “web-based” che realizza le procedure telematiche di acquisto previste dal DPR 101 e dalle successive riforme del codice degli appalti. La soluzione gestisce due tipologie di negoziazione :
- Aste on line, con il criterio di aggiudicazione al prezzo più basso.
- Gare on line, con il criterio di aggiudicazione all’offerta economicamente più vantaggiosa.
L’interfaccia web based, realizzata attraverso l’adozione di metodologie UX, consente un facile utilizzo dell’applicativo.
L’applicativo gestisce tutte le procedure connesse alla pubblicazione, risposte ai quesiti e invio delle offerte di gara. L’applicativo è inoltre integrato con un sistema di reportistica che consente un’analisi a livello statistico delle informazioni connesse alla gara.
Demanio Plus
DemanioPlus è una piattaforma software basata su tecnologia WEB-GIS (sistema cartografico),
Realizza, nell’ambito degli uffici di Regioni, Province e Comuni responsabili al controllo del demanio idrico, i processi per la gestione di:
- Domande di concessione
- Occupazioni demaniali
- Concessioni demaniali
La piattaforma consente di normalizzare le procedure di controllo sul territorio al fine di:
- garantire la riscossione per le nuove concessioni
- aumentare la possibilità di riscossione per le occupazioni note o sommerse o oggetto di voltura.
System Integration
Le esperienze maturate nello sviluppo delle soluzioni per le PA, ci hanno permesso di sviluppare le metodologie di System integration per:
- Migrazione dati da sistemi legacy
- Disegno di architetture sw orientate ai servizi (REST e SOA)
- Definizione di protocolli di comunicazione basati su scambio dati (XML e Web Services)
- Integrazione dell’accesso ad applicativi eterogenei (Identity Manager, Single Sign on e sistemi ad accesso centralizzato: CAS)
Sviluppo Soluzioni Enterprise
Le nostre competenze di analisi e di sviluppo software consentono di realizzare applicativi software su misura, in particolare per l’efficientamento e la dematerializzazione dei processi di business.
Sviluppiamo soluzioni ad hoc sia su tecnologie JAVA J2EE che MicroSoft .NET.
Nell’ambito dell soluzioni basate su JAVA J2EE, utilizzando metodologie di progettazione e di sviluppo “agili” (XP, Test Driven Development) sfruttiamo al meglio la dinamicità dei framework e delle tecnologie OpenSource per il mondo Java come:
- Alfresco
- Hibertnate
- Jboss
- OPenJPA
- Maven
- Spring Source
Nell’ambito delle tecnologie MicroSoft .NET utilizziamo i Framework .NET 1.1, 2.0,3.0,3.5 e Linguaggi C#, VB.NET, ASP.NET, potendo disporre di software-architects e sviluppatori certificati MCSD.