Skip to main content

Allo stesso modo in cui gli esseri umani attraversano diverse fasi della loro vita, anche i prodotti software seguono un percorso simile. Questo processo viene spesso definito ciclo di vita di rilascio del software.

Ci sono periodi di tempo ben definiti associati alle diverse fasi del ciclo di vita o alle “fasi di sviluppo” all’interno delle applicazioni, ma può essere difficile prevedere quando una fase termina e ne inizia un’altra. Ogni fase ha il proprio insieme distintivo di compiti e richieste da parte di diversi reparti aziendali, quindi è importante che i product manager comprendano ogni fase per poter guidare con successo l’azienda attraverso il ciclo di vita di rilascio del software.

Nel corso di questo articolo, aggiungerò dei commenti sulle mie esperienze nella vendita e nell’integrazione di BankerBox, una società FinTech SaaS per investment banker, in SS&C Intralinks insieme al mio co-fondatore, in relazione alle varie fasi dello SRLC.

Want more from The CPO Club?

Sign up for a free membership to complete reading this article:

Step 1 of 2

This field is for validation purposes and should be left unchanged.
Name*
This field is hidden when viewing the form

Cos’è un ciclo di vita di rilascio del software (SRLC)?

Il ciclo di vita di 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 suoi rilasci, dalla sua concezione fino alla versione finale rilasciata. La durata di questo ciclo varia in base a diversi fattori, come il tipo di prodotto, il suo utilizzo previsto e le norme di sicurezza, conformità e standard del settore.

Ad esempio, le applicazioni software hanno normalmente un ciclo di vita più breve rispetto alla maggior parte degli altri prodotti perché nuove funzionalità e miglioramenti vengono rilasciati frequentemente con metodologie Agile per soddisfare la domanda di mercato in evoluzione e le nuove tendenze tecnologiche.

È simile al ciclo di vita dello sviluppo del software (SDLC), che rappresenta la struttura utilizzata per lo sviluppo di prodotti software. La differenza tra questi due cicli di vita è che l’SDLC descrive solo il processo di sviluppo e progettazione del software, mentre il ciclo di vita di rilascio copre non solo lo 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 garantire che non causino più problemi di quanti ne risolvano. Un ciclo di vita di rilascio del software prevede un piano chiaro per ottenere un processo di rilascio di successo attraverso una corretta pianificazione, test e correzione di errori.

Le aziende dovrebbero utilizzare il ciclo di vita di rilascio del software per pianificare in anticipo quando e come aggiorneranno la loro applicazione web o le app nel tempo. L’implementazione di corrette pratiche di gestione dei rilasci consente di mantenere un prodotto solido che soddisfi continuamente sia le esigenze degli utenti, la funzionalità principale, sia gli standard di settore (questo è anche qualcosa per cui l’IA nella gestione dei rilasci può essere d’aiuto). Questo permette di mantenere un prodotto robusto, che continuerà a soddisfare sia le necessità degli utenti, le funzionalità principali e gli standard del settore.

Le 6 fasi del ciclo di vita di rilascio del software

Esistono diverse fasi nel ciclo di vita di rilascio del software che possono essere utilizzate a seconda del tipo di sistema sviluppato e delle esigenze del team di sviluppo.

Le “fasi” rappresentano dei traguardi nello sviluppo di un prodotto e permettono al team di sviluppo e ai project manager di monitorare i progressi. Consentono anche ai team di sviluppo di identificare tendenze nelle app e applicazioni web e di effettuare verifiche che i miglioramenti vengano introdotti attraverso iterazioni nel tempo. Generalmente si distinguono le seguenti sei fasi:

We’ve collected the goods — AI prompts, exclusive deals, and a library of resources for product leaders. Unlock your account for access.

We’ve collected the goods — AI prompts, exclusive deals, and a library of resources for product leaders. Unlock your account for access.

This field is for validation purposes and should be left unchanged.
Name*
This field is hidden when viewing the form

1. Versione Pre-Alpha

La prima fase del ciclo di vita di rilascio del software è la Pre-Alpha. Questa fase è completamente focalizzata sullo sviluppo del prodotto piuttosto che sul marketing e il rilascio pubblico. Comprende tutte le azioni svolte durante lo sviluppo iniziale prima delle attività di test. Le fasi più comuni della pre-alpha sono: analisi, progettazione, sviluppo e test unitari.

Una parte fondamentale della versione pre-alpha consiste nell’identificare in che modo il software debba evolversi per essere pronto a rilasci più ampi, come la versione alpha o la beta. Il team di sviluppo deve implementare solidi test del software, verifiche di usabilità e automazione per garantire transizioni stabili tra le diverse fasi del ciclo di vita di rilascio del software.

Con la soluzione SaaS che io e il mio co-fondatore abbiamo integrato in SS&C Intralinks, avevamo già effettuato e superato la fase Pre-Alpha. Avevamo un’applicazione funzionante, strutturata, progettata e sviluppata. Tuttavia, è importante sottolineare che la definizione delle attività di Analisi, Progettazione, Sviluppo e Test Unitari di una piccola società software può certamente differire dalla prospettiva e dal livello di rigore applicato da una grande impresa in questi passaggi.

Le 4 fasi per avviare la versione Pre-Alpha

Analisi: è la fase iniziale del ciclo di vita di rilascio del software o SRLC che consiste nello studio dettagliato dei problemi e dei requisiti di un sistema. Include l’analisi dei requisiti degli utenti, delle funzionalità critiche, l’identificazione delle aree problematiche, la preparazione di rapporti di fattibilità e la creazione dell’SRS (Specifiche dei Requisiti Software).

Progettazione: in questa fase, i team di sviluppo elaborano una soluzione per il problema identificato nella fase di analisi. Questa fase comporta la stesura di un documento di progettazione di alto livello e di mock-up che spiega come implementare il prodotto software. Il documento di progettazione evidenzia i passaggi fondamentali da seguire per realizzare l'applicazione web.

Se stai lavorando su layout o flussi dell’interfaccia utente, questi strumenti per prototipazione di design responsive possono aiutarti a testare rapidamente le idee prima di passare allo sviluppo. Il documento di progettazione evidenzia i passaggi fondamentali da seguire per realizzare l'applicazione web.

Sviluppo: questa è la fase di codifica vera e propria, in cui un team di sviluppo trasforma le specifiche dei requisiti in un prodotto software concreto. Una volta completata la codifica, gli sviluppatori eseguono test e gestiscono le correzioni dei bug il prima possibile.

Unit testing: questa attività viene svolta dagli sviluppatori prima di consegnare il proprio modulo al team di sviluppo QA (Quality Assurance) per il successivo processo di test. In questa fase, gli sviluppatori verificano ogni singola riga del codice sorgente per assicurarsi che il codice funzioni correttamente prima dell’integrazione nell’intera applicazione.

2. Versione Alpha

La fase alpha rappresenta la prima lettera dell’alfabeto greco, ed è anche un nome in codice per la fase di sviluppo che si svolge prima del lancio di un prodotto. Gli sviluppatori di software utilizzano i termini "alpha" o “versione alpha” per descrivere un software che si trova nella sua prima fase di test.

L’alpha testing viene effettuato da dipendenti interni o sviluppatori all’interno dell’organizzazione. Questo tipo di test viene svolto presso il sito dello sviluppatore e non del cliente. Il test alpha viene condotto dopo il completamento del system testing e prima della beta. Questo test serve a individuare bug o difetti relativi a usabilità, funzionalità e coerenza.

In questo tipo di test, un gruppo di persone chiamate 'tester' esegue operazioni simili a quelle degli utenti finali e poi segnala qualsiasi problema riscontrato. L’obiettivo principale dell’alpha testing è garantire che tutti i moduli siano integrati correttamente e funzionino come previsto.

Quando abbiamo affrontato la fase Alpha per BankerBox, abbiamo contattato colleghi del settore prodotto, software e, nel nostro caso (costruendo una soluzione per banche), diversi investment banker e contatti nell’alta finanza.

Il software in versione alpha è completo nelle funzionalità ma probabilmente presenta dei bug. L’obiettivo dell’alpha testing è migliorare il prodotto individuando i problemi prima della fase beta e aggiungendo eventuali modifiche suggerite dai feedback alpha.

3. Versione Beta

La fase beta, che prende il nome dalla seconda lettera dell’alfabeto greco, è il nome in codice che indica che un prodotto software ha raggiunto la seconda fase di test ed è pronto per l’utilizzo esterno da parte di clienti o utenti, spesso chiamati “beta tester”. Alcune organizzazioni indicano questa fase come “Early Adopter”.

Dopo il rilascio di una versione beta, solitamente vengono effettuati test più intensi rispetto alla fase alpha. Ciò consente alle aziende di valutare quanto bene il software funziona in condizioni reali.

Una volta che SS&C Intralinks ha acquisito BankerBox, abbiamo implementato rapidamente alcuni punti chiave di integrazione tra il nostro software e i sistemi più ampi dell’azienda (autenticazione, cloud server, ecc.). Poi abbiamo fatto demo e collaborato con diversi clienti aziendali per invitarli a “beta testare” questa soluzione dal vivo su un’operazione di M&A.

Questo è stato un ottimo modo per ricevere feedback, costruire una relazione con il cliente e individuare aree in cui il software doveva evolversi per soddisfare i requisiti e il “livello richiesto” per una Release Candidate (RC) o per la General Availability (GA).

In questo tipo di test, i clienti forniscono preziosi feedback sul fatto che il prodotto o l’app soddisfi le loro aspettative in termini di funzionalità, usabilità, prestazioni, affidabilità, scalabilità, e così via. I feedback forniti dagli utenti finali aiutano a migliorare l’esperienza d’uso e correggere eventuali 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 beta testing può farlo. Questo può aiutare gli sviluppatori a individuare e correggere rapidamente i bug nel prodotto, poiché i feedback di più utenti possono evidenziare i problemi.
  • Beta chiusa: in questa fase, viene selezionato un mercato target con gruppi di persone specifici che sono i tester. Il mercato target aiuta a focalizzare i test del software su aree di particolare interesse e garantisce che tutto funzioni secondo le esigenze dei consumatori target.

4. Release Candidate

Una Release Candidate (RC) è una versione pre-rilascio del software che si sta preparando per il rilascio finale (in fase RC) al pubblico. Viene talvolta definita anche come “Disponibilità controllata”. Anche se può includere tutte le funzionalità previste e funzionare come atteso, è ancora soggetta a modifiche, anche sostanziali, in base ai feedback ricevuti.

Gli sviluppatori possono rilasciare diverse release candidate prima della versione definitiva per assicurarsi che il programma non si blocchi sotto carico elevato, non presenti perdite di memoria rilevanti, ecc.

5. Disponibilità Generale

La disponibilità generale (GA) indica che un prodotto o un servizio è stato reso disponibile per l'acquisto dalla maggior parte dei clienti (tipicamente a livello globale), solitamente tramite canali commerciali. Nell'ingegneria del software, questa espressione si riferisce solitamente a un'applicazione web o a un'app che è disponibile per tutti gli utenti target. In questa fase, eventuali aggiornamenti o ulteriori lavori di sviluppo sul prodotto sono finalizzati a potenziarne le funzionalità e le prestazioni, per renderlo più appetibile per i clienti.

Una volta che BankerBox, ora “Deal Marketing” sotto il nuovo marchio, ha raggiunto la Disponibilità Generale, siamo stati in grado di scalare la soluzione per clienti in tutta l’America del Nord e raccogliere feedback preziosi, numeri di utilizzo, scalabilità, ecc. per validare l'aderenza al mercato del prodotto, prima di passare all’ultima fase del ciclo di vita del rilascio software, ovvero il rilascio in produzione.

6. Rilascio in Produzione

Una release stabile è una versione di un pacchetto software che è stata testata e verificata. È l'ultima (e talvolta finale) versione di un programma che si considera sicura per l’uso pubblico. Questo tipo di versione viene anche chiamata “Stabile”.

Quando un software o un’applicazione web entra in questa fase, segnala all’organizzazione più ampia e al mercato il livello di prontezza del tuo prodotto. In SS&C Intralinks ho legato iniziative trasversali chiave, come responsabile dell’area prodotto, a queste fasi.

Durante la fase di Rilascio in Produzione siamo riusciti a definire una strategia di offerta, lanciare le attività complete di marketing e vendita e approntare il supporto necessario per assistenza clienti, site reliability engineering e altri reparti per garantire il successo del prodotto. 

Questo viene considerato un prodotto completo secondo la maggior parte degli standard, anche se potrebbe presentare qualche piccolo problema considerato accettabile. In alcuni casi, come per Linux, esistono due tipi di release stabili: LTS (supporto a lungo termine) e release stabili regolari.

  • Release Stabili regolari - sono il tipo di versione più comune che incontrerai. Sono facili da installare (parlando di software per OS) e, come suggerisce il nome, sono stabili. Se vuoi testare del software in un ambiente di produzione, questo è il tipo di versione che di solito utilizzi. Le applicazioni web si riferiscono spesso alle release stabili regolari come "Major" release (versioni principali).
  • Release LTS (supporto a lungo termine) - sono specificamente progettate per l’uso prolungato in ambienti di produzione. Queste versioni hanno un ciclo di vita più lungo rispetto a quelle stabili standard (il tempo medio fra due release LTS è di tre anni). Questo significa che sono state testate esaustivamente e sono considerate più sicure delle release stabili regolari.

Considerazioni Finali

Comprendere le varie fasi del ciclo di vita di rilascio software di un prodotto è un ottimo modo, per un product manager, di allinearsi e collegare le attività trasversali e legate ai clienti alle diverse fasi del SRLC. Questo permette una segmentazione ordinata del prodotto nel più ampio insieme di obiettivi aziendali, strategie e iniziative.

Sfruttare queste fasi come punti di “trigger” mi ha permesso di integrare con successo il mio prodotto in una grande azienda enterprise, sincronizzando i vari momenti per garantire il successo sul mercato.

Una volta completate le fasi del SRLC, il prodotto ha attraversato i relativi cicli di vendita e crescita e l'organizzazione rileva segnali che il prodotto è in fase di dismissione, inizia il ciclo di vita della manutenzione, che include:

  • correzione dei bug segnalati dal cliente nella fase di deployment,
  • aggiunta di alcune nuove funzionalità, oppure
  • modifiche a funzionalità esistenti come richiesto dal cliente in base a esigenze in evoluzione e all'avanzamento tecnologico.

Infine, a un certo punto, tutti i prodotti software raggiungono la fine del ciclo di vita e non vengono più supportati dagli sviluppatori.

Per saperne di più sulle best practice di product management e sviluppo prodotto, assicurati di iscriverti! Alla prossima.

Approfondimenti correlati:

Lista degli strumenti correlati: Strumenti per la gestione dei rilasci software

Altri articoli consigliati: