# Fases de desenvolupament del programari

En l'enginyeria del programari el terme fases de desenvolupament s'utilitza per a expressar com ha progressat el desenvolupament d'un programari i quant de desenvolupament pot requerir. Cada versió important d'un producte passa generalment a través d'una etapa en què s'agreguen les noves característiques (etapa alfa), després una etapa on s'eliminen errors activament (etapa beta), i finalment una etapa on s'han tret tots els bugs importants (etapa estable).
Es poden també distingir etapes intermèdies també. Les etapes es poden anunciar i regular formalment pels desenvolupadors del producte, però els termes es fan servir de vegades de manera informal per descriure l'estat d'un producte. Moltes companyies fan servir noms en clau per a les versions abans del llançament d'un producte, encara que el producte i les característiques reals són rarament secretes.
En el desenvolupament de programari lliure és normal utilitzar la terminologia numèrica major.menor.micro, on cada terme té un significat específic:
* major: Són les noves característiques de gran abast i, per tant, excepcionals. Només es considerarà un canvi en el nombre major quan hi hagi certes incompatibilitats de programari que així ho requereixin. Els canvis no tenen un període fixat i acostumen a durar força temps amb el mateix nombre.
* menor: Són els nombres que canvien en incorporar noves funcions a un determinat programari. Els canvis s'acostumen a produir cada 18 mesos a partir de la branca en desenvolupament.
* micro: Són les noves versions en què es corregeixen els errors del nombre micro anterior. El període de cada un sol ser d'uns 6 mesos, tot i que és fàcil que canviï més sovint per la correcció d'errors. Són les versions emprades en la branca de manteniment.

## Pre-alfa

Pre-alfa es refereix a totes les activitats realitzades durant el projecte de programari abans de les proves. Aquestes activitats poden incloure l'anàlisi de requeriments, el disseny de programari, desenvolupament de programari i proves unitàries. En el desenvolupament de codi obert hi ha diversos tipus de versions pre-alfa. L'etapa de versions inclouen conjunts específics de funcions i són alliberats tan aviat com la funcionalitat és completa. El nom deriva d'alfa, la primera lletra de l'alfabet grec.

## Alfa

La fase alfa és la primera fase per començar les proves de programari. En aquesta fase, els desenvolupadors generalment proven el programari usant proves de caixa blanca. La validació addicional es realitza mitjançant les proves de caixa negra o proves de caixa grisa per un altre equip de proves. Passant a les proves de caixa negra dins de l'organització que es coneix com a versió alfa.
La disponibilitat de versions alfa és poc habitual en el programari de propietat. Per contra, el programari de codi obert és molt comú alliberar versions alfa, sovint es distribueixen com a recordatori pels desenvolupadors per començar a desenvolupar totes les característiques semàntiques que inclourà el codi font. La fase alfa generalment acaba amb una característica de congelació, el que indica que no s'afegiran més funcions al programari per passar a la fase beta. En aquest moment, el programari es diu que és de característica completa.

## Beta

Una versió beta representa generalment la primera versió completa del programa informàtic o d'un altre producte, que és possible que sigui inestable però útil perquè les demostracions internes i les inspeccions prèvies seleccionin a clients. Alguns desenvolupadors es refereixen a aquesta etapa com a l'inspecció prèvia (preview) o com una inspecció prèvia tècnica (technical preview "TP"). Aquesta etapa comença sovint quan els desenvolupadors anuncien una congelació de les característiques del producte, indicant que no seran agregades més característiques a aquesta versió i que només es faran petites edicions o es corregiran errors.
Les versions beta estan en un pas intermedi en el cicle de desenvolupament. Els desenvolupadors les llancen a un grup de provadors o betatesters (de vegades el públic en general) per a una prova d'usuari. Els provadors divulguen qualsevol error que troben i de vegades aporten característiques de menor importància que volguessin veure en la versió final.
Quan una versió beta arriba a estar disponible per al públic en general, sovint és extensament provada pels experts o gent familiaritzade amb versions anteriors, com si el producte estigués acabat. Generalment els desenvolupadors de les versions betes de programari gratuït o de codi obert les llancen al públic, mentre que les versions beta propietàries van a un petit grup de provadors. Al febrer del 2005, ZDNet va publicar un article sobre el fenomen recent de les versions beta que romanien sovint per anys i que eren utilitzada com si estiguessin en nivell de producció. Tant Gmail com Google News van estar en beta durant uns quants anys. Aquesta tècnica pot també permetre a un desenvolupador retardar l'oferiment de suport total o la responsabilitat d'edicions restants. Els receptors de betes altament propietàries poden haver de signar un acord de no revelació.
Com que aquesta és la segona etapa del cicle de desenvolupament que segueix a l'etapa alfa, aquesta es nomena amb la següent lletra grega beta.

### Origen dels termes "alfa" i "beta"

El terme "test beta" aplicat al programari prové d'un primer test de maquinari d'IBM que es remunta a les màquines de tabulació i ordenació de targetes perforades. El maquinari passava primerament per la fase de test alfa per provar la seua funcionalitat preliminar i la viabilitat de producció a petita escala. Després es feia un test beta per verificar si realment realitzava correctament les funcions que havia de fer i per saber si es podria fabricar d'acord amb les exigències del mercat. Seguidament es feia un test c per comprovar la seguretat. Amb l'arribada dels ordinadors programables i el primer programari compartible, IBM utilitzà la mateixa terminologia per a les proves de programari. Els tests beta els realitzaven persones o grups diferents als desenvolupadors. Com que altres empreses començaren a desenvolupar programaris per al seu ús propi i també per a la seua distribució, aquesta terminologia va romandre i ara és part del nostre vocabulari habitual.

## Versió candidata a definitiva (RC)

Una versió candidata a definitiva, candidata a versió final o candidata pel llançament, encara que més coneguda pel seu nom en anglès release candidate, comprèn un producte final, preparat per ser publicat com a versió definitiva llevat que apareguin errors que ho impedeixin. En aquesta fase el producte implementa totes les funcions del disseny i es troba lliure de qualsevol error que suposi un punt mort en el desenvolupament. Moltes empreses de desenvolupament utilitzen sovint aquest terme. Altres termes relacionats inclouen les lletres gamma, delta (i potser més) per a versions que estan pràcticament completes però encara en proves i la lletra omega s'utilitza en les versions que es creu que estan lliures d'errors i es troben en el procés final de proves. Gamma, delta i omega són, respectivament, la tercera, quarta i última lletres de l'alfabet grec.

## Versió de disponibilitat general (RTM)

La versió de disponibilitat general (també anomenada "daurada") d'un producte és la seva versió final. Normalment és gairebé idèntica a la versió candidata final, amb algunes correccions d'últim moment. Aquesta versió és considerada molt estable i relativament lliure d'errors amb una qualitat adequada per a una distribució àmplia i usada per usuaris finals. En versions comercials, pot estar també signada perquè els usuaris finals verifiquin que el codi no ha estat canviat des de la seva sortida. L'expressió que un producte «s'ha daurat» vol dir que el codi ha estat completat i que entra en la fase de producció industria i serà a la venda properament.
El mot daurat es refereix anecdòticament al «disc mestre d'or» que servia per enviar la versió final d'un disc fonogràfic als fabricants per a produir les còpies en vinil, una herència de la indústria musical. En alguns casos, però, el disc mestre es feia d'or, tant per l'estètica com per la resistència a la corrosió.
Microsoft i altres utilitzen el terme release to manufacturing (RTM) per referir-se a aquesta versió, i release to Web (RTW) per a productes lliurement descarregables.

## Estable/Inestable

En la programació de codi obert els números de les versions, o els termes estable i inestable, normalment distingeixen les fases del desenvolupament. En el passat, el nucli de Linux utilitzava el número de versió per denotar si una versió era estable o inestable. Les versions eren formades per quatre xifres, separats per un punt. Una xifra senar en el segon número de la versió indicava una versió inestable. Avui en dia s'ha abandonat aquesta convenció, i totes les versions són estables independentment del nombre de versió. A la pràctica l'ús de nombres parells i imparells per indicar l'estabilitat d'un producte es va utilitzar per molts altres projectes de programari lliure.
Aquest concepte també s'aplica al programari empaquetat en algunes distribucions Linux com Debian, de manera que hi ha una branca o conjunt de paquets considerats estables i una altra branca considerada inestable. Aquesta última branca aporta versions de programes més recents que l'estable, però que no estan tan provats.

## Fi del producte

De vegades, les empreses de programari deixen de distribuir productes i no ofereixen més actualitzacions. En aquest moment, es diu que el producte es troba en un estat de legacy, vintage o final de la vida. Per exemple, el 15 d'agost de 2007, Apple va anunciar que AppleWorks havia aplegat al estatus de final de la vida útil. En altres productes (més relacionats amb programari de desenvolupament, com per exemple motors gràfics) quan arriba el final de vida útil passen a ser gratis i des del punt de vista de petits estudis o desenvolupadors de programari això és molt profitós. Es podria dir que en aquests productes s'esgoten el temps en què són útils i passen a ser programari lliure.

## Impacte de la World Wide Web

A mesura que Internet ha desmaterialitzat la distribució de programari, les empreses són més flexibles per a l'ús de la paraula beta.
Al febrer de 2005 ZDNet va publicar un article sobre el fenomen que una versió beta sovint roman durant anys i s'utilitza com si fos a nivell de producció, despectivament anomenada «beta perpètua» com per exemple Gmail i Google News. Google News va deixar la versió beta al gener del 2006, seguit de Google Apps, igual que Gmail, el juliol de 2009.
Aquesta tècnica podria permetre a un desenvolupador retardar el llançament final oferint suport i la responsabilitat de les qüestions pendents. En el context de la Web 2.0, la gent parla fins i tot de betes perpètues quan un programari està destinat a romandre en estat beta. A més, beta s'utilitza a vegades per a indicar alguna altra cosa, com ara una versió candidata, o una forma de demostració de temps limitat, o tècnica de màrqueting.

## Referències

* 1 2 3 «Guia del desenvolupador de Python. Cicle de desenvolupament. Etapes» (en anglès).
* ↑ «Encyclopedia definition of alpha version». PC Magazine. Arxivat de l'original el 2011-04-27. [Consulta: 12 gener 2011].
* ↑ news.zdnet.com Arxivat 2008-05-15 a Wayback Machine. (anglès)
* ↑ «Waiting with Beta'd Breath TidBITS #328 (May 13, 1996)». Arxivat de l'original el 2006-05-15.
* ↑ «Google Apps is out of beta (yes, really)». Google Blog. Google, 07-07-2009. [Consulta: 12 gener 2011].
* ↑ The inconvenient truths behind betas

## Vegeu també

* Manteniment de programari
* Proves de programari