Softwareversies en benamingen

5 min read - 15/06/2016

Auteur
software-nummer-en-build

Softwareversies en de benaming hiervan, je staat er vaak niet bij stil. Bij het installeren van een app kijkt vrijwel niemand naar het versienummer, maar bij een update van een besturingssysteem weet je vaak wél wat het versienummer is. Denk bijvoorbeeld aan iOS 9.3.2, Android 5.1 of Windows 10. Bij softwareontwikkeling is het belangrijk om te weten wat het betekent wanneer een alfa of bèta versie wordt opgeleverd, of wanneer het tijd is om naar versie 2.0 te gaan.

Een bètaversie, je hebt het vast wel eens gezien. Denk bijvoorbeeld aan Gmail of Flickr, welke beide jarenlang in de bètafase bleven. Maar wat betekent bèta nou precies en waar komt de benaming vandaan?

Er is geen duidelijke bron aan te wijzen waar de termen alfa en bèta vandaan komen, behalve dat dit de eerste letters van het Griekse alfabet zijn. Het vermoeden bestaat dat IBM als eerste deze termen gebruikte om de fase van het hardwareproductieproces aan te geven. Hierbij stond alfa voor de eerste functionaliteittests en kleinschalige productie. Een bètatest volgde waarbij de hardware door een groep gebruikers (buiten de ontwikkelaars om) getest werd.

Tijdens de ontwikkeling van software passeren er verschillende fases, welke allemaal een bepaald stadium van de software aangeven. Moderne ontwikkelmethodes kennen de volgende fases: pre-alfa, alfa, bèta, release candidate en gold. Van veruit de meeste apps zal je alleen de gold versie zien. Deze versie is namelijk de versie waar alle bekende bugs opgelost zijn en alle functionaliteiten naar specificaties werken; de versie die je in de app-stores zal vinden. Wanneer je betrokken bent bij de ontwikkeling van een app zal je ook bij de eerdere fases betrokken worden. Welke fases dit zijn hangt af van jouw rol binnen het project.

Gebaseerd op onder andere de Release Life Cicle en onze professionele ervaring kunnen de volgende ontwikkelfases benoemd worden:

1. Pre-alfa (0.0.1)

In deze fase is de software nog volop in ontwikkeling. De grote lijnen van de gebruikersinterface worden ontwikkeld als ook de functionaliteiten. Deze kan meerdere milestones bevatten waarbij elke keer nieuwe functionaliteiten worden toegevoegd. Doordat deze fase nog vol met bugs en issues zit, worden deze builds alleen door de ontwikkelaars getest.

2. Alfa (0.1a)

De software is nu in een stadium dat het intern getest kan worden door het project team. In de alfa fase is de software nog niet feature-complete. Dit betekent dat nog niet alle gespecificeerde functionaliteiten in de build opgenomen zijn. De features die wél in de build opgenomen zijn bevatten nog bugs en beschikken mogelijk nog niet over het uiteindelijke ontwerp. De alfafase bestaat uit meerdere builds, waarbij bij elke nieuwe versie mee functionaliteit wordt toegevoegd.

3. Bèta (0.5b)

Vanaf het moment dat alle functionaliteiten ontwikkeld zijn (feature complete) mag de build een bétaversie genoemd worden. In de eerste bèta-opleveringen kan je nog veel bugs en issues verwachten. Ook zal de snelheid mogelijk nog niet optimaal zijn, maar deze versie is compleet genoeg om door de opdrachtgever getest te worden. Vanaf dit moment mogen alle bugs en issues die gevonden worden gemeld worden. In de bètafase worden geen functionaliteiten meer toegevoegd, maar er zullen wel een aantal builds opgeleverd worden. In elke versie worden een aantal issues opgelost, om dichter in de buurt van het beoogde eindresultaat te komen.

4. Release Candidate (0.98RC#2)

Als alle bekende issues zijn opgelost spreken we van een Release Candidate. De gebruikersinterface werkt zoals het bedoeld is en alle functies werken naar behoren. Dit is de fase waarbij een publieke bèta uitgerold kan worden. Alleen blocking issues worden nog opgepakt om tot een (vrijwel) issue-vrije gold build te komen.

5. Gold (1.0)

Dit is de laatste build. De software is af, en met af bedoelen we dat er geen grote issues meer in zitten die het gebruik ervan verstoren. Het is belangrijk om te weten dat alle software altijd issues zullen bevatten, maar de issues die nog in de gold-release zitten zijn dermate klein dat een gebruiker hier geen hinder van zal ondervinden.

Na de gold-release kunnen nog updates gepland staan om functionaliteiten toe te voegen of issues op te lossen. De ontwikkeling van deze updates volgen dezelfde route; van alfa naar gold.

Als de softwareontwikkeling van de initiële release afgerond is, is het tijd om aan het vervolg te denken. Bij doorontwikkeling kan onderscheid gemaakt worden tussen grote en kleine updates, waarbij respectievelijk het versienummer vóór of ná de punt wordt aangepast. Een grote update, van 1.0 naar 2.0 bijvoorbeeld, beschrijft meestal compatibiliteit verlies met oude versies. Hierbij kun je bijvoorbeeld aan ondersteuning met externe platforms of API’s denken.

Onafhankelijk of een update groot of klein is, de beschreven ontwikkelfases zullen voor alle updates doorlopen worden. Alleen voor kleine hotfix updates (updates waarbij slechts een kleine issue wordt opgelost) is het mogelijk dat alfa en release candidate worden overgeslagen. Het goed testen van een build of release is echter altijd belangrijk, onafhankelijk van de grote van de update. De bètafase wordt daarom nooit overgeslagen.

Auteur
Ian van der Geest

Ian is developer bij Fish on Fire. Als een van de langst zittende medewerkers is hij dé man voor al je technische issues. Zowel op de backend als op de frontend spuwt hij awesome code uit om jouw product on Fire te maken!

Datum:

15/06/2016