Allo stesso modo in cui gli esseri umani attraversano diverse fasi della loro vita, anche i prodotti software seguono un percorso analogo. Questo viene spesso definito ciclo di vita del rilascio del software.
Esistono periodi di tempo definiti associati alle diverse fasi del ciclo di vita o “fasi di sviluppo” delle app, ma può essere difficile prevedere quando termina una fase e ne inizia un'altra. Ogni fase presenta un insieme distinto di attività e requisiti dei vari reparti aziendali, quindi è importante che i responsabili di prodotto comprendano ogni fase per guidare con successo l'azienda attraverso il ciclo di vita del rilascio del software.
Nel corso di questo articolo, aggiungerò alcune considerazioni basate sulla mia esperienza nella vendita e nell'integrazione di BankerBox, un'azienda SaaS FinTech per banchieri d'investimento, in SS&C Intralinks insieme al mio cofondatore, collegandole alle varie fasi del SRLC.
Che cos'è il ciclo di vita del rilascio del software (SRLC)?
Il ciclo di vita del rilascio del software (SRLC) è un insieme di traguardi che descrivono le varie fasi del ciclo di vita di un software o la sequenza temporale dei rilasci, dal concepimento fino al rilascio finale completamente pronto. La durata di questo ciclo di vita varia in base a diversi fattori, come il tipo di prodotto, il suo utilizzo previsto e gli standard di sicurezza, conformità e carattere generale del settore.
Ad esempio, le applicazioni software hanno generalmente un ciclo di vita più breve rispetto alla maggior parte degli altri prodotti, perché nuove funzionalità e miglioramenti vengono rilasciati frequentemente secondo un approccio Agile, per soddisfare le mutevoli richieste del mercato e le nuove tendenze tecnologiche.
È simile al ciclo di vita dello sviluppo del software (SDLC), ovvero una struttura applicata allo sviluppo dei prodotti software. La differenza tra questi due cicli di vita è che l'SDLC descrive esclusivamente il processo di sviluppo e la progettazione del software, mentre il ciclo di vita del rilascio descrive non solo il suo sviluppo, ma anche la sua usabilità, i test e la distribuzione.
I rilasci software devono essere pianificati e testati con attenzione (idealmente da un team di test) per assicurarsi che non causino più problemi di quanti ne risolvano. Un ciclo di vita del rilascio del software stabilisce un piano chiaro per ottenere un processo di rilascio di successo attraverso un'adeguata pianificazione, test e correzione dei bug.
Le aziende dovrebbero utilizzare il ciclo di vita del rilascio del software per pianificare in anticipo quando e come aggiorneranno nel tempo la propria applicazione web o le proprie app. L'implementazione di corrette pratiche di gestione dei rilasci consente loro di mantenere un prodotto solido, in grado di soddisfare costantemente le esigenze degli utenti, le funzionalità principali e gli standard del settore (anche l'IA nella gestione dei rilasci può essere d'aiuto in questo). Ciò consente loro di mantenere un prodotto solido, in grado di soddisfare costantemente sia le esigenze degli utenti e le funzionalità principali, sia gli standard del settore.
Le 6 fasi del ciclo di vita del rilascio del software
Esistono diverse fasi dei cicli di vita del rilascio del software che possono essere utilizzate in base al tipo di sistema in fase di sviluppo e alle esigenze del team di sviluppo.
Le “fasi” segnano i traguardi nello sviluppo di un prodotto e consentono al team di sviluppo e ai responsabili di progetto di monitorare i progressi. Permettono inoltre ai team di sviluppo di monitorare le tendenze nelle app e nelle applicazioni web e di verificare che i miglioramenti vengano apportati attraverso iterazioni nel tempo. In genere comprende le sei fasi seguenti:
1. Versione pre-alfa
La prima fase del ciclo di vita del rilascio del software è la pre-alfa. Questa fase del processo è completamente incentrata sullo sviluppo di un prodotto, anziché sul suo marketing e sul rilascio pubblico. Comprende ogni attività eseguita durante lo sviluppo iniziale, prima dei test. Le fasi più comuni della pre-alfa sono l'analisi, la progettazione, lo sviluppo e i test unitari.
Una parte importante della versione pre-alfa consiste nell'identificare come l'applicazione software debba evolversi per prepararsi a rilasci più ampi, come la versione alfa o la versione beta. Il team di sviluppo deve predisporre solidi processi di test del software, usabilità e automazione per garantire transizioni stabili tra le varie fasi del ciclo di vita del rilascio del software.
Per quanto riguarda la soluzione SaaS che il mio cofondatore e io abbiamo integrato in SS&C Intralinks, avevamo già verificato e completato la fase pre-alfa. Avevamo un'applicazione funzionante, progettata a livello architetturale, ideata e sviluppata. È tuttavia importante notare che la definizione dei passaggi di analisi, progettazione, sviluppo e test unitari di una piccola azienda software può differire radicalmente dalla prospettiva e dal livello di rigore di una grande impresa per tali attività.
4 fasi per avviare la versione pre-alfa
Analisi: è la fase iniziale del ciclo di vita del rilascio del software o SRLC, che consiste nello studio dettagliato del problema e dei requisiti di un sistema. Comprende l'analisi dei requisiti degli utenti, delle funzionalità critiche, l'identificazione dell'area problematica, la preparazione di rapporti di fattibilità e la creazione delle SRS (Specifiche dei requisiti software).
Progettazione: in questa fase, i team di sviluppo elaborano una soluzione per il problema identificato durante la fase di analisi. Questa fase prevede la redazione di un documento di progettazione di alto livello e di modelli preliminari che spieghino come implementare il prodotto software. Il documento di progettazione evidenzia i passaggi fondamentali da seguire per creare l'applicazione web.
Se stai lavorando sui layout o sui flussi dell'interfaccia utente, questi strumenti di prototipazione per la progettazione responsiva possono aiutarti a testare rapidamente le idee prima di passare allo sviluppo. Il documento di progettazione evidenzia i passaggi fondamentali da seguire per creare l'applicazione web.
Sviluppo: questa è la fase effettiva di programmazione, in cui un team di sviluppo trasforma le specifiche dei requisiti in un prodotto software concreto. Una volta completata la programmazione, gli sviluppatori eseguono i test e gestiscono la correzione degli errori il prima possibile.
Test unitari: vengono eseguiti dagli sviluppatori prima di consegnare il proprio modulo al team di sviluppo QA (garanzia della qualità) per il successivo processo di test. In questa fase, gli sviluppatori controllano ogni singola riga del codice sorgente per assicurarsi che il codice funzioni correttamente prima di integrarlo nell'intera app.
2. Versione alfa
La fase alfa rappresenta la prima lettera dell'alfabeto greco ed è anche il nome in codice della fase di sviluppo che si svolge prima del lancio di un prodotto. Gli sviluppatori software utilizzano il termine "alfa" o “versione alfa” per descrivere un software che si trova nella sua prima fase di test.
Il test alfa viene eseguito da dipendenti interni o sviluppatori dell'organizzazione. Questo tipo di test viene eseguito presso la sede dello sviluppatore, ma non presso quella del cliente. Il test alfa viene condotto dopo il completamento del test del sistema e prima del test beta. Questo test viene eseguito per individuare errori o difetti relativi a usabilità, funzionalità e coerenza.
In questo tipo di test, un gruppo di persone chiamate "collaudatori" esegue operazioni simili a quelle degli utenti finali e segnala quindi eventuali problemi riscontrati. Lo scopo principale del test alfa è assicurarsi che tutti i moduli siano integrati correttamente e funzionino come previsto.
Quando abbiamo attraversato la fase alfa per BankerBox, ci siamo rivolti a colleghi del settore dei prodotti e del software e, nel nostro caso (la creazione di una soluzione per le banche), a diversi investment banker e contatti nel settore dell'alta finanza.
Il software alfa è completo dal punto di vista delle funzionalità, ma probabilmente presenta ancora degli errori. L'obiettivo del test alfa è migliorare un prodotto individuando i problemi prima che passi al test beta e aggiungendo eventuali modifiche dell'ultimo minuto suggerite dai riscontri della fase alfa.
3. Versione beta
La fase beta, che prende il nome dalla seconda lettera dell'alfabeto greco, è il nome in codice utilizzato per indicare che un prodotto software è passato alla seconda fase di test ed è pronto per l'uso esterno da parte di clienti o consumatori, spesso chiamati “collaudatori beta”. Alcune organizzazioni definiscono questa fase come fase degli “utenti che adottano per primi”.
Una volta rilasciata, una versione beta viene generalmente sottoposta a test più approfonditi rispetto alla fase alfa. Consente alle aziende di valutare le prestazioni del software in condizioni reali.
Una volta che SS&C Intralinks ha acquisito BankerBox, abbiamo rapidamente realizzato alcuni punti di integrazione fondamentali tra il nostro software e i sistemi più ampi dell'azienda (autenticazione, server remoti, ecc.). Abbiamo quindi effettuato dimostrazioni e collaborato con diversi clienti dell'azienda, invitandoli a eseguire il “test beta” della soluzione in tempo reale nell'ambito di un'operazione di M&A.
È stato un ottimo modo per ottenere riscontri, sviluppare una relazione con i clienti e individuare gli aspetti in cui il software doveva evolversi per soddisfare i requisiti e il “livello richiesto” per un candidato al rilascio (RC) o per la disponibilità generale (GA).
In questo tipo di test, i clienti forniscono un riscontro prezioso per valutare se il prodotto o l'app soddisfa le loro aspettative in termini di funzionalità, usabilità, prestazioni, affidabilità, scalabilità e così via. Il riscontro fornito dagli utenti finali contribuisce a migliorare l'esperienza utente e a correggere i problemi operativi prima del rilascio del prodotto in produzione. Esistono due tipi di fase beta:
- Beta aperta: durante questa fase, chiunque desideri partecipare al processo di test beta può farlo. Questo può aiutare gli sviluppatori a individuare e correggere gli errori del prodotto in modo rapido e semplice, poiché il feedback di più utenti può portare alla luce eventuali problemi.
- Beta chiusa: in questa fase esiste un mercato di riferimento specifico, con gruppi specifici di persone che svolgono il ruolo di collaudatori. Il mercato di riferimento aiuta a concentrare i test del software su specifiche aree problematiche e contribuisce a garantire che tutto funzioni in base alle esigenze dei consumatori di riferimento.
4. Candidato al rilascio
Un candidato al rilascio (RC) è una versione preliminare del software che viene preparata per il rilascio del prodotto finale (nella fase RC) al pubblico. A volte viene definita “disponibilità controllata”. Sebbene possa includere tutte le funzionalità previste e funzionare come previsto, è ancora soggetta a modifiche, anche radicali, sulla base del riscontro ricevuto.
Gli sviluppatori possono rilasciare diversi candidati al rilascio prima di distribuire il prodotto finito, per assicurarsi che il programma non si arresti in caso di carichi elevati, non provochi perdite significative di memoria e così via.
5. Disponibilità generale
La disponibilità generale (GA) indica che un prodotto o servizio è stato reso disponibile per l'acquisto da parte della maggioranza dei clienti (in genere a livello globale), solitamente attraverso canali commerciali. Nell'ingegneria del software, questa espressione si riferisce generalmente a un'applicazione web o a un'app disponibile per tutti gli utenti previsti. Durante questa fase, eventuali aggiornamenti o ulteriori attività di sviluppo sul prodotto mirano a migliorarne le funzionalità e le prestazioni, al fine di renderlo più appetibile per i clienti.
Quando BankerBox, ora “Deal Marketing” con il nuovo nome del marchio, ha raggiunto la disponibilità generale, siamo riusciti a estenderlo ai clienti di tutta l'America del Nord e a ottenere preziosi feedback, dati sull'utilizzo, scalabilità, ecc. per convalidare l'adattamento prodotto-mercato, prima di passare alla fase finale del ciclo di vita del rilascio del software: il rilascio in produzione.
6. Rilascio in produzione
Un rilascio stabile è una versione di un pacchetto software che è stata testata e verificata. È la versione più recente (e talvolta finale) di un programma considerata sicura per l'uso pubblico. Questo tipo di rilascio è anche chiamato rilascio “Stabile”.
Quando un software o un'applicazione web entra in questa fase, può indicare all'organizzazione più ampia e al mercato il livello di preparazione raggiunto dal prodotto. In SS&C Intralinks ho collegato a queste fasi le principali iniziative interfunzionali in qualità di responsabile dell'organizzazione di prodotto.
Durante la fase di rilascio in produzione siamo riusciti a definire una strategia di offerta, lanciare campagne complete di marketing e vendite e predisporre il supporto necessario nei servizi clienti, nell'ingegneria dell'affidabilità dei siti e negli altri reparti, per rendere il prodotto un successo.
Secondo la maggior parte degli standard, questo è considerato un prodotto completo, anche se potrebbe presentare alcuni problemi minori ritenuti accettabili. In alcuni casi, come Linux, esistono due tipi di rilasci stabili: LTS (supporto a lungo termine) e rilasci stabili regolari.
- Rilasci stabili regolari - sono il tipo di rilascio più comune. Sono facili da installare (quando si parla di software per sistemi operativi) e, come suggerisce il nome, sono stabili. Se si desidera testare un software in un ambiente di produzione, questo è il tipo di rilascio che si utilizza generalmente. Le applicazioni web spesso indicano i rilasci stabili regolari come rilasci “Maggiori”.
- Rilasci LTS (supporto a lungo termine) - sono progettati specificamente per l'uso a lungo termine in ambienti di produzione. Questi rilasci hanno un periodo di manutenzione più lungo rispetto ai rilasci stabili standard (il tempo medio tra i rilasci LTS è di tre anni). Ciò significa che sono stati sottoposti a test approfonditi e sono considerati più sicuri dei rilasci stabili.
Considerazioni finali
Comprendere le varie fasi del ciclo di vita del rilascio del software di un prodotto è un ottimo modo per consentire a un product manager di allineare le aspettative e collegare le attività interfunzionali e relative ai clienti alle varie fasi del SRLC. Ciò permette di segmentare in modo ordinato il prodotto all'interno dell'insieme più ampio di obiettivi, strategie e iniziative aziendali.
Sfruttare queste fasi come punti di “attivazione” mi ha permesso di integrare con successo il mio prodotto in una grande azienda e di pianificare le varie attività per garantirne il successo sul mercato.
Una volta completate le fasi del SRLC, il prodotto ha attraversato i propri cicli di vendita e crescita e l'organizzazione rileva segnali che indicano che il prodotto sta entrando nella fase conclusiva, inizia il ciclo di vita della manutenzione, che include:
- la correzione dei bug segnalati dal cliente durante la fase di distribuzione,
- l'aggiunta di alcune nuove funzionalità, oppure
- la modifica delle funzionalità esistenti, come richiesto dal cliente in base alle esigenze in evoluzione e ai progressi tecnologici.
Infine, a un certo punto, tutti i prodotti software raggiungono la fine del ciclo di vita, quando non sono più supportati dai loro sviluppatori.
Per saperne di più sulle migliori pratiche di gestione e sviluppo dei prodotti, assicurati di iscriverti! Alla prossima.
Articoli correlati:
- Le 6 fasi del ciclo di vita dello sviluppo del software (SDLC)
- Come scrivere note di rilascio del software efficaci che soddisfino gli utenti
Elenco correlato di strumenti: Strumenti per la gestione dei rilasci software
Da non perdere:
