Programska oprema po meri, v nekaterih primerih imenovana tudi programska oprema po meri, je aplikacija ali programska oprema, ki je zasnovana in ustvarjena posebej za izpolnjevanje zahtev podjetja, organizacije ali posameznega končnega uporabnika. Stopnja prilagajanja, ki se uporablja za te programske pakete po meri, jih razlikuje od splošnih, komercialno dostopnih programskih paketov. Razvijalec programske opreme po meri je ekipa ali posameznik, ki je zadolžen za ustvarjanje teh programskih aplikacij po meri.
Kot del obstoječega podjetja za razvoj programske opreme ali kot samostojni izvajalec se pričakuje, da se bodo razvijalci programske opreme po meri seznanili s stilom delovanja končnega uporabnika ali organizacije. Ker bo na splošno obstajal le en odjemalec, za katerega se razvija programska oprema, bo razvijalec programske opreme po meri moral izpolniti več razvojnih stopenj. Ko je vsaka faza razvoja zaključena, preizkušena in analizirana za potrebne izboljšave, se lahko začne naslednja faza razvoja.
Zahtevo za razvoj programske opreme po meri najpogosteje prejmejo večje organizacije, kjer se po potrebi uporablja programska oprema po meri za upravljanje operativnih, zalog, virov in finančnih procesov. Ko se programska oprema razvija, mora biti razvijalec programske opreme po meri pripravljen vključiti spremembe v izvirno načrtovalno nalogo. Začetek razvoja iz praznega platna in prilagajanje paketa za reševanje težav pogosto naredita razvoj programske opreme po meri bolj osredotočen proces kot tisti, ki je vključen v tradicionalno ustvarjanje programskega paketa.
Zahteva po programski opremi po meri pogosto izhaja iz pomanjkanja ustreznega obstoječega komercialnega programskega paketa, ki bi zadostil potrebam končnega uporabnika. V tem primeru se od razvijalca programske opreme po meri pogosto pričakuje, da bo uvedel inovacije, ki bodo v programskem smislu pokrivale nova področja, da bi zagotovile doseganje določenih zahtev za paket. Stranke iščejo tudi nasvet razvijalca, kako najbolje doseči svoje cilje v programskem paketu. Na tem področju mora razvijalec razumeti operativne delovne prakse končnega uporabnika.
Posebne funkcionalne zahteve občasno postanejo očitne šele, ko se uporablja programski paket. Ko se to zgodi, mora biti razvijalec v položaju, da ponovno naslovi ustvarjeno programsko opremo, da izvede vse zahtevane spremembe. Na tem področju se vloga razvijalca programske opreme po meri razlikuje od bolj tradicionalnega položaja pri razvoju programske opreme. Tekoča narava procesa ustvarjanja in stalne izboljšave za izpolnjevanje specifičnih potreb strank namesto splošnih izboljšav ali popravkov za odpravljanje programskih napak dajejo razvoju po meri veliko bolj vpleten in oseben občutek.