Na czym polega depozyt kodu źródłowego?
Coraz więcej firm, której pracownicy na co dzień korzystają z komputerów, zamawia tworzenie specjalnie zaprojektowanego oprogramowania, które spełni jej potrzeby i ułatwi prowadzenie biznesu. Niekiedy jednak może się zdarzyć, że twórcy software’u z jakichś względów przestaną funkcjonować.
Przyczyną może być upadłość albo zwykła decyzja o zaprzestaniu działalności. W takiej sytuacji, w interesie stron (a zwłaszcza podmiotu korzystającego z oprogramowania) jest zabezpieczenie dostępu do kodu źródłowego tak, aby zachowana została funkcjonalność struktury informatycznej.
Czym jest kod źródłowy?
Kod źródłowy to nic innego jak zbiór poleceń napisanych w określonym języku programowania, które pozwalają zarządzać zgromadzonymi i wprowadzanymi danymi. Aby kod źródłowy mógł działać, niezbędna jest jego kompilacja, czyli przekształcenie w kod wynikowy, który następnie może zostać zastosowany przez procesor. Efekt takiego działania użytkownik widzi na monitorze komputera. Kod źródłowy zazwyczaj ma postać pliku tekstowego i jako taki może on zostać zapisany na trwałym nośniku, np. płycie CD lub pamięci nieulotnej typu FLASH.
W jakim celu strony zawierają umowę depozytu kodu źródłowego?
Umowa depozytu kodu źródłowego pozwala zabezpieczyć raz stworzone oprogramowanie. Polega ona na tym, że licencjodawca (czyli twórca oprogramowania) składa u depozytariusza (osoby trzeciej) kod źródłowy, zazwyczaj utrwalony na fizycznym nośniku. Jednocześnie uprawnia licencjobiorcę (przedsiębiorcę dla którego software został stworzony) do uzyskania dostępu do deponowanego materiału w przypadku zajścia okoliczności określonych w kontrakcie. Aby mieć pewność, że umowa uwzględnia większość potencjalnych problemów, które mogą wystąpić w relacji między stronami umowy warto zlecić jej sporządzenie kancelarii prawnej specjalizującej się w prawie IT.
Kto może być depozytariuszem? Początkowo były to wyłącznie instytucje zaufania publicznego, np. banki oraz notariusze. W ich przypadku depozyt miał zazwyczaj postać dysku zamykanego w skrytce bankowej. Obecnie coraz więcej firm świadczących usługi IT również oferuje depozyt kodu źródłowego. Takie rozwiązanie należy ocenić pozytywnie, ponieważ specjaliści z obszaru informatyki są w stanie zweryfikować także kompletność kodu, jego działanie i sporządzoną dokumentację.
Umowę depozytu kodu źródłowego można zawrzeć jako kontrakt dwustronny lub trójstronny. W pierwszym przypadku konieczna będzie odrębna umowa z depozytariuszem, w drugim zaś nie. Warto zadbać, aby porozumienie z osobą trzecią zawierał licencjobiorca, ponieważ w razie ogłoszenia upadłości licencjodawcy umowy przechowania z mocy prawa ulegną rozwiązaniu.
Jak powinna być skonstruowana umowa depozytu kodu źródłowego?
Jak każda umowa, także ta o depozyt kodu źródłowego powinna zawierać nie tylko elementy przedmiotowo istotne (tzw. essentialia negotii), ale też szereg klauzul zabezpieczających interesy stron. Na jakie zapisy warto zwrócić szczególną uwagę? Istotny jest przede wszystkim przedmiot i zakres umowy. Najczęściej będzie to nie tylko kod źródłowy określonego oprogramowania. Powinien on być uzupełniony o wszystko, czego licencjobiorca może potrzebować, aby samodzielnie z niego korzystać, np. dokumentacja, specjalne czytniki itp. Ważne, aby zdeponowane materiały umożliwiały pełną kompilację kodu źródłowego.
Warto również zadbać o zobowiązanie licencjodawcy do regularnej aktualizacji oprogramowania u depozytariusza, jeżeli w toku współpracy powstają kolejne wersje. W przeciwnym razie, po latach współpracy może się okazać, że w skrytce znajdował się nośnik z wczesną wersją alpha oprogramowania, która już dawno straciła dla licencjobiorcy wartość. W umowie powinny znaleźć się też warunki, których spełnienie upoważnia licencjobiorcę do żądania od depozytariusza wydania kodu źródłowego (tzw. zwolnienia kodu). Najczęściej spotkamy się z:
-
ogłoszeniem upadłości, likwidacji lub restrukturyzacji licencjodawcy,
- odmową usunięcia awarii albo wstrzymaniem usługi utrzymaniowej przez dostawcę oprogramowania,
- wystąpieniem awarii, której dostawca oprogramowania nie chce lub nie potrafi usunąć,
- zaprzestaniem rozwijania oraz oferowania wsparcia technicznego oprogramowania przez jego dostawcę lub też oparcie go na architekturze innej niż początkowo strony zakładały,
- wystąpieniem zmiany warunków współpracy ponad ustalony zakres (np. drastyczne zawężenie lub rozszerzenie pola współpracy).
Warunki zwolnienia kodu źródłowego to część umowy, która powinna być szczególnie dopracowana, aby między stronami nie wystąpiły wątpliwości co do tego, czy licencjobiorca może już egzekwować swoje prawa. Podpisanie kontraktu warto poprzedzić konsultacjami z prawnikiem, który doradzi najlepszy sposób zabezpieczenia się na przyszłość.
Umowa depozytu kodu źródłowego może także określać prawa licencjobiorcy po otrzymaniu nośnika. Strony mogą się umówić, w jakich sytuacjach kod może być modyfikowany (np. tylko w celu usunięcia błędów) i czy dopuszczalne jest dalsze jego rozwijanie. Postanowienia umowne mogą też dotyczyć dodatkowych obowiązków depozytariusza (np. sprawdzenia poprawności działania lub kompletności oprogramowania, a nawet rozbudowy software’u).
Wreszcie otwarcie skrytki może wiązać się z zakazem konkurencji. W ten sposób dostawca oprogramowania chroni się przed zatrudnieniem jego pracowników przez podmiot korzystający z oprogramowania i utratą wypracowanego know-how. Oczywiście, obie strony mogą przewidzieć zawarcie w umowie system kar umownych. To najpopularniejszy rodzaj zabezpieczenia interesów strony. W polskim systemie prawnym nie można jednak zastrzec kary umownej na wypadek niespełnienia świadczenia pieniężnego.
Jest to o tyle wygodne rozwiązanie, że zgodnie z dominującym w orzecznictwie polskich sądów nurtem, strona domagająca się zapłaty z tytułu kary umownej nie musi wykazywać wystąpienia szkody po swojej stronie. Wystarczy jedynie sam fakt wystąpienia przesłanek zapłaty kary. Kary umowne można zastrzec przykładowo za złamanie zakazu konkurencji, nieuprawniony dostęp do kodu źródłowego lub wykorzystanie nośnika w sposób inny niż strony przewidziały w umowie.
Umowa depozytu kodu źródłowego zazwyczaj wiąże się z wynagrodzeniem dla depozytariusza (tym wyższe, im szersze będą jego obowiązki). Strony mogą podzielić te koszty między siebie lub może je pokryć tylko jeden podmiot.
Co może obejmować przykładowa dokumentacja kodu źródłowego?
Każdy dostawca oprogramowania w nieco inny sposób tworzy dokumentację software’u, dlatego warto zadbać o to, aby w umowie były wymienione wszystkie konieczne elementy, które znajdą się u depozytariusza. Co powinno się wśród nich znaleźć?
-
aktualizowana karta wersji wraz ze wskazaniem wszystkich wprowadzonych zmian,
- opis struktur katalogów kodów źródłowych wraz ze wskazaniem standardu nazewnictwa plików źródłowych i wynikowych,
- dokładny opis procedury kompilacji,
- opis środowiska kompilacyjnego i zdefiniowane biblioteki programistyczne,
- dokumentacja techniczna baz danych wraz ze wskazaniem nazw tabel i relacji między nimi oraz podaniem ewentualnych atrybutów,
- narzędzia do przygotowania wersji instalacyjnej, czyli takiej, która będzie się nadawała do wgrania na twardy dysk oraz do samej instalacji.
W ten sposób licencjobiorca ma gwarancję, że po zwolnieniu kodu będzie dysponował wszystkimi narzędziami, za pomocą których samodzielnie obsłuży otrzymany kod źródłowy.
Kto najczęściej deponuje kod źródłowy?
Choć może się wydawać, że depozyt kodu źródłowego jest przeznaczony głównie dla dużych firm, będzie on przydatnym rozwiązaniem również dla wielu małych przedsiębiorców, którzy zainwestowali środki w stworzenie dostosowanej struktury informatycznej. Z usług tego rodzaju korzystają firmy farmaceutyczne, banki, firmy IT, sieci sklepów czy firmy transportowe i logistyczne.
Wszędzie tam, gdzie o sukcesie gospodarczym firmy decyduje sprawnie działający system informatyczny, warto rozważyć wdrożenie rozwiązania, które zabezpieczy interesy stron. Na depozyt kodu źródłowego warto spojrzeć nie jak na zbytkowne rozwiązanie, które niczemu nie służy, ale jako świadome obniżenie ryzyka biznesowego.
Czy warto deponować kod źródłowy?
Depozyt kodu źródłowego to kontrakt, który zabezpiecza obie strony. Dostawcy oprogramowania zyskują pewność, że pomimo przekazania software’u klientowi nie ma on dostępu do wiedzy leżącej „u podstaw” zaprojektowanego rozwiązania. W ten sposób licencjodawca eliminuje ryzyko skopiowania mechanizmów lub nieuprawnionej ich modyfikacji.
Z drugiej strony, licencjobiorca może być całkowicie spokojny o informatyczną przyszłość swojej firmy, ponieważ w razie potrzeby otrzyma odpowiednie narzędzia, które pozwolą mu zachować integralność środowiska IT. Wielokrotnie zdarza się, że producenci oprogramowania zaczynają rozwijać je w innym kierunku lub z zastosowaniem innych rozwiązań sprzętowych, nieatrakcyjnych dla korzystającego. W takiej sytuacji warto mieć „w zapasie” swoją wersję programu.
Wreszcie, umowa angażująca profesjonalną osobę trzecią uwiarygadnia pozycję obu firm, jako odpowiedzialnych gospodarczo partnerów biznesowych. W końcu, w życiu zdarzają się różne wypadki, których nie sposób przewidzieć, podpisując umowę o stworzenie oprogramowania. Kiedy strony pozostają ze sobą w dobrych relacjach, depozyt kodu źródłowego może wydawać się całkowicie zbędny. Każdy prawnik jednak wie, że umowę pisze się „na złe czasy” i warto ustalić z wyprzedzeniem co może, a czego nie może zrobić druga strona kontraktu.
Jeżeli korzystasz z oprogramowania stworzonego specjalnie z myślą o Twojej firmie albo przeciwnie, jesteś deweloperem, który tworzy zamówiony kod źródłowy, rozważ jego depozyt. Profesjonalnie sporządzona umowa pozwoli uniknąć niepotrzebnych sporów w przyszłości.
Pytania i odpowiedzi
Source code escrow to nic innego jak angielska nazwa depozytu kodu źródłowego oprogramowania. W praktyce ten mechanizm może mieć wiele nazw- w tekście przytaczamy również software escrow czy przetłumaczoną na polski- depozyt kodu źródłowego.
Umowy o depozyt kodu źródłowego to zazwyczaj umowy skomplikowane, często dwujęzyczne, w których często wersją językową wiążącą jest wersja angielska. W takich przypadkach należy dokładnie przeanalizować wszystkie aspekty ww. umowy- np. kwestie wypowiedzenia, zabezpieczenia roszczeń, definicję przedmiotu umowy czy okoliczności zwolnienia kodu źródłowego.
Umowa depozytu kodu jest umową nienazwaną, co oznacza, że w kontekście wypowiedzenia trzeba wziąć pod uwagę zarówno przepisy ogólne kodeksu cywilnego, jak i brzmienie umowy. Ważne jest jednak, żeby w umowie jasno określono możliwość jej wypowiedzenia, aby osoba składająca kod do depozytu uzyskała korzyści, które wiążą się z ww. transakcją (czyli zabezpieczenie kodu w przypadku likwidacji twórcy).
Zaufali nam: