Gestione progetti, Sviluppo software

Come scegliamo le tecnologie

Illustrazione: i marchi di alcune tecnologie che usiamo, con una scelta evidenziata

Linguaggi, framework, database, servizi cloud, modelli di intelligenza artificiale: l’offerta di tecnologie cresce ogni anno e ogni scelta ha conseguenze che durano a lungo. Uno stack (l’insieme delle tecnologie con cui è costruita un’applicazione) scelto bene accompagna un prodotto per anni; uno scelto male si paga in manutenzione, sicurezza e costi.

Nei nostri progetti lavoriamo con oltre 60 tecnologie, ma non abbiamo uno stack buono per tutto. Decidiamo caso per caso, seguendo dieci criteri che rendiamo espliciti, così anche il cliente può vedere perché una strada è stata preferita a un’altra.

Schema: l’analisi dei requisiti, il confronto tra le tecnologie possibili, la verifica con una prova sul campo, la scelta della soluzione di qualità e lo sviluppo del codice.

Partire dal problema

1. Requisiti del progetto

Il primo criterio è il più ovvio e anche il più trascurato: cosa deve fare il sistema, per quanti utenti, con quali vincoli di tempi di risposta, disponibilità e durata. Un gestionale che resterà in uso dieci anni ha esigenze diverse da un prototipo da mostrare tra un mese. Per questo, prima di parlare di tecnologie, mettiamo per iscritto carico atteso, integrazioni, vincoli di sicurezza e dove devono risiedere i dati.

2. Compatibilità e integrazione

Una tecnologia nuova deve convivere con ciò che c’è già: sistemi di accesso, database, infrastruttura, strumenti di reportistica. Nell’ERP Atac per Ernst & Young i microservizi sono rilasciati in container Docker su un sistema on-premise fornito dal cliente; nell’ERP Hera per Atos l’applicazione gira su Microsoft Azure, usa Azure Active Directory (oggi Microsoft Entra ID) per l’accesso e Power BI per i report.

Sicurezza e costi

3. Sicurezza

Guardiamo la storia delle vulnerabilità di un progetto, la rapidità con cui vengono corrette, gli aggiornamenti di sicurezza previsti per le versioni che useremo e il supporto a standard come OAuth2 e OpenID Connect. Una libreria abbandonata è un rischio, anche se oggi funziona. Per i dati sensibili valutiamo anche dove vengono conservati e quali garanzie offre il fornitore.

4. Costi

Il costo non è solo la licenza. Conta il costo totale: infrastruttura, ore di sviluppo, formazione e soprattutto manutenzione negli anni. Un servizio gestito costa di più a consumo, ma spesso costa meno di un sistema equivalente da far funzionare in proprio. E uno strumento gratuito ma poco diffuso può costare caro quando bisogna trovare o formare chi lo conosce.

Le persone: produttività, comunità, esperienza

5. Facilità d’uso e produttività

Documentazione chiara, strumenti di sviluppo maturi, test facili da scrivere: tutto ciò che fa lavorare il team più velocemente e con meno errori, oggi e quando qualcun altro dovrà mettere mano al codice.

6. Supporto e comunità

Una comunità ampia vuol dire risposte ai problemi, librerie pronte e professionisti disponibili sul mercato. Contano anche un calendario di rilasci pubblico, versioni con supporto a lungo termine e, dove serve, l’assistenza commerciale di un’azienda.

7. Esperienza del team

Una tecnologia che il team conosce bene riduce rischi e tempi. Non è un motivo per non imparare mai nulla di nuovo, ma va pesata: la curva di apprendimento ha un costo, e conviene metterlo in conto prima di iniziare.

Guardare avanti e verificare

8. Tendenze del settore

Seguiamo dove si muove il mercato per non puntare su una tecnologia in declino, ma non adottiamo una novità solo perché se ne parla. Una tecnologia molto recente può cambiare in fretta; in quei casi lo diciamo al cliente e prevediamo una via d’uscita. Nell’AI generativa, per esempio, modelli e strumenti cambiano nel giro di pochi mesi: per questo è prudente tenere il modello dietro un’interfaccia dell’applicazione, così si può sostituire senza riscriverla.

9. Test e proof of concept

Quando un dubbio è importante lo verifichiamo con una POC (proof of concept, un piccolo prototipo che dimostra che una soluzione funziona davvero): pochi giorni su un caso reale valgono più di molte discussioni. Misuriamo prestazioni, facilità di integrazione e qualità del risultato: due database o due modelli linguistici, per esempio, si confrontano sugli stessi dati e sulle stesse domande.

10. Strategia aziendale

Infine la tecnologia deve stare dentro la strategia del cliente: i fornitori cloud con cui ha già accordi, le competenze interne che vuole far crescere, la libertà di cambiare fornitore in futuro, i vincoli normativi sui dati.

I compromessi, in pratica

I dieci criteri raramente puntano tutti nella stessa direzione. Alcuni casi tipici:

  • Sistemi enterprise di lunga durata: framework maturi come Spring Boot per il back end e Angular per il front end offrono struttura, convenzioni condivise e rilasci pianificati; chiedono più impostazione iniziale, che si ripaga negli anni di manutenzione.
  • Progetti pilota da validare in fretta: strumenti più leggeri e servizi gestiti permettono di arrivare prima davanti agli utenti, accettando che alcune parti andranno riviste se il pilota funziona.
  • Intelligenza artificiale: l’ecosistema Python, con librerie come PyTorch, scikit-learn, Hugging Face e LangChain, è oggi il riferimento, mentre l’integrazione con i sistemi aziendali può restare in Java o TypeScript.
  • Costruire o usare un servizio: la pipeline video di Artika si basa su servizi gestiti di AWS, come Amazon Transcribe per i sottotitoli automatici e Amazon Rekognition per la moderazione dei video, invece che su componenti sviluppati e gestiti in proprio.

Se devi avviare un progetto o rinnovare un sistema esistente e vuoi capire quale stack fa al caso tuo, possiamo valutare insieme le opzioni con questi criteri, anche partendo da una POC. Contattaci e ne parliamo.

Contattaci

Hai un progetto da realizzare? Parliamone insieme.

Contattaci per una consulenza strategica per trasformare le tue idee in successi concreti.

Chiama subito: +39 081 526 9325

Benefici per te

  • Oltre 20 sviluppatori esperti
  • Metodologia Agile SCRUM
  • Microservizi e container
  • Cloud AWS e Azure
  • Team dedicati
  • Codice su misura

Cosa succede dopo?

  1. Pianifichiamo una chiamata a tuo piacimento
  2. Facciamo un incontro di scoperta e consulenza
  3. Prepariamo una proposta

Fissa una consulenza

I campi contrassegnati con * sono obbligatori.