lut 05

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.

Tagged with:
lut 05

Oprócz umowy na stworzenie oprogramowania na zamówienie czy umowy licencyjnej zleceniodawca często otrzymuje warunki gwarancji na oprogramowanie. Dokument ten, wyznacza zakres odpowiedzialności za usterki twórcy oprogramowania. Najważniejsze punkty zawarte w takiej umowie gwarancyjnej to:

Nazwa Opis
Okres gwarancji Zwykle trwa od roku do kilku lat. Generalnie, jeśli oprogramowanie na zamówienie  funkcjonuje kilka miesięcy to jest mała szansa na to, że po tym czasie przestanie funkcjonować z winy wadliwie wykonanego kodu (zwykle powodem jest wtedy system operacyjny, sprzęt komputerowy, błąd użytkownika). Błędy programistyczne pojawiają się zazwyczaj w pierwszym okresie użytkowania
Zakres gwarancji Wyznacza obszary odpowiedzialności firmy IT za oprogramowanie na zamówienie. Może być tak, że różne moduły programu mają różny zakres (np. dlatego, że oprogramowanie łączy się z innym programem/serwisem a te mogą zostać zmodyfikowane)
Podmiot gwarancji Określa, kto może się ubiegać o naprawę usterki. Najczęściej podmiotem gwarancji jest zleceniodawca
Czas reakcji na problem Ustawowe 14 dni to w tym przypadku to za długi okres. Problemy krytyczne powinny być rozwiązywane natychmiast a takie, które nie uniemożliwiają korzystania z aplikacji, w możliwie krótkim czasie. Ze względu na różną wagę problemów trudno jest w tym przypadku określić maksymalny czas, dlatego określa się czas reakcji na problem (czas, w którym firma IT przystępuje do rozwiązania problemu)
Zapisy wyłączające odpowiedzialność Czasem w gwarancji występują zapisy stanowiące o tym, za co firma IT nie odpowiada
Inne zapisy Czasem umieszcza się zapis o możliwości przedłużenia gwarancji, o możliwości realizacji gwarancji przez inne podmioty na prośbę firmy IT lub zleceniodawcy, występuje wiele zapisów ogólnikowych np. o konieczności użycia aplikacji zgodnie z jej przeznaczeniem

Tabela 2: Najważniejsze zapisy gwarancji na oprogramowanie

Zleceniodawca powinien negocjować jak najdłuższy okres gwarancji oraz jak najkrótszy czas reakcji na problem. Nawet bez umowy licencyjnej firma IT jest zobowiązana usuwać wady oprogramowania zgodnie z obowiązującym prawem, jednak gwarancja daje zawsze lepsze warunki (dłuższy czas trwania, doprecyzowana odpowiedzialność, inne zapisy specyficzne dla produktu jakim jest oprogramowanie na zamówienie).

Tagged with:
preload preload preload