Razvoj krajnjeg korisnika je kada je krajnji korisnik softverskog programa odgovoran za razvoj novih aplikacija ili sredstava unutar tog programa. To je suprotno od bazičnijeg razvoja softvera, gdje je tvrtka odgovorna za kreiranje programa i ta koja razvija sve aplikacije i sredstva za njega. Glavne prednosti takvog razvoja uključuju činjenicu da može ubrzati vrijeme razvoja i da se korisnici mogu osjećati više angažirani u softveru. Razvoj krajnjeg korisnika korišten je u brojnim različitim programima, uključujući računalne igre, programe za ilustracije i softver za znanstveno modeliranje.
Glavna razlika između razvoja krajnjeg korisnika i redovitog razvoja softvera je način na koji korisnik uključuje softver. Standardni razvoj obično uključuje samo softverske dizajnere i programere koji stvaraju nove aplikacije i korištenje softvera, koji se potom pružaju korisnicima. Međutim, razvojem za krajnjeg korisnika program može nastaviti rasti nakon što je objavljen, budući da korisnici stvaraju nove aplikacije unutar softvera ili koriste program za stvaranje novih sredstava. To omogućuje programeru softvera da objavi program koji je potpun, ali koji nije namijenjen zadovoljavanju potreba svakog mogućeg korisnika, budući da sami korisnici imaju mogućnost da softver udovolje svojim potrebama.
Koristeći razvoj krajnjeg korisnika, softverska tvrtka također može omogućiti korisnicima da se osjećaju osobno uključenim u stvaranje novog sadržaja. To nije uvijek istinito za sve korisnike, budući da će neki pojedinci vjerojatno koristiti softver i sadržaj koji su razvili drugi, ali se neće sami baviti razvojem. Takav će program vjerojatno biti prilagodljiviji i može generirati veću korisničku bazu, međutim, budući da ljudi često postaju lojalni softveru kojim mogu manipulirati.
Razvoj za krajnje korisnike implementiran je u brojne softverske programe iz različitih namjena i razloga. Računalne igre, na primjer, često uključuju skupove alata ili razvojne komplete koji igračima pružaju mnoge od istih alata koje koriste programeri, dopuštajući igračima stvaranje novih razina, okruženja, stvorenja i iskustava u kojima će uživati drugi igrači. Umjetnički programi također mogu uključivati slične značajke, dajući korisnicima mogućnost stvaranja novih alata za korištenje u samom programu. Softver za znanstveno modeliranje može koristiti razvoj od strane krajnjih korisnika kako bi im dao mogućnost stvaranja različitih scenarija i scenarija različitih ponašanja, dopuštajući korisnicima da testiraju različite moguće situacije i kreiraju realistične virtualne modele fizičkih događaja.