Czy masz tendencję do wpisywania własnego kodu lub nazwy firmy w kodzie?

13

Pracowałem nad różnymi projektami w domu iw pracy i przez lata opracowałem dwa główne interfejsy API, których używam w prawie wszystkich witrynach opartych na AJAX. Obie te kompilowałem do bibliotek DLL i nazwałem przestrzenie nazw Connell.Database i Connell.Json.

Mój szef ostatnio widział te przestrzenie nazw w dokumentacji oprogramowania dla projektu dla firmy i powiedział, że nie powinienem używać własnego nazwiska w kodzie. (Ale to mój kod!)

Należy pamiętać, że nie jesteśmy firmą programistyczną. Jesteśmy firmą wsparcia IT i jestem jedynym etatowym programistą, więc tak naprawdę nie ma żadnych procedur dotyczących tego, jak powinniśmy pisać oprogramowanie w firmie.

Inną rzeczą do zapamiętania jest to, że pewnego dnia zamierzam wydać te biblioteki DLL jako projekty typu open source.

Jak inni programiści grupują swoje przestrzenie nazw w swojej firmie? Czy ktoś używa bibliotek tej samej klasy w projektach osobistych i zawodowych?

Czy to też działa na odwrót? Jeśli piszę bibliotekę klasową całkowicie w pracy, kto jest właścicielem tego kodu? Jeśli widziałem bibliotekę od początku do końca, zaprojektowałem ją i zaprogramowałem. Czy mogę użyć tego do innego projektu w domu?

Dzięki,

Aktualizacja

Rozmawiałem z moim szefem o tym problemie, a on zgadza się, że są to moje przedmioty i jest w porządku, że mogę je otworzyć. Przed tą rozmową i tak zacząłem zmieniać obiekty, co w rzeczywistości było dość produktywne, a kod teraz bardziej odpowiada temu konkretnemu projektowi niż wcześniej.

Ale dziękuję wszystkim zaangażowanym za bardzo interesującą debatę. Mam nadzieję, że cały ten tekst nie zostanie zmarnowany i ktoś się z niego nauczy. Z pewnością tak.

Twoje zdrowie,

Connell
źródło
10
Myślę, że to pytanie wymaga ostrzeżenia, takiego jak „Legalne pole minowe przed nami”
Matt Ellen,
4
nie musi w ogóle mówić o oprogramowaniu. Gdy zapłacą ci za twój czas, wszystko, co zrobisz w tym czasie, należy do nich.
gbjbaanb
1
Tu leży jednak problem. To, czego używam w domu, robiłem we własnym czasie. Mam jednak zredagowaną wersję tego kodu dla projektu roboczego, który zredagowałem w swoim czasie.
Connell,
1
@Connell - Nie jestem prawnikiem i zależy to od kraju, w którym przebywasz, ale zwykle może istnieć szara strefa na temat wszystkiego, co robisz w swoim czasie, wszystko, co robisz w ich czasie, jest prawie na pewno ich własnością i są właścicielami własności intelektualnej . Krótka wersja - to nie jest twój kod, to ich kod, właśnie go napisałeś.
Jon Hopkins
2
@Matt Myślę, że wtedy będę musiał porozmawiać z moim pracodawcą. Sprawdź, czy dam radę napisać na piśmie, kto jest właścicielem kodu, który robię w swoim czasie. Jedno ostatnie pytanie. Jeśli wydam kod domowy jako oprogramowanie typu open source, dałoby to każdemu prawo do używania i edycji mojego kodu, w tym mojego pracodawcy? Czy to nie obejdzie problemu? Dzięki za pomoc!
Connell,

Odpowiedzi:

11

(Standardowe wyłączenie odpowiedzialności - nie jestem prawnikiem ...)

Ze swojego profilu wydaje się, że jesteś w Wielkiej Brytanii.

W takim przypadku zależy to od tego, jak jesteś zatrudniony. Jeśli jesteś stałym członkiem personelu, prawie na pewno twój pracodawca jest właścicielem prac . Napisałeś je i masz prawa do bycia zidentyfikowanym jako autor (to znaczy, że możesz powiedzieć ludziom, że je napisałeś), ale własność kodu i własności intelektualnej spoczywa na twojej firmie.

Jeśli jesteś wykonawcą, może istnieć przypadek, że masz do nich jakieś roszczenia, ale będzie to zależeć od charakteru umowy. Ogólnie rzecz biorąc, większość brytyjskich wykonawców IT klasyfikuje się jako pracowników najemnych, co oznacza, że ​​ponownie własność intelektualna spoczywa raczej na firmie niż na osobie fizycznej. Z pewnością wzmianka o standardowej umowie o pracę sugeruje, że tak będzie w przypadku stałego zatrudnienia.

W tych okolicznościach nie masz prawa udostępniać ich jako oprogramowania typu open source (ani nawet zabierać ich do następnego pracodawcy) i powinieneś myśleć o nich w taki sam sposób, jak myślisz o jakimkolwiek innym oprogramowaniu prawnie zastrzeżonym i postępować zgodnie z nimi - „ nie jesteś twój, akurat masz dostęp do kodu źródłowego.

EDYCJA : Jeśli chodzi o fakt, że opracowałeś niektóre z nich w swoim czasie. W chwili, gdy zacząłeś używać go w pracy bez dochodzenia swoich praw i licencjonowania go z wyprzedzeniem, zrobiłeś to bardzo mrocznym, ponieważ teraz bardzo trudno jest pokazać, co zostało zrobione. Z tego, co mówisz, biblioteki kodu zostały przetestowane, debugowane i naprawione w czasie pracy (a firma jest właścicielem wszystkiego, co zrobiono w ich czasie), a także oczywiste nakładanie się na pracę, którą dla nich wykonywałeś (o czym świadczy fakt, że spełnił wymóg, nad którym firma pracowała) oznacza, że ​​mają roszczenie i prawdopodobnie dość mocne.

Unia Unite ma na ten temat swoje zdanie . Kluczową sekcją wydaje się być:

„Istnieją wyraźne przepisy ustawowe:

· Artykuł 11 ust. 2 ustawy o prawie autorskim, wzorach i patentach (CDPA) 1988 i

· Artykuł 39 Patents Act 1977

zajmowanie się własnością prac pracowników. Zgodnie z tymi przepisami, pracodawcy zasadniczo nabywają własność praw własności intelektualnej w odniesieniu do wszelkich dzieł stworzonych przez pracownika, który on / ona

· Był zobowiązany do przedstawienia zgodnie z warunkami umowy o pracę lub

· Można zasadnie oczekiwać, że będzie produkować zgodnie z warunkami tej umowy.

Oczywiście im szerszy opis stanowiska dla danego pracownika, tym trudniej będzie mu uniknąć skutków określonych w punktach 11 (2) i 39 powyżej.

Nawet jeśli praca jest tworzona przez pracownika we własnym czasie i przy użyciu jego własnych zasobów, pracownik niekoniecznie będzie mógł dochodzić jakichkolwiek praw do tej pracy, jeśli pracodawca wykaże, że charakter utworzonej pracy był taki, który mógłby być racjonalnie rozważane jako część obowiązków pracownika. Dowodzi tego przypadek Missing Link Software przeciwko Magee [1989] FSR 361. Tam sąd orzekł, że prawa autorskie do oprogramowania napisanego przez pracownika poza czasem pracy i na jego własnym sprzęcie powstały w trakcie zatrudnienia, ponieważ wchodziło w zakres zadań, do których wykonania był zatrudniony M. Magee. ”

Zasadniczo ponieważ biblioteki te spełniły określone wymagania dotyczące projektu, nad którym pracowaliście, mają do nich prawo.

EDYCJA 2 : Musisz zrozumieć, że fakt, że istnieją dwie wersje kodu, jest prawdopodobnie nieistotny. Kod odpowiada potrzebom firmy związanym z projektem, nad którym pracowałeś i napisałeś go, gdy byłeś zatrudniony przez firmę (nawet jeśli był to twój własny czas). To daje im mocne przekonanie o „podstawowym adresie IP” kodu, a nie tylko o konkretnej jego kopii, którą zdarzyło się zaimplementować w ich projekcie - przeglądanie go jako dwóch gałęzi tego nie zmienia.

Warto zauważyć, że nawet przepisanie go nazywałoby się dziełem pochodnym, a własność intelektualna nadal byłaby związana z firmą, nawet w nowej wersji.

Myślę, że masz pojęcie o tym, co chcesz być prawdą, i próbujesz to zmienić, ale z tego, co mówisz, uważam, że firma ma dość mocne przekonanie do kodu, którego nie zamierzasz być w stanie obejść.

Jon Hopkins
źródło
Wydaje się, że wszyscy mówią podobne rzeczy. Jedną z rzeczy, która mnie naprawdę zdezorientowała, jest to, że większość ludzi mówi mi, abym nie publikował ich jako oprogramowania typu open source. Jeśli to mój kod, który opracowałem we własnym czasie, z własnym IDE na własnym komputerze. Czy na pewno mam prawo do wydania tego kodu? Pozwoliłoby mi to na użycie i edycję tego kodu dla firmy, tak jakby to był inny kod typu open source?
Connell,
@ Connell - patrz edycja powyżej, wersja TL; DR: prawa prawdopodobnie nadal należą do firmy, a nie ciebie.
Jon Hopkins
Bardzo dobra odpowiedź! Dziękuję Ci. Zdecydowałem, że przepiszę biblioteki w pracy. Mimo że nadal robi bardzo podobne rzeczy, kod ten będzie firmą. Nic nie można powiedzieć o podobieństwie między projektami, ponieważ żadna umowa ani prawo nie odbiera mi prawa do uczenia się z domowych doświadczeń pisania oprogramowania w pracy i odwrotnie.
Connell,
1
@Connell - Myślę, że nie trafiłeś w sedno. Kod, który istnieje, jest już własnością firmy - musisz przepisać je w domu całkowicie w swoim czasie, aby mieć własną wersję. Nawet wtedy będzie wątpliwe. Widzę z twojej strony, że chcesz odejść. Najlepszą rzeczą jest znalezienie nowej pracy z umową, która jasno określa, kto jest właścicielem, a następnie rozpoczęcie pracy od przepisania.
Jon Hopkins
5
@ Connell - Mówisz, że kod w domu nie został zmieniony w czasie pracy firmy. Czy możesz to udowodnić? Absolutnie i jednoznacznie? Fakt, że w twojej pracy jest wersja, która jest zmodyfikowaną wersją kodu, zbytnio zamazuje wody na dowód. Podałeś pracodawcy własność kodu, ponieważ jego wersja znajduje się w ich systemie. Ich VCS (zakładam, że mają jeden) będzie miał dzienniki wersji kodu, które (w ich oczach) zostały opracowane na ich czas, więc samo usunięcie go nie zrobi żadnej różnicy, z wyjątkiem tego, że mogą teraz twierdzić, że zapłacili za rozwój to dwa razy.
u
12

Jeśli Twoja firma płaci Ci za kod, jest to jego kod. Nie wydałbym tego jako projektu open source, chyba że masz ich pozwolenie.

RoboShop
źródło
Prawdopodobnie napisałem 90% tego projektu w domu. Wprowadziłem kilka zmian w pracy i właściwie nie używam żadnej z tych zmian w domu, więc jeśli wydam je bez tych zmian? Czy musiałbym wtedy poprosić o pozwolenie?
Connell,
1
@Connell: Po pierwsze, nie jestem prawnikiem. Gdyby tak było, upewniłbym się, że dokonam wyraźnych rozróżnień między twoim interfejsem API a jego kodem. Nie miałbym nawet kodu źródłowego w pracy i po prostu odwoływałbym się do biblioteki DLL.
RoboShop
@Connell: I jeszcze raz powtarzam, że nie jestem prawnikiem. Właśnie tak bym zrobił ...
RoboShop
Tak, myślałem o umieszczeniu go w bibliotece DLL. Trochę się o to martwię, więc muszę podjąć jakieś działanie. Myślę, że albo mam opcję użycia biblioteki DLL (ale w ten sposób, jeśli już tu nie będę pracować i będą musiały wprowadzić zmiany w tej warstwie kod, będą musieli go ponownie napisać, co może być niezadowolone) lub zmienić nazwę i ponownie napisać z nieco innym wyglądem.
Connell,
3

Zdarzały się przypadki, gdy kod napisany w domu podczas pracy w firmie był uważany za własność firmy. Nie jestem pewien, czy kiedykolwiek był to testowany w sądzie, ale wydaje mi się oczywiste, że każdy kod, który piszesz za pomocą sprzętu firmowego, w czasie pracy firmy (tj. Kiedy siedzisz przy biurku , płacony przez firmę za pisanie kodu) i za oprogramowanie firmy należy do firmy. Zawarłeś z nimi umowę (sprawdź umowę o pracę), która mówi, że dadzą ci pieniądze w zamian za napisanie dla nich kodu. Nie byłbyś pod wrażeniem, gdyby powiedzieli, że wstrzymają się z twoją pensją, ponieważ zamiast tego zamierzają przekazać ją na cele charytatywne.

Krótko mówiąc, to nie jest twój kod. Nie posiadasz tego. Przestrzenie nazw powinny zawierać nazwę firmy, ponieważ należy do nich. Zapłacili komuś za napisanie tego! (tj. ty).


  • zastrzeżenie: musisz sprawdzić umowę lub warunki zatrudnienia, aby ustalić, czy powyższe warunki są prawdziwe w twoim przypadku. Powiedziałbym, że tak czy inaczej, ponieważ mogą z łatwością zwolnić cię za zrobienie czegoś własnego w towarzystwie, przynajmniej a następnie twierdzą, że i tak należy do nich. najlepszą radą na przyszłość jest całkowite oddzielenie tego, co robisz dla siebie i tego, co robisz dla swojego pracodawcy .
gbjbaanb
źródło
Dzięki za heads-upy, myślę, że przepiszę kod dla firmy i zachowam go osobno. Doszedłem do wniosku, że to mój kod i używam go dla firmy, to prawie tak, jakbym posiadał licencję i zezwalam firmie na korzystanie z niej.
Connell,
2

Myślę, że jest miejsce, w którym popełniłeś błąd. Problem polega na tym, że napisałeś kod w domu we własnym czasie, a potem stwierdził, że kod byłby przydatny w pracy, więc właśnie zacząłeś go używać. To, co prawdopodobnie byłoby właściwe w tym przypadku, to nie włączanie kodu wykonanego poza pracą w kodzie firmy. Będziesz musiał albo skorzystać z czasu firmowego, aby przepisać wcześniej napisaną funkcjonalność, aby mogli z niej skorzystać. „Ale to wielka strata czasu”, mówisz. Inną opcją jest licencja / zakup kodu od ciebie za cenę lub za darmo, aby wiedzieli, że mogą legalnie korzystać z kodu. Myślę, że to, co może się dziać w twoim umyśle pracodawców, polega na tym, że zastanawiają się, co stanie się z tym kodem, kiedy odejdziesz? Czy nadal mają prawo do korzystania z tego kodu?

Wielu programistów pracuje w wolnym czasie nad rzeczami, które prawdopodobnie byłyby przydatne dla ich pracodawców, ale nie powinieneś zaczynać miksowania kodu bez zgody firmy.

Kibee
źródło
2

Przyszli programiści muszą wiedzieć, kto napisał kod na wypadek, gdyby poziom dokumentacji był nieodpowiedni (co niestety często bywa).

Z tego powodu zawsze podpisuję się swoim imieniem. Przypomina mi również, że muszę się upewnić, że wykonuję świetną robotę, ponieważ wiem, że jeśli nie zrobię tego, zły kolega zadzwoni do mnie w środku nocy! :)

Alex
źródło
3
Do tego służą dzienniki kontroli źródła.
Adam Lear
Tak, to prawda, ale jako niezależny programista zbyt często przypisywałem się do projektów, w których kontrola źródła była niewłaściwie wykorzystywana lub w ogóle nie była używana. Dodanie „stempla” do plików źródłowych zajmuje nie więcej niż kilka sekund. Zmiany w istniejących kodach zawsze dokumentuję w systemach kontroli źródła, jeśli są dostępne ... :)
Alex
Z wyjątkiem sytuacji, gdy kod zostanie przeniesiony do nowego repozytorium bez względu na przyczynę i dzienniki zniknęły. Miałem ostatnio taką sytuację, w której nie można było zlokalizować problemu z tego powodu.
scrwtp
0

Jak prawie wszyscy powiedzieli, prawdopodobnie jest tak, że firma ma pewne roszczenia do kodu (z frazami typu „Napisałem prawdopodobnie 90% tego projektu w domu.” Jest mętny).

Jedną z rzeczy, które należy wziąć pod uwagę w przyszłości, jest uważne przejrzenie umów o pracę i albo uzyskanie „własnego czasu, własnego zestawu -> własność własna” lub uzyskanie od firmy rezygnacji z jednego projektu. Niestety, w tej chwili nie jest to pomocne.

Vatine
źródło
0

Co jest złego w używaniu jakiejś innej nazwy? Imię twojego syna / córki / kota / psa / chomika? Nie musisz mieć tych trudności - właśnie wybrałeś „przyjazne” imię.

Mathew
źródło
O dziwo, tylko się nad tym zastanawiałem. Próbuję wymyślić dla niego ładną, unikalną nazwę projektu :)
Connell,
... Obecnie używam „Theodore” - imienia kota mojego sąsiada. To nigdy nie wydaje się czymś innym niż nieszkodliwym. Inne nazwy, których użyłem, „wydawały się w tamtym czasie dobrym pomysłem” i na dłuższą metę nie zostały wypracowane. Oto kilka pomysłów
Mathew
0

Wszystkie odpowiedzi wydają się koncentrować na własności.
Ale własność i autorstwo (autorzy i właściciele, odpowiednio) to różne pojęcia.
Autor jest powiązany z prawami moralnymi lub niezbywalnymi, które są :

  • wieczny
  • niezbywalny
  • Prawo nie do opisania
  • Niewymiarowy
    Jeżeli utwór już utworzony i dochody z jego eksploatacji mogą być zajęte przez wierzycieli, w zależności od przypadku, ci ostatni mogą nie żądać ujawnienia utworu w celu odzyskania pieniędzy należnych przez jego autora.

Moralnych lub niezbywalnych praw autorskich nie można zrzec się w większości jurysdykcji .

Podczas gdy własność związana jest z prawem gospodarczym, czyli własnością, prawami.

Dlaczego nie zastosować się do praktyki podpisywania artykułów naukowych, gdy pracownicy często pracują jako wizytujący badacz / profesor, zatrudniają / finansują wiele podmiotów. lub w ramach niezależnego finansowania stron 3d: nazwisko autora + gdzie praca została wykonana + kredyty, które sfinansowały pracę.

Należy pamiętać, że są to relacje od wielu do wielu (jeden autor i jego praca, może mieć wiele powiązań i finansowania).

Gennady Vanin Геннадий Ванин
źródło