Неправильно ли брать код, созданный вами на работе, и повторно использовать его для личных проектов?

31

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

Эти фрагменты, я уверен, вероятно, можно найти в другом месте в Интернете, но дело в том, что я написал их, и я буду использовать их позже в других работах или для личных проектов. В настоящее время я не поддерживаю библиотеку личных кодов, но вопрос в том, неправильно ли брать код, созданный вами на работе, и повторно использовать его ( а ) для личных проектов и ( б ) на других работах?

архиватор ARJ
источник
Возможный дубликат: programmers.stackexchange.com/questions/111434/…
CVn
2
@Michael Похоже, но не точный дубликат. Ответы очень похожи, но на самом деле это две разные проблемы. Это о небольших фрагментах кода - пара классов, метод или два. Другой о воспроизведении всего проекта.
Томас Оуэнс
Самое смешное, что я всегда нахожу поток в другом направлении . Я обычно придумываю действительно интересные куски кода в своих хобби-проектах, где я больше экспериментирую. Конечно, никто не жалуется, когда эти успешные идеи превращают это в мою оплачиваемую работу. :-)
DaveGauer

Ответы:

25

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

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

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

Теперь, что касается контрактов, в которых утверждается, что они поглощают авторские права на все ваши личные проекты ... это, вероятно, радикально отличается в разных юрисдикциях, но, по крайней мере, в некоторых западных юрисдикциях я понимаю, что контракт не может этого сделать. В контракте может быть сказано, что это так, но он не будет исполняться в суде, потому что авторское право должно быть явно передано, в отличие от «все ваши базы принадлежат нам» - своего рода сделка, которая никогда не будет поддержана (в юрисдикция, откуда я в любом случае). Существует ряд ограничений на то, что может быть поддержано в суде через договор, поэтому вы обычно (и, мы надеемся,) увидите пункт, в котором говорится что-то о том, что если одна часть договора не работает по закону , остальная часть контракта остается в силе.

Но, как всегда, проконсультируйтесь с юристом, прежде чем интерпретировать это как точную юридическую консультацию. Меня никогда не привлекали к суду по этому делу, поэтому я не знаю ничего подобного в качестве доказательств адвоката. :)

Teekin
источник
31

Это зависит от вашего трудового договора. В наши дни наиболее вероятный ответ: (а) да, это неправильно и (б) да, это действительно неправильно. Почти все контракты, предлагаемые разработчикам сегодня, содержат положения о том, что любой код, который вы пишете во время работы в компании (будь то в рабочее время или нет), принадлежит им, и вы автоматически передаете им свои авторские права. Если вы специально не договорились об этом, это, вероятно, относится к вам.

Однако, как всегда:

Не верь нам! Проконсультируйтесь с юристом, прежде чем делать что-то потенциально опасное.

Килиан Фот
источник
7
+10 (если бы я мог) за «Не верьте нам! Проконсультируйтесь с юристом, прежде чем делать что-то потенциально опасное». Лучший. Консультировать. Когда-либо.
Сардатрион - Восстановить Монику
2
Есть ли у вас источник заявления о том, что «почти во всех контрактах, предлагаемых разработчикам», указано, что «любой код, который вы пишете во время работы в компании (будь то в рабочее время или нет), принадлежит работодателю?
CVN
3
Эти термины являются рутинными в том смысле, что работодатель покрывает себя «слишком много, а не слишком мало», и во многих случаях есть место для здравого смысла. Тем не менее, (1) вы должны быть уверены, что ваш взгляд на здравый смысл согласуется с их мнением, и (2) это большой риск. Через несколько лет мнения могут измениться - особенно если вы зарабатываете много денег или если они думают, что написанное вами может повредить их продажам. Для библиотеки небольших общих служебных функций, вероятно, легче переписать и не беспокоиться. Что-нибудь более существенное, и вы находитесь на очень опасной земле.
Steve314
4
@ MichaelKjörling. Источник, который вы ищете, находится в отличном ответе Джоэла Спольски на эту тему в Start Ups .
TRiG
22
На самом деле .. Я думаю, что это раздражает и нереально всегда говорить, спросить адвоката. Прежде всего потому, что это здравый смысл, что вы можете ошибаться; если вы советуете, как исправить критическую уязвимость безопасности в SO, вы не скажете «Спросите программиста!» каждый раз. Вторые адвокаты стоят дорого; честно говоря, как вы думаете, сколько людей на самом деле наймет адвоката для того, чтобы задать - обычно - вопрос / любопытство? Были ли вы когда - нибудь наняли адвоката , чтобы спросить что - то вроде этого?
Томас Бонини
9

Просто перепишите код, как и когда вам это нужно . Это полностью избегает проблемы ради нескольких минут кодирования.

Скорее всего, вы узнаете больше и напишете что-нибудь получше. Переписывание кода также обычно делает его более элегантным.

Том Сквайрс
источник
Согласен, но как насчет подбиблиотек, код которых не стоит нескольких минут? Классы для доступа к базам данных, создания файлов и т. Д.? Правда, это переписывание улучшает код
Arj
3
Это не так просто. Любая переопределение должно полностью отличаться от исходного кода. Даже переписать это может быть плохо. Создание лучшей версии существующего материала, безусловно, плохо. Лучше держать это полностью отдельно.
tp1
Если вы разработаете какой-то проприетарный алгоритм для кого-то, у вас (возможно) возникнут проблемы, если вы напишите его снова для кого-то другого. Это немного отрывочно. Если это просто шаблонный код, да, достаточно просто начать новую коллекцию.
Тим Пост
@ tp1 Подожди, а что, если цель функции x()настолько специфична и полезна, что не так много способов ее написать? В таком случае, как вы можете держать его отдельно, если реализация так похожа?
Ардж
@ a12jun, ну вот почему это нужно рассматривать отдельно для каждой ситуации. Концепция сортировки, вероятно, является существующим опытом программиста в области компьютерных наук, и писать все нормально. Но если это что-то конкретное, редкое или специфическое для какого-то программного обеспечения, то это будет плохо.
tp1
6

В зависимости от ваших условий работы, это может быть. Проконсультируйтесь со своим руководителем, отделом кадров, юридическим отделом и / или отделом этики, чтобы определить, что принадлежит вашей компании и что принадлежит вам, а также каков процесс запроса на получение прав на использование или владение вещами что вы производите на работе.

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

Томас Оуэнс
источник
Я согласен с этим; общение с людьми в вашей компании является хорошей отправной точкой (если у вас достаточно хорошие отношения с ними). Не исключено, что они просто скажут: «Конечно, делай, что тебе нравится, если это не связано с нашим бизнесом».
Кит Томпсон
Да, это хорошая идея, чтобы попытаться спросить разрешения: в контракте может быть сказано, что «вся ваша база принадлежит нам», но это, как правило, только для целей CYA, и они вполне могут захотеть разрешить вещи, которые не гарантированы вашим контрактом. , (Но вы, возможно, захотите убедиться, что вы получите это в письменном виде, на всякий случай.)
SamB
4

У меня был некоторый успех (не полный успех) в том, чтобы заставить моих работодателей согласиться выпустить по лицензии с открытым исходным кодом часть моего кода, написанного, пока я работал на них. В основном код, который я написал в свое свободное время, но иногда нет. Это весь код, не специфичный для какой-либо отрасли.

Я начал с того, что написал несколько библиотек, когда был безработным, а затем выпустил их по лицензии MIT. Затем, во время процесса найма на более поздних работах, я упомянул об этом и сказал, что буду использовать этот код, чтобы помочь им, если это возможно, но будут ли они возражать, если будут добавлять то, что я написал, работая на них, но только то, что не было специфичные для их бизнеса и только с их одобрения.

Результаты менялись, но со временем я смог создать свою библиотеку. И были случаи, когда наличие библиотеки ускорило время разработки для моих работодателей.

PSR
источник
4

Я удивлен тем, что самым решительным ответом здесь является «да». Как разработчик, ответ всегда был «абсолютно нет», за исключением случаев, когда код либо:

  1. Предыдущая составленная библиотека, которую я разработал независимо от текущего и всех предыдущих проектов, или
  2. Библиотека, которая была сделана доступной для этой цели, например, с открытым исходным кодом.

Кто-то заплатил вам, чтобы написать код. Если нет другого понимания и согласия, что нормально, кто-то другой не вправе пожинать ПРЯМЫЕ преимущества этого.

Теперь - слово ПРЯМОЙ. Если вы достигли конца проекта и узнали что-то интересное и создали для него что-то полезное, что не связано напрямую с интеллектуальной собственностью клиента, найдите время и создайте для него библиотеку. Еще лучше - НАЧНИТЕ С НЕГО ОТКРЫТЫЙ ИСТОЧНИК, чтобы каждый стал для него богаче. Я думаю, что он абсолютно на 100% этически чист, как снег, и действительно, я сделал это сам.

В краткосрочной перспективе повторное использование кода, за который вам заплатили, чтобы написать для кого-то другого, вызовет у вас юридические головные боли. В конечном итоге это вызовет у вас головную боль персонажа.

Крис Б. Беренс
источник
1
Браво за ответы на этической, а не юридической основе. Помните: вся мораль в законе не содержится. Также, по крайней мере, в США, Закон оторвался от реальности и общества. Закон и Адвокаты, похоже, активно работают против большего блага.
Брюс Эдигер
Прекрасный и модный ответ, но ничего общего с законом. Юридически этот ответ является шаткой почвой в большинстве западных стран.
quick_now
2

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

Если я узнаю что-то самостоятельно, в свое время, все расходы, которые я оплачиваю (компьютер, доступ в интернет, программное обеспечение и т. Д.), Не захотят ли они использовать это в моей работе? Вы находите регулярное выражение для личного проекта и решаете отправить его по электронной почте на свою рабочую учетную запись, потому что вы, вероятно, можете его использовать. Было бы немного глупо тратить время компании, притворяясь, что снова ищет ее в Интернете. Конечно, мы стремимся улучшить наше мастерство, это то, что ожидается от программистов, бла, бла, бла, но что, если это было в области вне программирования или даже ИТ? Я могу сдержаться, если они хотят играть в эту игру.

Компания может попытаться сохранить контроль над кодом, который я создаю. Это просто плохая основа для построения отношений. Если они заботятся о нескольких строках кода, я не могу себе представить, насколько они будут доминировать в моем времени; что стоит намного больше.

JeffO
источник
1

У меня были такие же мысли и в прошлом. К сожалению, я думаю, что все, что вы пишете непосредственно для вашей работы, будет технически защищено авторским правом вашего работодателя. Вам нужно будет запросить разрешение на повторное использование этого кода в других работах, не связанных с компанией.

С другой стороны, если вы написали код в свободное время для одного из ваших собственных проектов, вы могли бы защитить свой код с помощью какого-либо авторского права, а затем предложить передать этот код вашему работодателю для использования.

В любом случае должно быть четкое общение по этому вопросу.

Конечно, IANAL.

Майк Челлини
источник
1

Ваш вопрос очень похож на этот вопрос " Открытый исходный код. Законно ли воссоздать / открыть исходный код программу, которую вы ранее создали для другой компании? "

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

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

jwernerny
источник
+1 за «Я не юрист, поэтому не ожидайте, что мой совет поможет вам в суде».
Сардатрион - Восстановить Монику
1

Я бы сказал, что эти общие методы / функции лучше не хранить между проектами. Большую часть времени вы можете использовать Boost или любой другой язык, который вам нужен для этого. В большинстве случаев они написаны лучше, чем ваши.

Хорошая идея - иметь набор модульных тестов для них и использовать их для проверки вашего кода ката.

Сардатрион - Восстановить Монику
источник
1

Рабочие места направляются в Азию, поэтому переписывайте код, пока кормушка еще существует. Если вам платят за написание кода, напишите или вставьте его и сделайте вид, что вы переписали его, делая что-то веселое. Или, что еще лучше, работайте из дома и платите более квалифицированному, более умному и, что самое главное, гораздо более дешевому кодировщику из Азии, чтобы написать код для вас и получить разницу. Тогда вы сможете выйти и наслаждаться миром, пока наши корпоративные боги нас не уволили, и мы все нищие работаем на фабриках по производству чипов, производящих чипы по 2 цента в час для состоятельных китайских и индийских потребителей iPhone.

marabutt
источник
0

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

JimmyJames
источник