Чи неправильно брати код, який ви створили на роботі, і повторно використовувати його для особистих проектів?


31

На своїх різних робочих місцях я завжди писав код, який змушував мене думати, "що це буде дуже корисно в інших ситуаціях". Дійсно, я навмисно пишу код, навіть якщо мені потрібно більше часу, що, як я знаю, допоможе мені в майбутньому (наприклад, спеціальні SubString()функції). Хорошим кандидатом для цих фрагментів є різні класи «Помічники».

Ці фрагменти, я впевнений, можна знайти в Інтернеті, але справа в тому, що я написав їх, і згодом їх знову використовуватиму в інших роботах або для особистих проектів. В даний час я не підтримую бібліотеку персональних кодів, але питання полягає в тому, чи неправильно брати код, який ви створили на роботі, і повторно використовувати його ( а ) для особистих проектів та ( б ) на інших роботах?


Можливий дублікат: programmers.stackexchange.com/questions/111434/…
CVn

2
@Michael Схожий, але не точний дублікат. Відповіді дуже схожі, але насправді це дві різні проблеми. У цьому йдеться про маленькі фрагменти коду - пару класів, метод чи два. Інша - про відтворення цілого проекту.
Томас Оуенс

Найсмішніше, що я завжди вважаю, що потік рухається в інший бік . Зазвичай я придумую дійсно цікаві фрагменти коду в хобі-проектах, де більше експериментую. Безумовно, ніхто не скаржиться, коли ці успішні ідеї втілюють мене в роботу за плату. :-)
DaveGauer

Відповіді:


25

Я завжди вирішував цю проблему, маючи особистий проект, де я вкладав усі свої шалені ідеї та загальні речі, а потім ліцензував це під ліцензією BSD, що дозволяє людям повторно користуватися, змінювати, ребрендувати, закривати його та стягувати гроші за це. Таким чином, я зберігаю авторські права, але можу повторно використовувати код, як мені подобається для цього та того роботодавця, так що я зберігаю авторські права на оригіналі, але роботодавець зберігає авторські права на повторно використаний екземпляр. Я вважаю, що якщо б у них були проблеми з цим, то вони просто повинні були б заплатити мені, щоб переписати його на робочий час, що з їх точки зору не має сенсу. Крім того, компанії постійно використовують код BSD, оскільки ідея BSD полягає в тому, щоб люди та компанії мали змогу робити з ним майже все, що вони хочуть, включаючи ребрендинг та продаж.

Тоді, звичайно, якщо доповнення внесено до коду на робочому місці, я не можу повторно використовувати його в іншому місці, не переписавши його самостійно ... що добре, тому що загальні речі мають тенденцію бути порівняно невеликими, якщо це не ідея, яка так чи інакше вимагає значних зусиль у вільний час.

Написання його в свій час та ліцензування коду під ліцензією стилю BSD повинно дозволяти вам підтримувати бібліотеку для себе, яку ви можете використовувати майже в будь-якому місці.

Що ж стосується договорів, які вимагають висмоктувати авторські права всіх ваших особистих проектів ... це, мабуть, кардинально відрізняється між юрисдикціями, але, принаймні, у деяких західних юрисдикціях, я розумію, що контракт не може цього зробити. У контракті може бути сказано, що він є, але він не застосовуватиметься в судовому порядку, оскільки авторські права повинні бути явно передані, на відміну від "вся ваша база належить нам" - угода, яка ніколи не буде підтримуватися (в юрисдикція, звідки я все-таки). Існує ряд обмежень щодо того, що можна дотримуватися в суді за допомогою договору, і саме тому ви зазвичай (і, сподіваємось) бачите пункт, який щось говорить про те, що якщо одна частина договору не працює на законних підставах , решта контракту все ще зберігається.

Але, як завжди, проконсультуйтеся з юристом, перш ніж трактувати це як точну юридичну пораду. Мене ніколи не брали до суду з цього приводу, тому я не знаю жодної з цих речей як фактів, підтверджених адвокатами. :)


31

Це залежить від вашого трудового договору. У наші дні найбільш вірогідною відповіддю є (а) так, це неправильно і (б) так, це дійсно неправильно. Практично у всіх контрактах, пропонованих розробникам сьогодні, є положення про те, що будь-який код, який ви пишете, працюючи в компанії (будь то в робочий час чи ні), є їхнім, і ви автоматично передаєте їм свої авторські права. Якщо ви спеціально не домовились про це, це, імовірно, стосується вас.

Однак, як завжди:

Не вірте нам! Проконсультуйтеся з юристом, перш ніж робити щось потенційно небезпечне.


7
+10 (якщо я міг би) за "Не вірте нам! Проконсультуйтеся з адвокатом, перш ніж робити щось потенційно небезпечне". Найкраще. Порадьте. Колись.
Сардатріон

2
Чи є у вас джерела твердження про те, що "майже всі договори, пропоновані розробникам" передбачають, що "будь-який код, який ви пишете, працюючи в компанії (будь то в робочий час чи ні)", належить роботодавцю?
CVn

3
Ці терміни є рутинними, коли роботодавець охоплює себе-надто-багато-ніж-занадто мало, і в багатьох випадках є місце для здорового глузду. Однак, (1) ви повинні бути впевнені, що ваш погляд на здоровий глузд відповідає їхньому, і (2) це великий ризик. Через кілька років думки можуть змінитися - особливо якщо ви заробляєте багато грошей або якщо вони думають, що щось, що ви написали, може зашкодити їхнім продажам. Для бібліотеки невеликих загальних функціональних функцій, можливо, простіше переписувати та не турбуватися. Нічого більш істотного, і ви знаходитесь на дуже небезпечній землі.
Steve314


22
Насправді .. Я думаю, що прикро і нереально завжди говорити просити юриста. Перш за все тому, що це здоровий глузд, що ти можеш помилитися; якщо ви радите, як виправити критичну вразливість безпеки на SO, ви не скажете "Запитайте програміста!" кожного разу. Другі юристи дорогі; якщо чесно, скільки людей, на вашу думку, насправді найнять адвоката для запитання - як правило - дрібниць / цікавості? Чи були ви коли - небудь найняли адвоката , щоб запитати що - щось на зразок цього?
Томас Боніні

9

Просто перепишіть код як і коли вам це потрібно . Це повністю уникає проблеми заради декількох хвилин кодування.

Швидше за все, тимчасовіше ви дізналися більше і напишите щось краще. Перезаписування коду також, як правило, робить його більш елегантним.


Домовились, а як же бути з бібліотеками, які не просто кодують кілька хвилин? Класи доступу до баз даних, створення файлів тощо? Правда, хоча це переписування покращує код
Ардж

3
Це не так просто. Будь-яке повторне виконання повинно повністю відрізнятися від вихідного коду. Навіть переписувати це може бути погано. Зробити кращу версію існуючих матеріалів, безумовно, погано. Краще тримати його повністю окремо.
tp1

Якщо ви розробите якийсь фірмовий алгоритм для когось, ви (мабуть) потрапите в біду, якщо ви його ще раз написали для когось іншого. Це трохи схематично. Якщо це просто код котла, так, досить легко, щоб почати нову колекцію.
Тім Пост

@ tp1 Тримайся, що робити, якщо мета функції x()настільки конкретна і корисна, що існує не так багато способів її написання? У такому випадку, як можна тримати її окремо, якщо реалізація настільки схожа?
Арж

@ a12jun, ну, ось чому це потрібно розглядати окремо для кожної ситуації. Концепція сортування - це, мабуть, існуючий досвід програміста в галузі інформатики, і написання, це нормально. Але якщо це щось конкретне, що є рідкісним або специфічним для якогось програмного забезпечення, то це буде погано.
tp1

6

Залежно від ваших умов роботи, це може бути. Проконсультуйтеся з вашим керівником, відділом людських ресурсів, юридичним департаментом та / або відділом етики, щоб визначити, що належить вашій компанії та що належить вам, а також який процес вимагає отримання прав на користування чи право власності на речі що ви виробляєте на роботі.

Майже в кожному місці, де я працював, належать компанії, але я шукав і отримував дозвіл на виведення речей для особистих проектів у кожному конкретному випадку, що зазвичай вимагає пояснення того, що я хочу що робити з цим, і як це не шкодить організації відпускати це.


Я згоден з цим; розмова з людьми у вашій власній компанії - хороша відправна точка (якщо припустити, що у вас досить хороші стосунки з ними). Не навряд чи вони просто скажуть «впевнено, робіть те, що вам подобається, доки це не є тісно пов’язаним із зовнішнім бізнесом».
Кіт Томпсон

Так, добре спробувати попросити дозволу: у контракті може бути сказано, що "вся ваша база належить нам", але це, як правило, лише для цілей CYA, і вони, можливо, будуть готові дозволити речі, які ваш контракт не гарантує . (Але ви можете переконатися, що ви отримаєте це письмово, про всяк випадок.)
SamB

4

Я мав певний успіх (не загальний успіх) у тому, щоб мої роботодавці погодилися випустити за ліцензією з відкритим кодом частину свого коду, написаного, поки я працював над ними. Переважно код я писав у свій час, але іноді ні. Це весь код, не характерний для будь-якої галузі.

Я все розпочав із написання деяких бібліотек, поки я був безробітним, а потім випустив їх під ліцензією MIT. Тоді під час процесу найму на наступних робочих місцях я б зазначив це, і сказав би, що я би скористався своїм кодом, щоб допомогти їм, якщо це міг, але вони б заперечували, якщо б додали речі, які я написав, працюючи над ними, але лише речі, які не були характерні для їхнього бізнесу та лише з їх схвалення.

Результати різноманітні, але я міг з часом створити свою бібліотеку. Бували випадки, коли бібліотека пришвидшила час моїх роботодавців.


4

Я здивований, що найбільше голосована відповідь тут - «так». Як розробник, відповідь завжди була "абсолютно не", за винятком випадків, коли код є:

  1. Попередня складена бібліотека, яку я створив незалежно від поточних та всіх попередніх проектів, або
  2. Бібліотека, яка була доступна для цієї мети, наприклад, матеріали з відкритим кодом.

Хтось заплатив вам, щоб написати код. Якщо не мати іншого розуміння та згоди, це добре, не хтось інший отримує ПРЯМІ вигоди від цього.

Тепер - слово Прямий. Якщо ви досягли кінця проекту, і ви дізналися щось цікаве і створили з ним щось корисне, що не пов'язане безпосередньо з інтелектуальною власністю клієнта, знайдіть трохи часу і створіть для себе бібліотеку. Ще краще - НАЧАЙТЕ З НЕЮ ПРОЕКТ ДВИЖЕНОГО ДЖЕРЕЛА, щоб усі виявилися на це заможнішими. Я думаю, що це абсолютно 100% етично чисто, як прогнаний сніг, і справді я це робив сам.

За короткий термін повторне використання коду, який вам заплатили писати за когось іншого, викличе у вас юридичні головні болі. Зрештою це викличе у вас характерні головні болі.


1
Браво за відповіді на етичній, а не юридичній основі. Пам'ятайте: вся мораль в Росії не міститься в законі. Крім того, у США, принаймні, Закон відштовхується від реальності та суспільства. Закон і адвокати, здається, активно працюють проти більшого блага.
Брюс Едігер

Тонка і дрендова відповідь, але нічого спільного із законом. Юридично ця відповідь є хиткою основою в більшості західних країн.
quick_now

2

Я впевнений, що це юридична справа залежно від місця проживання / роботи та того, що було узгоджено / укладено вашим договором.

Якщо я дізнаюсь щось самостійно, у свій час, усі оплачені мною витрати (комп’ютер, доступ до Інтернету, програмне забезпечення тощо), чи не хочуть вони, щоб я використовував це у своїй роботі? Ви знайдете регекс для особистого проекту і вирішите надіслати його електронною поштою на свій робочий рахунок, тому що ви, ймовірно, могли ним користуватися. Було б трохи нерозумно проводити час компанії, роблячи вигляд, що вона знову шукає її в Інтернеті. Звичайно, ми прагнемо вдосконалити своє ремесло. Це те, що очікується від програмістів, бла, бла, бла, але що робити, якщо це було в області поза програмуванням чи навіть ІТ? Я можу стримуватися, якщо хочу грати в цю гру.

Компанія може спробувати дотримуватися коду, який я випускаю. Це просто бідний фундамент для побудови відносин. Якщо їм так важливо кілька рядків коду, я не можу уявити, наскільки вони підуть, щоб домінувати над моїм часом; що вартує набагато більше.


1

У мене були такі ж думки, як і в минулому. На жаль, я думаю, що все, що ви пишете безпосередньо для вашої роботи, технічно буде захищено авторським правом від вашого роботодавця. Вам потрібно буде попросити дозволу на повторне використання цього коду на інших роботах, пов’язаних з нею.

З іншого боку, якщо ви написали код у вільний час для одного з власних проектів, ви можете захистити свій код якоюсь авторською суттю, а потім запропонувати надати цей код вашому роботодавцю для використання.

У будь-якому разі потрібно чітке спілкування з цього питання.

Звичайно, IANAL.


1

Ви ставите запитання дуже схожим на цей " Open Source - чи законно відтворювати / відкривати вихідну програму, яку ви раніше створили для іншої компанії? "

Я б сказав, що ви перебуваєте на хитких юридичних підставах, оскільки компанії, в яких ви працювали, напевно, володієте кодом, який ви їм написали. Було б краще кодувати підпрограми з нуля, але навіть тоді можуть виникнути питання, якщо у вас все ще є копії іншого коду.

[Я не юрист, тому не чекайте, що моя порада допоможе вам у суді.]


+1 за "Я не юрист, тому не чекайте, що моя порада допоможе вам у суді".
Сардатріон

1

Я б сказав, що ці загальні маленькі методи / функції найкраще не зберігати між проектами. Більшу частину часу для цього можна використовувати Boost або будь-яку іншу мову. Здебільшого вони написані краще, ніж ваші.

Хороша ідея - створити набір одиничних тестів для них та використати їх для тестування ката-коду.


1

Роботи направляються в Азію, тому перепишіть код, поки потяг все ще існує. Якщо вам платять, щоб написати код, напишіть його або вставте його і зробіть вигляд, що ви його переписали, роблячи щось цікаве. Або ще краще, працюйте з дому і платіть якомусь більш кваліфікованому, розумнішому, а головне, набагато дешевшому кодеру з Азії, щоб написати код для вас і кинути різницю. Тоді ви можете вийти та насолоджуватися світом, перш ніж наші корпоративні боги закладуть нас, і ми всі знедолені, працюючи на фабриках чіпів, роблячи фішки за 2 копійки на годину для багатих споживачів iphone з Китаю та Індії.


0

Я знаю, що це давнє запитання, але хтось наткнувся на це, і я відчув, що було б гарною ідеєю додати посилання на дуже сумну історію Сергія Алейнікова . Перш ніж взяти будь-який код з роботи, прочитайте про те, як це погубило його життя та посадило його до в'язниці .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.