Audit tecnico

Software fragile: 15 segnali che indicano che un audit tecnico è urgente

Incidenti ripetuti, consegne imprevedibili, costi cloud fuori controllo: quindici segnali per capire quando fare l’audit di un’applicazione e cosa deve fornire.

La risposta in breve

Un audit tecnico diventa urgente quando i problemi si ripetono senza una causa chiara, ogni consegna è rischiosa o una sola persona comprende il sistema. Deve portare a riscontri verificabili e a priorità, prima di avviare correzioni o un rifacimento.

  • Osserva cinque aree: produzione, consegne, architettura, team e costi.
  • Un audit utile produce un rapporto prioritario e una presentazione dei risultati; le correzioni si preventivano in seguito.
  • In CUB3, l’audit di un’applicazione e di un repository costa da 2.000 a 4.000 € IVA esclusa, budget confermato dopo la definizione.
Recuperare un prodotto esistente
  • CapireCodice, accessi e percorsi
  • ProteggereBackup e versionamento
  • RilanciareFunzioni utili e test
Capire ciò che esiste prima di decidere cosa recuperare.

Prima di correggere, stabilire i fatti

Un’applicazione può funzionare e intanto diventare fragile. Gli incidenti si risolvono uno alla volta, le consegne richiedono più tempo, i costi aumentano, ma nessuno sa dire perché. A questo punto, aggiungere uno sviluppatore o avviare un rifacimento significa spesso decidere senza diagnosi.

Un audit tecnico stabilisce riscontri su codice, architettura, dipendenze, sicurezza e gestione operativa, poi li ordina per priorità. I quindici segnali qui sotto, raggruppati in cinque aree, indicano quando questo esame diventa urgente. Più segnali nella stessa area meritano attenzione.

In produzione: gli incidenti si ripetono

Questi segnali mostrano che l’applicazione non è osservabile. Senza registri utilizzabili, senza monitoraggio degli errori e senza possibilità di rollback, ogni incidente si affronta alla cieca. L’audit verifica cosa viene misurato, cosa viene salvato e cosa può essere ripristinato.

  • Gli stessi incidenti si ripresentano dopo ogni correzione.
  • Nessuno riceve un avviso prima che gli utenti segnalino un problema.
  • Il ritorno alla versione precedente è impossibile o non è mai stato testato.

Nelle consegne: ogni rilascio è un rischio

Quando un team esita a consegnare, il problema raramente dipende dalla sua motivazione. Deployment manuali, assenza di test e ambienti diversi dalla produzione rendono incerta ogni modifica. L’audit individua cosa rende rischiose le consegne e cosa andrebbe reso affidabile per primo.

  • I tempi diventano imprevedibili, anche per piccole modifiche.
  • Le messe in produzione si fanno a mano, spesso fuori dall’orario di lavoro.
  • L’elenco delle correzioni in attesa cresce più in fretta di quanto diminuisca.

Nell’architettura: una modifica ne rompe un’altra

Un codice può essere vecchio senza essere fragile. Il segnale utile è l’effetto delle modifiche: se una correzione locale rompe funzioni lontane, i confini tra le parti del sistema sono poco chiari. Dipendenze obsolete aggiungono un rischio di sicurezza e complicano ogni aggiornamento.

  • Una modifica locale provoca regressioni altrove nell’applicazione.
  • Alcune dipendenze non sono più mantenute o non vengono aggiornate da tempo.
  • Nessuno può affermare che il codice in produzione corrisponda al repository.

Nel team: la conoscenza dipende da una persona

Il rischio più sottovalutato è umano. Quando una sola persona sa effettuare il deployment o conosce le regole di business, la sua partenza può bloccare gli sviluppi. In Macq, sul progetto TRADEMEX, CUB3 ha impiegato un profilo che conosceva già il prodotto, per garantire la continuità dopo l’uscita di una figura chiave e trasmettere questa conoscenza ai team.

  • Una sola persona sa effettuare il deployment o comprende una parte critica.
  • Gli interlocutori tecnici cambiano spesso e il contesto si perde.
  • Non esistono né una documentazione aggiornata né una gestione centralizzata degli accessi.

Nei costi e nei rischi: il sistema pesa sull’attività

I segnali tecnici finiscono per incidere sul fatturato o sulla conformità. Una fattura cloud che aumenta senza un aumento dell’utilizzo, una richiesta del cliente impossibile da soddisfare o una domanda di sicurezza rimasta senza risposta meritano un esame prima del prossimo impegno.

  • La fattura dell’hosting aumenta senza una crescita paragonabile dell’utilizzo.
  • Alcuni impegni commerciali sono bloccati da limiti tecnici.
  • Una domanda di sicurezza o di conformità resta senza una risposta chiara.

JustWC: prima l’audit, poi correzioni basate su prove

JustWC mette in contatto professionisti in movimento, come corrieri o tecnici sul campo, con servizi igienici e punti d’acqua grazie a una WebApp a ticket. Il prodotto era in produzione, ma gli interlocutori tecnici cambiavano spesso e le richieste avanzavano lentamente. L’audit CUB3 ha riguardato il codice, le dipendenze, la sicurezza e il dimensionamento AWS.

Ha rivelato macchine sovradimensionate e problemi di sicurezza da correggere. I lavori sono stati poi ordinati in base all’impatto e al budget: correzione dei problemi di sicurezza, refactoring delle parti prioritarie, poi infrastruttura ridimensionata e descritta con Terraform. Il costo dell’infrastruttura è passato da 75 € a 18 € al mese, cioè il 76 % in meno. Questo risultato riguarda questo prodotto e il suo utilizzo; non è un risparmio garantito.

Cosa deve consegnarti un audit

Un audit utile si conclude con decisioni possibili, non con un semplice elenco di difetti. In CUB3, l’audit riguarda un’applicazione e un repository: revisione del codice e dell’architettura, esame delle dipendenze, controlli mirati di sicurezza e prestazioni, poi rapporto prioritario e presentazione dei risultati. Il budget indicativo è da 2.000 a 4.000 € IVA esclusa, confermato dopo la definizione.

Ciò che l’audit non fa conta altrettanto: non corregge i problemi, non è un penetration test e non equivale a una certificazione. Le correzioni si preventivano in seguito secondo le priorità scelte, sotto forma di recupero, configurazione DevOps o manutenzione.

  • I riscontri rimandano a elementi verificabili del codice o dell’infrastruttura.
  • Ogni raccomandazione ha una priorità e una motivazione.
  • I rischi immediati sono separati dai miglioramenti auspicabili.
  • La presentazione dei risultati permette di scegliere il seguito: correggere, recuperare o ricostruire.

Sul campo

Un progetto concreto

Un audit del codice, della sicurezza e di AWS, poi correzioni in ordine di priorità: un’infrastruttura passata da 75 € a 18 € al mese.

Il recupero di JustWC

Fonti e riferimenti