Ex ingegnere Apple: “Vi spiego perché iOS 13 e macOS Catalina hanno diversi bug”

Un ingegnere che ha lavorato per 18 anni in Apple ha condiviso alcune curiosità su come vengono gestiti i bug software in azienda.

Le ultime versioni di iOS e macOS portano diverse novità, ma anche alcuni bug sia funzionali che di sicurezza che hanno obbligato Apple a rilasciare subito degli aggiornamenti correttivi. Come viene gestito il processo di gestione e correzione dei bug all’interno dell’azienda?

apple bug

Come saprete, sia iOS 13 che macOS Catalina si sono presentati con alcuni bug, sia funzionali che di sicurezza. Per quanto riguarda macOS Catalina, ad esempio, diversi utenti hanno riscontrato non solo problemi di usabilità, ma anche l’impossibilità di completare il processo di installazione. Apple ha già corretto o correggerà a breve la gran parte di questi problemi, ma viene da chiedersi come mai le nuove distribuzioni di iOS e macOS non vengano rilasciate senza problemi – almeno quelli più importanti – fin dall’inizio.

David Shayer ha cercato di rispondere a questo dubbio. Shayer non è un ingegnere qualsiasi e non parla per sentito dire, visto che ha lavorato per 18 anni come ingegnere software in Apple. Insomma, sa esattamente di cosa sta parlando e ci offre un punto di vista molto preciso su come Apple gestisce i bug dei propri sistemi operativi.

Una delle cose più curiose riguarda proprio il processo interno in Apple per quanto riguarda i bug più vecchi, che hanno una priorità molto più bassa rispetto ai bug recenti:

Se un ingegnere trova accidentalmente un bug, si parla di “regression”. Ci si aspetta che quel problema venga condiviso internamente e poi risolto.

Ma se presenti una segnalazione di bug e l’ingegnere addetto al controllo di qualità determina che quel bug esisteva anche nelle versioni precedenti del software, allora viene contrassegnato come “not a regression”. Per definizione, non è un nuovo bug, è un vecchio bug. Le probabilità che venga risolto sono molto basse. Anzi, è probabile che nessun ingegnere venga mai assegnato alla soluzione di quel problema.

Non tutti i gruppi interni in Apple lavorano in questo modo, ma molti lo fanno. Questa cosa mi faceva impazzire. Un team aveva persino realizzato delle magliette con la scritta “Not a Recression”. Se un bug non è una “regression”, allora non è necessario risolverlo. Ecco perché il bug del caricamento delle foto di iCloud o il bug della sincronizzazione dei contatti potrebbero non essere mai corretti.

Un’altra spiegazione fornita da Shayer, e spesso trascurata, è che oggi Apple ha più clienti che mai. Inoltre, il software Apple è incredibilmente più complesso rispetto al passato. Insomma, sono lontani i tempi in cui un aggiornamento di OS X era rivolto ad una nicchia di utenti. Oggi Apple rilascia software avanzati che vengono installati su milioni di dispositivi in tutto il mondo, e in modo molto rapido:

Un moderno sistema operativo di Apple ha decine di milioni di righe di codice. Il tuo Mac, il tuo iPhone, ma anche iPad, Apple Watch, AirPods e HomePod parlano tra loro con iCloud. Tutte le app sono multi-thread e comunicano tra loro tramite internet. Testare software così complessi è uno sforzo molto impegnativo e non sempre l’obiettivo viene raggiunto.

Sarà davvero così?

Il post completo è disponibile su TidBITS.

PromoProva Audible fino a 3 mesi gratis!
Curiosità