Negde u januaru
ove godine mi se javio klijent od koga je kupac tražio da mu dostavi celokupni
kod softvera koji su razvili. Zapravo, klijent je došao sa pitanjem kako da
zaštiti svoj kod koji je predao nekome. Iako je to pravno moguće, faktički je
vrlo teško. Pitao sam ga koji je motiv
za takvu jednu transakciju i odgovor je dao pravu suštinu problema koji je
svuda u svetu vrlo čest.
Možda ovaj blog
neće do kraja ostati jasan jer još nisam objavio blog o tome kako se štiti
programski kod kod nas. Međutim interesovanje za software escrow je toliko da je ovakva tema postala hitna.
U čemu je u stvari problem
S obzirom da se
programski kod štiti onako kako se štiti i književno delo, uz manje specifičnosti,
onog trenutka kada kod predate nekome praktično ste mu predali sva rešenja koja
se ne mogu smatrati patentom, a u koja ste uložili puno vremena i novca (u
pravu poznato kao know-how). Time ste sebe lišili mogućnosti da klijentu
naplatite održavanje i druge intervencije jer bi klijent mogao da uzme nekoga
drugog i da doradi kod, ukloni ograničenja iz koda ili slično. Naravno klijent
ne bi bio ovlašćen na ovo ali bi vi faktički teško sproveli nadzor nad
klijentom.
Sa druge strane
klijent, iako verovatno nema motiv da se bavi vašim poslom ili da angažuje
nekog drugog, ima jake motive da zahteva kod od vas. Onog trenutka kada se klijent
opredelio za vaš softver, ne želi da bude prinuđen da u narednih par godina napravi
istu investiciju zbog toga što je vendor recimo bankrotirao, likvidiran,
odustao od razvoja tog softvera ili se postavio ucenjivački prema klijentu.
Rešenje
Dva interesa iz
prethodnih pasusa nisu nepomirljiva. Rešenje je upravo deponovanje koda kod
trećeg lica, odnosno software escrow.
U takvim
slučajevima se pribegava deponovanju koda kod kod trećeg lica (depozitar) koje
bi u slučajevima kao što je stečaj, likvidacija, jednostran raskid ugovora i
slično predalo kod klijentu.
Da li je rešenje adekvatno
Naravno ovo je
osnovna ideja deponovanja koda. Međutim da bi deponovanje koda bilo delotvorno
i da bi se mogli ostvariti ciljevi obe strane postoji puno okolnosti o kojima
se mora voditi računa. Oni se mogu podeliti u dve grupe jedna grupa se nalazi
na polju prava i kako pripremiti ugovore a da na kraju bude moguće predati kod
i druga je tehničke prirode.
Neću se ovde
baviti detaljno šta bi ugovori između sve tri strane (klijent, vendor i depozitar)
trebali da sadrže ali ću na jednom problemu pokušati da ilustrujem. Kada se
otvori stečajni postupak jedan od zadataka stečajnog upravnika je i da unovči
svu imovinu stečajnog dužnika. U takvu imovinu ulaze i autorska prava na
programskom kodu. Zbog toga ukoliko ugovorom nije predviđen određeni prenos
autorskih prava na depozitara koda, depozitar bi klijentu mogao samo da
prezentuje kod ali ga klijent ne bi mogao koristiti i bio bi izložen tužbi stečajnog
upravnika, a javila bi se i pitanja drugih neuređenih odnosa koji bi lako
odveli u spor ili, ono što se češće dešava, nabavku novog softvera.
Tehničkih
problema ima više ali ih klijent i vendor obično bolje razumeju pa je ta
rešenja lakše pravnički uobličiti.
Prvi osnovni
tehnički problem, a što može kasnije da stvori i pravni, je kako znati da kod
koji je deponovan zaista daje binarni fajl koji je klijentu dat na upotrebu.
Ovo je do sada lako rešavano tako što je kod davan neutralnom programeru kojeg
depozitar angažuje koji će kompajlirati kod u skladu sa pisanim uputstvom
vendora.
Spomen pisanog
uputstva iz prethodnog statusa u stvari je nagoveštaj drugog problema. Naime,
sam kod često ne može biti dovoljan da bi bio upotrebljiv. Često vam neko može
dati kod a da niste u mogućnosti da ga kompajlirate jer ne znate u kakvom
okruženju mora da radi, koji je kompajler ili linker korišćen i slično. Može da
se desi i da vam je kod već slobodno dostupan (PHP ili slično) ali da niko ne
može sa njim da uradi ništa značajno jer nije dokumentovan. U takvim
slučajevima se ne deponuje samo kod nego i propratni materijal, kao što su
uputstva, specifikacije, dokumentacija i slično. Neophodno je proveriti i adekvatnost
propratnog materijala pa tu opet ima ulogu stručno lice koje angažuje
depozitar.
Izazovi u deponovanju koda
Širenjem SaaS
samo deponovanje koda ili propratnih materijala neće biti dovoljno. Klijent će
imati potrebu da brzo po nastanku nekog od slučajeva u kojima se predaje kod
uspostavi punu funkcionalnost. To će se postiže sa „arhiviranim okruženjem“. U
trenutku kada nastupi slučaj u kome bi kod bio predan serveri depozitara
počinju da pružaju servis koji je vendor pružao. Naravno ovo podrazumeva
periodično deponovanje baza sa podacima klijenta.
Odlicno napisano, opisuje srz problema razumljivim jezikom.
ReplyDelete