Avoin lähdekoodi on tapa kehittää ja jaella tietokoneohjelmistoja. Asiakas saa vapaasti käyttää, kopioida, muunnella ja jaella avoimen lähdekoodin ohjelmaa – ilman lisenssimaksuja ja työlästä lisenssien ylläpitoa.
Avoimen lähdekoodin käyttäjällä on vapaus valita ohjelmisto ja toimittaja erikseen. Tämä vapauttaa teknologia- ja toimittajariippuvuuksilta ja estää monopolien synnyn. Toimittajariippumattomuus yhdessä ohjelmistojen vapaan muuntelumahdollisuuden kanssa tuo joustavuutta ja vähentää riskejä.
Avoimessa ohjelmistojen kehitysmallissa sekä ideat että toteutukset ovat kaikkien nähtävissä ja hyödynnettävissä. Kehitystä ei hallinnoi vain yksi yritys, vaan mukana on maailmanlaajuinen yhteisö, joka koostuu sekä yksityishenkilöistä että yrityksistä. Kaikki voivat osallistua kehitystyöhön ja ohjelmistovirheet on mahdollista löytää ja korjata nopeasti. Tämä johtaa usein korkeaan laatuun, hyvään tietoturvaan ja yhteentoimiviin ohjelmistoihin.
Tietokoneohjelman lähdekoodi sisältää käskyt ja ohjeet, joiden avulla tietokone saadaan toimimaan halutulla tavalla. Jotta tietokone ymmärtää syötettyjä käskyjä, lähdekoodi on useimmiten käännettävä niin sanottuun suoritettavaan muotoon ennen sen ajamista tietokoneessa. Ohjelman lähdekoodista on nähtävissä kuinka ohjelma toimii ja ohjelman toimintaa voidaan muuttaa muokkaamalla lähdekoodia. Ohjelman suoritettava muoto ei ole ihmisen tulkittavissa.
Koska suljetuissa ohjelmissa lähdekoodi yleensä pidetään liikesalaisuutena eikä siihen anneta muutos- ja levitysoikeuksia, niin ohjelman käyttäjällä ei ole teknisiä ja juridisia edellytyksiä tai oikeuksia tutkia ohjelman toteutusta tai tehdä tai teettää muutoksia ohjelmaan. Avoimen lähdekoodin ohjelman toteutus on lähdekoodin avoimuuden ja sallivien lisenssiehtojen myötä tarkastettavissa ja muutettavissa joko käyttäjän itsensä tai minkä tahansa kolmannen osapuolen toimesta.
Ohjelman hankkijalle tärkein avoimen lähdekoodin etu on suurempi riippumattomuus toimittajasta. Kun toimituksen kuuluu lähdekoodi ja oikeus käyttää sitä ohjelman toiminnan muuttamiseen, voidaan pienentää yhden toimittajan varaan joutumisen riskiä. Kehityksen ja ylläpidon sekä muut mahdolliset työt voi tällöin tehdä joku muukin kuin ohjelmiston alkuperäinen kehittäjä.
On hyvä huomata, että esimerkiksi kriittisten tai erityisiä läpinäkyvyysvaatimuksia sisältävien järjestelmien toteutus voidaan haluta tarkastaa ennakolta. Ohjelmistojen kohdalla tämä on tehtävissä ainoastaan käymällä läpi ohjelmiston lähdekoodi.
Avoimen lähdekoodin ohjelmalla ei ole yhtä standardoitua määritelmää. Yhdysvaltalainen Free Software Foundation (FSF) loi 1980-luvulla termin free software (vapaa ohjelma) ja niin ikään yhdysvaltalainen Open Source Initiative (OSI) loi vuonna 1998 termin open source (avoin lähdekoodi). Yksityisen tai julkisen sektorin näkökulmasta käsitteillä ei ole merkittävää sisällöllistä eroa ja ne molemmat sisältävät samat käyttöön, kopiointiin, muokkaamiseen ja levittämiseen liittyvät vapaudet. Open Source Initiativen määritelmä on yleisimmin käytetty erityisesti yritysmaailmassa ja esimerkiksi JIT 2007 -ehdoissa (JHS 166) viitataan siihen määriteltäessä avointa lähdekoodia.
Open Source Initiativen määritelmän mukaan avoimen lähdekoodin ohjelman tulee täyttää seuraavat vaatimukset: