Bespoke software je prilagođeni softverski proizvod razvijen za određenog klijenta. Programeri rade s klijentom kako bi prilagodili proizvod vrlo specifičnim potrebama, radeći od nule ili sa softverskom bazom koju mogu izgraditi i prilagoditi za korištenje različitih klijenata. Takav softver može biti puno skuplji od proizvoda namijenjenih masovnoj proizvodnji i uporabi. U nekim postavkama tvrtka može smatrati da je trošak vrijedan koristi.
Uz dizajn softvera po mjeri, programeri mogu strogo kontrolirati programiranje i značajke. Budući da ne moraju napraviti proizvod koji se dopada širokom tržištu, mogu omogućiti sve značajke koje klijent traži. Rezultat može biti visoko specijalizirani program koji učinkovito radi za jednu tvrtku, ali ne bi nužno bio koristan za druge. Toplice, na primjer, mogu zatražiti prilagođeni program za upravljanje svojim terminima koji odražava specifične potrebe i politike organizacije.
Velike tvrtke vjerojatnije će naručiti softver po narudžbi jer mogu opravdati trošak. Proizvod koji točno zadovoljava njihove potrebe također može biti vrijedan troška, pogotovo ako se brine o sigurnosti ili izvode jedinstvene operacije koje obični softver ne može objasniti. Programski timovi mogu uzeti u obzir izražene želje klijenata da razviju odgovarajući okvir i pretvore ga u cjeloviti program.
Dizajn softvera po mjeri obično počinje sastancima između programera i klijenata kako bi sve strane razumjele ograničenja i očekivanja projekta. Kada tvrtka zna kakav proizvod treba kupcu, može dati procjenu. Klijenti se mogu sastati s nekoliko programera koji su specijalizirani za slične proizvode poput softvera za upravljanje zalihama kako bi dobili ideju o rasponu dostupnih opcija i cijena. Kada se klijent složi s uvjetima i potpiše ugovor, programeri mogu početi.
Neki softver po narudžbi može biti kodiran od temelja kako bi se generirao potpuno novi program. Druge tvrtke mogu imati bazu koju prilagođavaju potrebama klijenata. Temeljna struktura i okvir bit će podijeljeni s drugim programima. Krajnji rezultat, međutim, može biti radikalno drugačiji, jer programeri prilagođavaju svaki aspekt. Korištenje generičke baze može pomoći u ubrzavanju procesa razvoja i otklanjanja pogrešaka, budući da programeri softvera imaju poznati okvir za početak.
Softver po narudžbi može biti moćan, fleksibilan i iznimno koristan. Ima neke nedostatke. Ako programeri prestanu raditi ili ne dijele izvorni kod, kupac možda neće moći dobiti podršku za softver. To može biti problem ako klijent treba ažuriranja kako bi zadovoljio nove potrebe ili ako nešto krene po zlu.