Tarkvaraversioon on käivitatava koodi komplekt, mis on tarbijatele kasutamiseks valmis ja mis on toodetud lähtekoodi kompileerimise teel. Seda terminit saab kasutada ka ehitusprotsessi enda viitamiseks, kus arendajad võtavad oma lähtekoodi ja käitavad seda läbi kompileerimisprotsessi, et muuta see funktsionaalseks. Tarkvaraprogramme uuendatakse pidevalt, kuni tootjad otsustavad nende toetamise lõpetada. See võib hõlmata mitmeid konstruktsioone, millest paljud avaldatakse üldsusele.
Tarkvaradisainerid alustavad tavaliselt sellest, et kirjeldavad, mida nad tahavad, et tarkvara teeks ja kuidas nad soovivad seda saavutada. Arendajad hakkavad välja töötama lähtekoodi, toorainet, mis moodustab tarkvara selgroo. Üks asi, mida nad allika kallal töötades arvestavad, on vajadus tulevaste ehituste järele. Paindlikku lähtekoodi saab muuta, lisada ja muuta vastavalt kasutaja vajadustele ja tarkvarale. Jäiga koodiga võib tulevikus raskem töötada.
Tarkvara koostamise protsessis kompileerivad nad programmi loomiseks lähtekoodi. Nad viivad tulemuse läbi range testimise, et veenduda selle toimimises. Kui tarkvara ehitamisel on probleeme, saavad nad naasta lähtekoodi juurde, et neid muuta. Seega ei avaldata iga ehitist avalikkusele; mõnikord põhjustab tõsine viga konstruktsiooni täielikku ebaõnnestumist ja muudel juhtudel on sellel liiga palju vigu, et see oleks üldiseks kasutamiseks valmis.
Kui arendajad on rahul, saavad nad välja anda konstruktsiooni. Tarkvara versiooninumbrid pakuvad klientidele laialdast teavet versiooni kohta; näiteks 1.0 või 2.0. Järgunumbrid pakuvad täpsemaid üksikasju selle kohta, millist tarkvarajärku klient täpselt kasutab. Näiteks võib tekstitöötlusprogramm käivitamisel kuvada teksti “Word Processor 5.0”, andes kliendile teada, et see on viies versioon. Programmi üksikasjades võib see kuvada koos järgunumbriga kujul 5.0.5.9865.
Kui kliendil on probleem, võib tugitehnik küsida tarkvara järgu numbrit, kuna see võib olla oluline. Võib esineda teadaolev probleem, mille saab lahendada kliendi arvutisse installitud järgu uuendamise või paiga rakendamisega. Kui probleemist pole varem teatatud, saab tehnik sisestada tõrkepileti, et teavitada arendajaid, pakkudes nende huvides vea kohta võimalikult palju teavet. See võimaldab neil tulevaste tarkvaraversioonide käigus probleemi lahendada. Mõnikord ilmnevad looduses väga veidrad vead, nagu konflikt kahe programmi vahel, mida arendajad poleks mõelnud koos testida.