Gestione dei requisiti ed evitamento dei problemi in sistemi software di grandi dimensioni
Esperienza

Ho lavorato per più di 30 anni in grandi sistemi software. Per la maggior parte del tempo ho lavorato su apparecchiature progettate da Ericsson per le reti di telefonia mobile. Successivamente sono stato consulente per l'operatore mobile Swisscom, interfacciando tra reti pubbliche e reti speciali per i servizi di emergenza. Contemporaneamente sono stato anche consulente di standardizzazione per SES Satellites, coinvolto nell'implementazione dell'accesso satellitare alle reti mobili 5G nei gruppi di standardizzazione 3GPP che definiscono la funzionalità e l'interoperabilità dei componenti delle moderne reti di comunicazione, consentendo l'interoperabilità tra diversi operatori, utilizzando i componenti forniti da diversi produttori.

Cooperazione

Queste attività mi hanno dato un'ottima capacità nella gestione dei fabbisogni in fase di gara; lavorare con i progettisti delle soluzioni; coordinare la fase di progettazione; assistenza nella realizzazione e implementazione; e verificare che il sistema finale soddisfi effettivamente i requisiti originali; così come la risoluzione dei problemi che emergono in tutte queste attività e l'evoluzione di queste soluzioni per comprendere l'estensione e l'aggiornamento dei requisiti.

Elusione del problema

Ho acquisito molta esperienza nel capire come evitare problemi quando le fasi o i componenti della soluzione sono forniti da fornitori diversi in varie località con background culturali diversi. Le mie attività si sono svolte generalmente nei sistemi di telecomunicazione dove esiste un alto grado di standardizzazione per garantire l'interoperabilità: due prodotti di fornitori diversi, ciascuno conforme agli standard, dovrebbero essere in grado di funzionare insieme.

Sono molto interessato a prestare assistenza in settori non legati alle telecomunicazioni, come quello bancario o assicurativo sanitario, dove c'è meno standardizzazione, ma potrei trarre vantaggio dal modo di lavorare in un ambiente altamente standardizzato, forse anche creando una "standardizzazione virtuale" che potrebbe ridurre i problemi ed essere utile nel mondo odierno caratterizzato da frequenti fusioni e acquisizioni.

Esempi di recenti problemi gravi nei sistemi software
Disastro dell'ufficio postale del Regno Unito

Sono solo un osservatore, leggo i giornali e sono depresso dalla tragedia umana e stupito dalla mancanza di professionalità che deve essere rimasta assopita negli aspetti tecnici:

  • Qual è stata la procedura di gara?
  • In che modo il fornitore vincitore ha dimostrato la sua comprovata esperienza sul campo?
  • Come è stata valutata la conformità tecnica e come è stata data la priorità alle promesse finanziarie o politiche?
  • Quali erano i requisiti di sicurezza e di rilevamento delle frodi? 
  • Più specificamente, come ha fatto il sistema a rilevare i subpostmaster "deformati" e come è stato testato? I test hanno comportato la creazione di postmaster deformati e "sospetti" e sono stati rilevati correttamente? Quale percentuale di postmaster piegati è prevista?
  • Sembra che ci siano circa 10.000 uffici secondari e circa 900 procedimenti giudiziari. Ora so che non sto davvero considerando il dominio del tempo qui, ma non è lontano dal 10%. Non sono uno psicologo criminale, ma mi aspetterei meno dell'1%!
  • Si dice che gli impiegati delle poste abbiano dovuto inserire alcuni dati manualmente: il sistema antifrode ha contabilizzato correttamente? Oppure l'hanno spento perché non poteva?
  • È stato effettuato un audit separato e le sue raccomandazioni sono state eseguite?
  • Il senior management ha richiesto una rendicontazione realistica degli errori rilevati e un piano temporale per la correzione?
I pagamenti internazionali non funzionano in un'app bancaria

Ho conti bancari in tre paesi e devo trasferire denaro tra di loro. L'estate scorsa l'app Android di una delle banche ha perso la capacità di effettuare bonifici internazionali (SEPA) dopo un aggiornamento. Ovviamente posso osservare, ma non posso decodificare l'app: sospetto che fosse così:

  • all'inizio i bonifici potrebbero essere effettuati lo stesso giorno, oppure se la transazione è stata inserita dopo un orario limite, il giorno successivo
  • probabilmente l'aggiornamento intendeva consentire di consentire anche la preparazione delle transazioni per l'esecuzione in un secondo momento
  • la schermata relativa aveva la data della transazione vuota e l'intenzione doveva essere quella di poter selezionare la data di esecuzione. Questo non ha funzionato. Ma potresti continuare a eseguire il pagamento, ma poiché la data era vuota non è stato effettivamente effettuato alcun pagamento (probabilmente è meglio così!)
  • Non è stato semplice convincere la banca a comprendere il loro problema (mi hanno inviato i link al loro manuale), ma alla fine sono stati d'accordo con me e hanno detto che sarebbe stato corretto nella prossima versione. Tre svincoli e sette mesi dopo è stato possibile effettuare nuovamente i pagamenti internazionali (senza miglioramenti della data di esecuzione)
  • Sul mio iPad non sono riuscito nemmeno ad arrivare alla gestione della data di esecuzione, perché c'era un errore nella gestione della valuta che avviene prima. Nello stesso arco di tempo dell'aggiornamento riuscito dell'app Android, è stato effettuato un aggiornamento per l'iPad ma la gestione della valuta non è stata corretta
  • Immagino di dover provare di nuovo le transazioni internazionali sulle mie app Android e iPad e vedere se riesco ad aggiornarlo! Generalmente li faccio alla fine di ogni mese o ogni due mesi

Allora cosa potrei fare per aiutare la banca come consulente, per far sì che situazioni del genere non si verifichino in futuro? Questo tipo di situazione non crea davvero fiducia nella banca (anche se potrei sempre effettuare i miei pagamenti essenziali utilizzando il browser Safari sul mio Mac). Anche le ultime versioni dell'app Android descrivono un gran numero di nuove funzionalità disponibili. Il sito web della banca mostra nella sezione "carriere" un numero significativo di posizioni aperte - gestione software principalmente in India. Ma forse le app vengono gestite separatamente?

  • garantire che i requisiti siano adeguatamente definiti e compresi da tutte le parti interessate
  • lavorare per verificare che le roadmap dei prodotti siano realistiche e coordinate
  • coordinare nuove funzionalità, miglioramenti e manutenzione nelle versioni delle singole app
  • garantire che le strategie di test siano in grado di dimostrare il rispetto dei requisiti
  • aumentare i test di regressione
  • aiuto nel decidere la linea d'azione nel caso in cui una parte di una versione non sia disponibile al momento giusto e con la giusta qualità per una nuova versione - ritardare la versione o ritirare parte della versione senza problemi per il resto della versione
  • gestire gli aspetti interlocali e interculturali di tutte queste attività