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


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

4
@ MichaelKjörling. Источник, который вы ищете, находится в отличном ответе Джоэла Спольски на эту тему в Start Ups .
— TRiG

22
На самом деле .. Я думаю, что это раздражает и нереально всегда говорить, спросить адвоката. Прежде всего потому, что это здравый смысл, что вы можете ошибаться; если вы советуете, как исправить критическую уязвимость безопасности в SO, вы не скажете «Спросите программиста!» каждый раз. Вторые адвокаты стоят дорого; честно говоря, как вы думаете, сколько людей на самом деле наймет адвоката для того, чтобы задать - обычно - вопрос / любопытство? Были ли вы когда - нибудь наняли адвоката , чтобы спросить что - то вроде этого?
— Томас Бонини

9

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

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


Согласен, но как насчет подбиблиотек, код которых не стоит нескольких минут? Классы для доступа к базам данных, создания файлов и т. Д.? Правда, это переписывание улучшает код
— Arj

3
Это не так просто. Любая переопределение должно полностью отличаться от исходного кода. Даже переписать это может быть плохо. Создание лучшей версии существующего материала, безусловно, плохо. Лучше держать это полностью отдельно.
— tp1

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

@ tp1 Подожди, а что, если цель функции x()настолько специфична и полезна, что не так много способов ее написать? В таком случае, как вы можете держать его отдельно, если реализация так похожа?
— Ардж

@ a12jun, ну вот почему это нужно рассматривать отдельно для каждой ситуации. Концепция сортировки, вероятно, является существующим опытом программиста в области компьютерных наук, и писать все нормально. Но если это что-то конкретное, редкое или специфическое для какого-то программного обеспечения, то это будет плохо.
— tp1

6

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

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


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

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

4

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

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

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


4

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

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

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

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

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


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

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

2

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

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

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


1

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

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

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

Конечно, IANAL.


1

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

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

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


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

1

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

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


1

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


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.