Jednym z najważniejszych aspektów oprogramowania na zamówienie jest podpisanie dobrze skonstruowanej umowy licencyjnej lub umowy na stworzenie oprogramowania. To w nich zawarte są bardzo istotne zapisy, które ujmują między innymi prawne obszary wykorzystania napisanej aplikacji. To niezwykle ważne, gdyż zakup oprogramowania dalece różni się od zakupu telewizora w markecie a zamówienie i zapłacenie za tego typu program nie oznacza automatycznie możliwości nieograniczonego wykorzystania.
Umowa licencyjna na oprogramowanie na zamówienie powinna chronić obie strony. Często jest tak, że ważne zapisy nie znajdują się w umowie lub ich brzmienie pozwala na różne interpretacje. Nierzadko mają miejsce niekorzystne zapisy w licencji dla jednej ze stron.
Zwykle umowa przedstawiana jest przez firmę IT i po zatwierdzeniu przez zleceniodawcę zostaje podpisana. Najczęściej są to standardowe umowy zmienione co najwyżej o zapisy, które indywidualnie wynegocjował zleceniodawca (np. dłuższy termin płatności). Poniższa tabela przedstawia częste, niekorzystne zapisy przygotowywane przez jedną ze stron.
| Firma IT | Zleceniodawca |
| Konieczność zamawiania późniejszych modyfikacji u twórcy oprogramowania | Odpowiedzialność twórcy programu za wszystkie jego dysfunkcje, nawet takie na które nie miał wpływu (np. awaria komputera zleceniodawcy) |
| Ograniczenie wykorzystania programu do określonej liczby stanowisk komputerowych | Długi termin płatności lub niejasno sformułowany sposób odbioru aplikacji przez zleceniodawcę, od którego liczony jest termin płatności |
| Konieczność przeszkolenia u twórcy każdej osoby używającej program | Znaczne kary umowne za niedotrzymanie terminów |
| Zawiłe stwierdzenie umożliwiające dowolną interpretację | Zapisy wymuszające na firmie IT wykonanie dodatkowych czynności (np. bezpłatne szkolenie) |
| Brak terminu wykonania oprogramowania | Zapisy o tajemnicy handlowej, które skutecznie uniemożliwiają napisanie aplikacji |
| Drogie usługi posprzedażne (szkolenia, usuwanie usterek) | |
| Konieczność zakupu sprzętu komputerowego od twórcy aplikacji |
Tabela 1: Niekorzystne zapisy w umowach na stworzenie aplikacji
W zasadzie wiele aspektów regulują przepisy prawa obowiązujące w kraju. Przykładowo, firma IT jest zobowiązana do wykonania usługi zgodnie z zawodowym charakterem prowadzonej działalności. Mimo, że na prowadzenie firmy IT nie jest wymagana koncesja czy pozwolenie, osoba prowadząca taką firmę ma obowiązek posiadania faktycznych umiejętności lub wymaganych kwalifikacji a wykonywane przez nią usługi muszą charakteryzować się starannością.
Z drugiej strony, zleceniodawca ma obowiązek zapłacić za wykonaną usługę zgodnie z umową, a także dostarczyć firmie IT wszelkich niezbędnych informacji do wykonania oprogramowania.
Dobrze jest w umowie licencyjnej umieścić zapisy, które do pewnego stopnia regulują zachowanie stron. Przykładem mogą być zapisy dotyczące ceny późniejszych modyfikacji za oprogramowanie na zamówienie. Z jednej strony, wyznaczenie uniwersalnego cennika jest niewykonalne, gdyż nie wiadomo, co będzie podlegać modyfikacjom i ile czasu zajmie ich wykonanie. Z drugiej strony, pozostawienie tego obszaru bez jakiegokolwiek zapisu może spowodować, że zleceniodawca nie będzie mógł uzyskać modyfikacji lub będą one bardzo drogie. Warto zawrzeć zapis o „uwzględnieniu przy wycenie modyfikacji ceny początkowej aplikacji”. Podstawą tego zapisu jest założenie, że modyfikacja stanowiąca 10% czasu poświęconego na napisanie programu powinna kosztować w przybliżeniu 10% ceny początkowej. Oczywiście, nie będzie tyle kosztować, choćby ze względu na upływ czasu i inflację, ale jest w tym zapisie zachowana pewna uczciwa proporcja.
Często modyfikacje oprogramowania na zamówienie zgodnie z zapisami licencji muszą być wykonywane przez twórców aplikacji. Zleceniodawca najczęściej w pierwszym rzędzie zwróci się o modyfikacje do firmy IT i zleci je, nawet jeśli będą droższe niż w innych firmach. Zależność ta spowodowana jest faktem, iż twórcy najlepiej znają program i najszybciej oraz w najbardziej optymalny sposób są w stanie wykonać modyfikacje. Poza tym, zleceniodawca zna już twórcę programu, więc jeśli nie pojawiły się między nimi poważne nieporozumienia w trakcie pisania, musi być między nimi nawiązany jakiś stopień zaufania. Z tych powodów zapis o konieczności zamawiania modyfikacji u twórcy aplikacji wydaje się zbędny.
W przypadku szkoleń dotyczących użytkowania programu zleceniodawca również będzie wolał, aby przeprowadził je raczej twórca niż firma zewnętrzna z omawianych już powyżej względów.
Zleceniodawca nie powinien być ograniczony co do ilości stanowisk, na jakich może wykorzystywać oprogramowanie na zamówienie, gdyż to właściwie nie wpływa na czas, jaki firma IT poświęciła na napisanie programu. Są oczywiście wyjątki. Przykładem może być sytuacja, gdy zleceniodawca zacznie używać aplikacji na takiej ilości stanowisk, że nie wytrzyma tego serwer bazodanowy. Warto więc nie ograniczać zleceniodawcy komputerów, lecz na przykład zapisać, że aplikacja działa optymalnie dla X komputerów. Wtedy zleceniodawca ma świadomość możliwości aplikacji a firma IT zabezpiecza się przed zarzutem np. spowolnienia działania aplikacji w pewnych sytuacjach.
Umowa licencyjna powinna chronić również firmę IT. Jeśli błędy w działaniu aplikacji wynikają z winy systemu operacyjnego, sprzętu komputerowego czy błędów w użytkowaniu aplikacji na zamówienie, odpowiedzialność twórcy powinna być ograniczona. Ze względu na powyższe ograniczenie usuwanie usterek przez twórcę powinno być płatne, lecz tym samym jest on zobowiązany do ich usunięcia, gdyż zleceniodawca – nawet jeśli zawinił – nie może pozostać z niedziałającym oprogramowaniem, za które zapłacił sporo pieniędzy. W celu rozstrzygnięcia czy firma IT ponosi odpowiedzialność za usterkę można zawierzyć firmie IT lub wynająć zewnętrznego konsultanta. Nieprzyznanie się do winy twórcy aplikacji, gdy zawinił stanowi jednak naruszenie prawa i może pociągać za sobą konsekwencje prawne, dlatego takie zachowanie należy do rzadkości.