Home
/
Blog
/
Le best practice per un software di qualità
4 Minutes

Le best practice per un software di qualità

Da qualche anno i software provider si stanno spostando sempre più verso una proposta di soluzioni basate su cloud. Oggi si sente parlare anche di SaaS 2.0, cioè della verticalizzazione del SaaS, ad esempio nel settore dell’agricoltura, della logistica, della gestione dei rifiuti, ma anche delle nuove soluzioni per il settore finanziario come chatbot e i robot advisor. Per fare tutto questo occorre un software che sia semplice da sviluppare, integrabile e altamente scalabile.

Architetture component-based, cloud computing, container, Agile, DevOps o DevSecOps, microservizi, serverless (IaaS o PaaS) sono tutti strumenti che mirano a trasformare il modo di realizzare il software, con l’obiettivo di accelerare i tempi di sviluppo e supportare l'agilità delle applicazioni.

Agilità di sviluppo è il nuovo termine che racchiude i trend più operativi attinenti agli strumenti e ai processi di sviluppo che accelerano il time-to-production delle applicazioni e la fase di analisi, progettazione e sviluppo. In questo ambito, il vero ostacolo da superare è l’integrazione con i sistemi legacy.

Tutte le aziende si stanno dotando di un integration layer che sia in grado di ridurre notevolmente i tempi di sviluppo tramite API e, di conseguenza, di velocizzare l’implementazione di nuove soluzioni permettendo anche di riutilizzare codice e applicazioni già esistenti.

Oggi si sta riducendo notevolmente la quantità di nuovo codice sviluppato e si utilizzano tool dedicati per eseguire i test, con un miglioramento della velocità di rilascio di nuove funzionalità (microservizi) con il supporto di un sottoinsieme di utenti che possa testarne rapidamente l’efficacia in ottica “trial & error”. In questo senso, l’adozione di piattaforme open source racchiude un vantaggio intrinseco notevole per gestire e governare al meglio questi trend.

Fino a qualche anno fa, lo sviluppo e l’introduzione di un'applicazione erano processi complessi e lunghi, che coinvolgevano pesantemente i dipartimenti IT. Negli anni abbiamo assistito alla nascita di framework, template e piattaforme con l’obiettivo di creare un ecosistema tecnologico meno frammentato e dispendioso, che semplificasse il lavoro sia del team di progettazione e front end che di quelli più operativi come i system administrator e i back end.

Con l’evoluzione del web e delle tecnologie digitali, continua a crescere l’esigenza di costruire sistemi che permettano di condividere contenuti e dati in modo semplice, con la possibilità di accedervi in ogni momento da piattaforme diverse (web, mobile, app, social, chatbot, virtual assistant, sistemi di domotica, Internet of Things, etc.).

Proprio per questo, si tende sempre più a disaccoppiare la gestione dei contenuti – i dati - dalla parte di presentazione tramite API, andando così a creare sistemi software definiti headless. Questo nuovo approccio permette da un lato ai dipartimenti IT di essere più in linea con le esigenze e i tempi richiesti dal business e dall’altro consente alle risorse di business operative di avere a disposizione soluzioni non eccessivamente complicate con le quali costruire esperienze omnicanale, memorabili e distintive per essere sempre in linea con le richieste e l’evoluzione del mercato.

Oggi, le applicazioni devono essere sempre più personalizzate, ritagliate sulle esigenze individuali, delle imprese e dei rispettivi clienti. A questo proposito il software deve essere concepito come un insieme di moduli predefiniti, ma adattabili, che garantiscono il giusto equilibrio tra sviluppo e utilizzo e che possano essere di fatto quasi interamente gestiti anche da persone di business, quindi meno “tecniche” e questa connessione tra IT e business consentirà un miglioramento del processo decisionale e della gestione delle applicazioni fondamentali. Il concetto della qualità del software si è evoluto negli ultimi anni, aggiungendo le esigenze relative al corretto utilizzo da parte degli utenti a quelle relative al funzionamento del prodotto.

La qualità di un software è valutabile secondo criteri semplici e misurabili come:

  • Adeguatezza delle funzionalità in base alle necessità degli utenti
  • Facilità d’uso
  • Semplicità di installazione e integrazione
  • Facilità di personalizzazione
  • Prestazioni intese come tempi di risposta ed utilizzo risorse
  • Affidabilità
  • Capacità di far evolvere, aggiornare e manutenere la soluzione
  • Livello di sicurezza per accesso non autorizzati
  • Salvaguardia dei dati e garanzia di riservatezza

Tutto questo però non può prescindere dall’analisi del contesto ossia chi utilizzare il software e le motivazioni che li portano alla sua adozione. Sarà quindi necessario raccogliere informazioni relative a:

  • Profilo degli utenti: conoscenze informatiche, esperienza, dimestichezza
  • Obiettivi da raggiungere grazie al suo utilizzo: migliorare e semplificare i processi interni o esterni, velocizzare l’esecuzione di task operativi, innovare
  • Modalità operative: come si opera oggi e come verranno utilizzate le nuove soluzioni

Oggi è più che mai fondamentale definire una strategia iniziale e una governance manageriale chiara per evitare di sottovalutare aspetti che potrebbero poi diventare pericolosi e critici nel corso del progetto. Nella fase iniziale di analisi tecnico-funzionale sarà necessario porsi delle domande chiare, alle quali trovare risposte altrettanto chiare e condivise, e definire delle best practice sempre applicabili nel tempo.

1. Focus group, interviste, analisi preliminare su esigenze e contesti.

L’usabilità è fondamentale. Avere un software che non rispecchi competenze e desideri degli utenti significa creare distacco e frustrazione. Coinvolgere tutti nella fase di analisi e sperimentazione è fondamentale, specie in un’ottica di lavoro agile e con approccio Dev&Ops. Allo stesso modo, condurre stress test dedicati prima del rilascio di un software è fondamentale.

2. Ottimizzazione delle risorse computazionali

Le analisi preliminari e il dimensionamento delle risorse servono a raccogliere i requisiti prestazionali e attesi, per poterli poi valutare periodicamente con performance test da concordare con i responsabili del business.

3. Sicurezza dei dati

La pervasività delle applicazioni software e l’emergere di nuovi servizi (IoT, Big Data) applicati a diversi settori come healthcare, servizi bancari, finanziari, rendono la protezione delle informazioni una componente fondamentale di ogni attività. Il software deve essere compatibile con le certificazioni in vigore e rispondente in maniera adeguata e soddisfacente ai test di intrusion.

4. Open Source

Il vantaggio di avere una soluzione open source e cloud native, senza vincoli con l’infrastruttura è rilevante. Le soluzioni dovrebbero essere nativamente cloud e dovrebbero permettere installazioni sia on premise che in cloud pubblici o privati.

Una volta che queste domande sono state poste, occorre definire un piano strategico condiviso per pianificare tutte le azioni necessarie ed opportune a progettare la qualità del prodotto, controllare lo sviluppo e valutare i risultati lungo l’intero ciclo di vita del progetto.

Leader per le Digital Experience Platforms

Leggi il Gartner Magic Quadrant per scoprire perchè gli analisti hanno riconosciuto Liferay come Leader per l'ultimo decennio. Accedi alla tua copia gratuita del report.

Ricevi il report  
Related Content
1c6c2028-b3ed-43de-80f3-9869ff2ac256
Liferay e IBM Cloud for Financial Services, per una migrazione sicura delle banche al cloud
1 Min Read
December 17, 2021
5303fecf-6a86-4b72-b395-3f443c6a0fe2
Come l’open banking cambia la user experience
3 Min Read
December 17, 2021
Home
 / 
Blog
 / 
 / 
Le best practice per un software di qualità
Text
4 Min Read

Le best practice per un software di qualità

Image
Share

Da qualche anno i software provider si stanno spostando sempre più verso una proposta di soluzioni basate su cloud. Oggi si sente parlare anche di SaaS 2.0, cioè della verticalizzazione del SaaS, ad esempio nel settore dell’agricoltura, della logistica, della gestione dei rifiuti, ma anche delle nuove soluzioni per il settore finanziario come chatbot e i robot advisor. Per fare tutto questo occorre un software che sia semplice da sviluppare, integrabile e altamente scalabile.

Architetture component-based, cloud computing, container, Agile, DevOps o DevSecOps, microservizi, serverless (IaaS o PaaS) sono tutti strumenti che mirano a trasformare il modo di realizzare il software, con l’obiettivo di accelerare i tempi di sviluppo e supportare l'agilità delle applicazioni.

Agilità di sviluppo è il nuovo termine che racchiude i trend più operativi attinenti agli strumenti e ai processi di sviluppo che accelerano il time-to-production delle applicazioni e la fase di analisi, progettazione e sviluppo. In questo ambito, il vero ostacolo da superare è l’integrazione con i sistemi legacy.

Tutte le aziende si stanno dotando di un integration layer che sia in grado di ridurre notevolmente i tempi di sviluppo tramite API e, di conseguenza, di velocizzare l’implementazione di nuove soluzioni permettendo anche di riutilizzare codice e applicazioni già esistenti.

Oggi si sta riducendo notevolmente la quantità di nuovo codice sviluppato e si utilizzano tool dedicati per eseguire i test, con un miglioramento della velocità di rilascio di nuove funzionalità (microservizi) con il supporto di un sottoinsieme di utenti che possa testarne rapidamente l’efficacia in ottica “trial & error”. In questo senso, l’adozione di piattaforme open source racchiude un vantaggio intrinseco notevole per gestire e governare al meglio questi trend.

Fino a qualche anno fa, lo sviluppo e l’introduzione di un'applicazione erano processi complessi e lunghi, che coinvolgevano pesantemente i dipartimenti IT. Negli anni abbiamo assistito alla nascita di framework, template e piattaforme con l’obiettivo di creare un ecosistema tecnologico meno frammentato e dispendioso, che semplificasse il lavoro sia del team di progettazione e front end che di quelli più operativi come i system administrator e i back end.

Con l’evoluzione del web e delle tecnologie digitali, continua a crescere l’esigenza di costruire sistemi che permettano di condividere contenuti e dati in modo semplice, con la possibilità di accedervi in ogni momento da piattaforme diverse (web, mobile, app, social, chatbot, virtual assistant, sistemi di domotica, Internet of Things, etc.).

Proprio per questo, si tende sempre più a disaccoppiare la gestione dei contenuti – i dati - dalla parte di presentazione tramite API, andando così a creare sistemi software definiti headless. Questo nuovo approccio permette da un lato ai dipartimenti IT di essere più in linea con le esigenze e i tempi richiesti dal business e dall’altro consente alle risorse di business operative di avere a disposizione soluzioni non eccessivamente complicate con le quali costruire esperienze omnicanale, memorabili e distintive per essere sempre in linea con le richieste e l’evoluzione del mercato.

Oggi, le applicazioni devono essere sempre più personalizzate, ritagliate sulle esigenze individuali, delle imprese e dei rispettivi clienti. A questo proposito il software deve essere concepito come un insieme di moduli predefiniti, ma adattabili, che garantiscono il giusto equilibrio tra sviluppo e utilizzo e che possano essere di fatto quasi interamente gestiti anche da persone di business, quindi meno “tecniche” e questa connessione tra IT e business consentirà un miglioramento del processo decisionale e della gestione delle applicazioni fondamentali. Il concetto della qualità del software si è evoluto negli ultimi anni, aggiungendo le esigenze relative al corretto utilizzo da parte degli utenti a quelle relative al funzionamento del prodotto.

La qualità di un software è valutabile secondo criteri semplici e misurabili come:

  • Adeguatezza delle funzionalità in base alle necessità degli utenti
  • Facilità d’uso
  • Semplicità di installazione e integrazione
  • Facilità di personalizzazione
  • Prestazioni intese come tempi di risposta ed utilizzo risorse
  • Affidabilità
  • Capacità di far evolvere, aggiornare e manutenere la soluzione
  • Livello di sicurezza per accesso non autorizzati
  • Salvaguardia dei dati e garanzia di riservatezza

Tutto questo però non può prescindere dall’analisi del contesto ossia chi utilizzare il software e le motivazioni che li portano alla sua adozione. Sarà quindi necessario raccogliere informazioni relative a:

  • Profilo degli utenti: conoscenze informatiche, esperienza, dimestichezza
  • Obiettivi da raggiungere grazie al suo utilizzo: migliorare e semplificare i processi interni o esterni, velocizzare l’esecuzione di task operativi, innovare
  • Modalità operative: come si opera oggi e come verranno utilizzate le nuove soluzioni

Oggi è più che mai fondamentale definire una strategia iniziale e una governance manageriale chiara per evitare di sottovalutare aspetti che potrebbero poi diventare pericolosi e critici nel corso del progetto. Nella fase iniziale di analisi tecnico-funzionale sarà necessario porsi delle domande chiare, alle quali trovare risposte altrettanto chiare e condivise, e definire delle best practice sempre applicabili nel tempo.

1. Focus group, interviste, analisi preliminare su esigenze e contesti.

L’usabilità è fondamentale. Avere un software che non rispecchi competenze e desideri degli utenti significa creare distacco e frustrazione. Coinvolgere tutti nella fase di analisi e sperimentazione è fondamentale, specie in un’ottica di lavoro agile e con approccio Dev&Ops. Allo stesso modo, condurre stress test dedicati prima del rilascio di un software è fondamentale.

2. Ottimizzazione delle risorse computazionali

Le analisi preliminari e il dimensionamento delle risorse servono a raccogliere i requisiti prestazionali e attesi, per poterli poi valutare periodicamente con performance test da concordare con i responsabili del business.

3. Sicurezza dei dati

La pervasività delle applicazioni software e l’emergere di nuovi servizi (IoT, Big Data) applicati a diversi settori come healthcare, servizi bancari, finanziari, rendono la protezione delle informazioni una componente fondamentale di ogni attività. Il software deve essere compatibile con le certificazioni in vigore e rispondente in maniera adeguata e soddisfacente ai test di intrusion.

4. Open Source

Il vantaggio di avere una soluzione open source e cloud native, senza vincoli con l’infrastruttura è rilevante. Le soluzioni dovrebbero essere nativamente cloud e dovrebbero permettere installazioni sia on premise che in cloud pubblici o privati.

Una volta che queste domande sono state poste, occorre definire un piano strategico condiviso per pianificare tutte le azioni necessarie ed opportune a progettare la qualità del prodotto, controllare lo sviluppo e valutare i risultati lungo l’intero ciclo di vita del progetto.

Leader per le Digital Experience Platforms

Leggi il Gartner Magic Quadrant per scoprire perchè gli analisti hanno riconosciuto Liferay come Leader per l'ultimo decennio. Accedi alla tua copia gratuita del report.

Ricevi il report  
Originally published
February 10, 2020
 last updated
December 17, 2021
Topics:

See how you can build a solution fit for your needs

1400 Montefino Avenue
Diamond Bar, CA 91765
USA
+1-877-LIFERAY
Built on Liferay Digital Experience Platform