직장에서 생성 한 코드를 가져 와서 개인 프로젝트에 재사용하는 것은 잘못입니까?


31

나는 다양한 작업장에서 항상 "다른 상황에서는 이것이 유용 할 것"이라고 생각하게하는 코드를 작성했습니다. 실제로, 나는 더 긴 시간이 걸리더라도 의도적으로 코드를 작성하는데, 이는 나중에 나에게 도움이 될 것이라는 것을 알고있다 (예를 들어, 사용자 정의 SubString()함수). 이 스 니펫의 좋은 후보는 다양한 '도움말'클래스입니다.

이 스 니펫은 아마도 온라인 어디에서나 찾을 수 있지만 요점은 썼으며 나중에 다른 직업이나 개인 프로젝트에서 다시 사용할 것입니다. 현재 나는 개인 코드 라이브러리를 유지하지 않지만, 문제는, 그것은 코드 당신이에서 생산을하는 잘못된 작업 및 재사용이 ( ) 개인 프로젝트, (대한 다른 작업에서)?



2
@Michael 비슷하지만 정확한 복제본은 아닙니다. 답은 매우 비슷하지만 실제로 두 가지 다른 관심사입니다. 이것은 코드의 작은 조각에 관한 것입니다-몇 개의 클래스, 메소드 또는 두 개. 다른 하나는 전체 프로젝트를 재현하는 것입니다.
Thomas Owens

재미있는 점은 흐름이 항상 다른 방향으로 향한다는 것 입니다. 나는 보통 더 많은 실험을하는 취미 프로젝트에서 정말 흥미로운 코드 덩어리를 생각해냅니다. 성공한 아이디어가 내 유료 업무에 적용되면 아무도 불평하지 않습니다. :-)
DaveGauer

답변:


25

나는 항상 미친 아이디어와 일반적인 것들을 모두 넣은 개인 프로젝트를 통해이 문제를 해결했습니다. 그리고 BSD 라이센스로 라이센스를 부여하여 사람들이 재사용, 변경, 브랜드 변경, 닫고 돈을 청구 할 수 있습니다 그것. 그렇게하면 저작권이 유지되지만 본인 및이 고용주에 대해 원하는대로 코드를 재사용하여 원본에 대한 저작권을 유지하지만 고용주는 재사용 된 인스턴스에 대한 저작권을 보유합니다. 나는 그들이 그것에 문제가 있다면, 그들은 단순히 그들의 관점에서 이해가되지 않는 근무 시간에 그것을 다시 작성하기 위해 나를 지불해야한다고 생각합니다. 또한 회사는 BSD 코드를 항상 사용합니다. BSD의 기본 개념은 사람과 회사가 브랜딩 및 판매를 포함하여 원하는 거의 모든 작업을 수행 할 수 있도록하는 것입니다.

물론 직장에서 코드를 추가하면 내 시간에 코드를 다시 작성하지 않고 다른 곳에서 코드를 재사용 할 수는 없습니다. 일반적인 것이 상대적으로 작은 경향이 있기 때문에 괜찮습니다. 어쨌든 상당한 자유 시간 노력을 보장하는 아이디어.

BSD 스타일 라이선스에 따라 코드를 자신의 시간에 작성 및 라이센스은 해야 당신이 거의 어디서나 당신이 원하는 사용할 수 있습니다 자신을위한 라이브러리를 관리 할 수 있습니다.

자, 모든 개인 프로젝트의 저작권을 침해한다고 주장하는 계약은 아마도 관할 지역마다 근본적으로 다를 수 있지만 적어도 일부 서구 관할 지역에서는 계약이 그렇게 할 수 없다는 것을 이해합니다. 계약은 그렇게 할 수 있지만 "모든 기지가 우리에게 속해있다"는 것이 아니라 (공개되지 않은) 킨다 거래와는 달리 저작권을 명시 적으로 양도해야하기 때문에 법정에서는 시행되지 않을 것입니다. 어쨌든 내가 관할 구역). 계약을 통해 법원에서지지 할 수있는 사항에는 여러 가지 제한이 있으므로 계약의 한 부분이 합법적으로 작동하지 않을 경우 영향을주는 조항을 보게됩니다. , 나머지 계약은 여전히 ​​유효합니다.

그러나 항상 정확한 법률 자문으로 해석하기 전에 변호사와 상담하십시오. 나는 이것에 대해 법정에 출두 한 적이 없어서 변호사 증명 사실로 이러한 것들을 전혀 모른다. :)


31

고용 계약에 따라 다릅니다. 요즘 가장 가능성이 높은 대답은 (a) 그렇습니다. 그리고 (b) 그렇습니다. 이것은 실제로 잘못되었습니다. 오늘날 개발자에게 제공되는 거의 모든 계약에는 회사에서 근무하는 동안 (업무 시간 중이 든 아니든) 작성하는 모든 코드가 자신의 것이며, 귀하는 자동으로 저작권을 양도한다는 조항이 있습니다. 이에 대해 구체적으로 협상하지 않는 한 이것은 아마도 귀하에게 적용됩니다.

그러나 항상 그렇듯이

우리를 믿지 마세요! 잠재적으로 위험한 일을하기 전에 변호사와 상담하십시오.


7
"우리를 믿지 마세요! 잠재적으로 위험한 일을하기 전에 변호사와 상담하십시오."에 대해 +10 (가능한 경우). 베스트. 권하다. 이제까지.
Sardathrion-복원 Monica Monica

2
"개발자에게 제공되는 거의 모든 계약"에 "회사에서 고용하는 동안 작성하는 모든 코드 (업무 시간 중이 든 아니든)"가 고용주의 소유라는 성명서의 출처가 있습니까?
CVn

3
이 용어들은 고용주를 다루는 데 너무 일상적이면서도 아주 작은 방식으로 일상적인 것이며, 많은 경우 상식의 여지가 있습니다. 즉, (1) 상식에 대한 자신의 견해가 자신의 견해와 일치하는지 확인해야하며 (2) 큰 위험입니다. 몇 년이 지나면 의견이 바뀔 수 있습니다. 특히 많은 돈을 벌고 있거나 자신이 쓴 것이 판매를 손상시킬 수 있다고 생각하는 경우에는 의견이 바뀔 수 있습니다. 작은 일반 유틸리티 함수 라이브러리의 경우 다시 작성하는 것이 더 쉽고 걱정할 필요가 없습니다. 더 중요한 것은 당신이 매우 위험한 땅에 있다는 것입니다.
Steve314

4
@ MichaelKjörling. 당신이 찾고있는 출처는 Joel Spolsky의 Start Ups 에서이 주제에 대한 훌륭한 답변입니다 .
TRiG

22
사실 .. 항상 변호사에게 물어 보는 것은 짜증나고 비현실적이라고 생각합니다. 우선 당신이 틀릴 수도 있다는 것이 상식이기 때문입니다. SO의 중요한 보안 취약점을 해결하는 방법에 대해 조언한다면 "프로그래머에게 물어보십시오!"라고 말하지 않습니다. 매번. 두 번째 변호사는 비싸다. 솔직히 얼마나 많은 사람들이 일반적으로 사소한 질문 / 호기심을 요구하기 위해 변호사를 고용 할 것이라고 생각하십니까? 적이 당신은 혹시 이런 걸 물어 변호사를 고용?
토마스 보니 니

9

필요에 따라 코드를 다시 작성하십시오 . 몇 분의 코딩을 위해 문제를 완전히 피합니다.

더 많은 것을 배우고 더 나은 것을 쓸 수있는 기회가있을 것입니다. 코드를 다시 작성하면 일반적으로 코드가 더 우아해집니다.


동의하지만 몇 분 분량의 코드가 아닌 하위 라이브러리는 어떻습니까? 데이터베이스 액세스, 파일 작성 등의 클래스? 그 재 작성 코드 진정한 향상 불구하고
ARJ

3
그렇게 간단하지 않습니다. 재 구현은 원래 코드와 완전히 달라야합니다. 다시 쓰기조차도 나쁠 수 있습니다. 기존 버전의 더 나은 버전을 만드는 것은 분명히 나쁩니다. 완전히 분리 해 두는 것이 좋습니다.
tp1

누군가를 위해 독점적 인 알고리즘을 개발한다면 다른 사람을 위해 다시 작성하면 문제가 생길 수 있습니다. 조금 스케치입니다. 상용구 코드 인 경우 새 컬렉션을 시작하기에 충분합니다.
Tim Post

@ tp1 잠깐만, 함수의 목적 x()이 너무 구체적이고 유용해서 그것을 작성하는 방법이 많지 않다면 어떨까요? 이 경우 구현이 매우 유사한 경우 어떻게 별도로 유지할 수 있습니까?
Arj

@ a12jun은 각 상황마다 별도로 고려해야 할 이유입니다. 정렬 개념은 아마도 컴퓨터 과학에 대한 프로그래머의 기존 경험 일 것입니다. 그러나 특정 소프트웨어가 드물거나 특정 종류의 소프트웨어에 특정한 경우에는 나쁠 것입니다.
tp1

6

고용 조건에 따라 다를 수 있습니다. 상사, 인사 부서, 법률 부서 및 / 또는 윤리 부서에 문의하여 회사 소유 및 소유물, 사물의 사용 또는 소유권에 대한 권리를 요청하는 프로세스가 무엇인지 확인하십시오. 직장에서 생산하는

내가 일한 거의 모든 장소, 프로젝트에 참여하는 것은 회사 소유이지만 개인적으로 개인 프로젝트를 위해 상황에 따라 물건을 가져올 수있는 허가를 얻었으며 일반적으로 원하는 것을 설명해야했습니다. 그것과 관련이 있고 그것을 놓아 두는 것이 조직에 해롭지 않은 방법.


나는 이것에 동의한다. 자신의 회사 사람들과 대화하는 것이 좋은 출발점입니다 (합리적으로 좋은 관계를 맺고 있다고 가정). 그들이 "확실히 사업과 관련이없는 한, 당신이 좋아하는 것을하십시오"라고 말할 것 같지는 않습니다.
Keith Thompson

예, 허가를 요청하는 것이 좋습니다. 계약서에 "모든 기지가 우리에게 속해 있습니다"라고 말할 수도 있지만 일반적으로 CYA 목적 일 뿐이며 계약에서 보증하지 않는 것을 기꺼이 허용 할 수도 있습니다. . (단, 만일을 대비하여 서면으로 작성해야 할 수도 있습니다.)
SamB

4

나는 고용주가 내가 일하는 동안 작성된 내 코드 중 일부를 공개 소스 라이센스로 공개하기로 동의하는 데 약간의 성공 (전체 성공이 아님)을 보냈습니다. 대부분 내 자신의 시간에 작성한 코드이지만 때로는 그렇지 않습니다. 모든 산업에 특화된 코드는 아닙니다.

실직하는 동안 일부 라이브러리를 작성하여 MIT 라이센스에 따라 배포함으로써 모든 작업을 시작했습니다. 그런 다음 나중 직장에서 채용 과정에서 언급하고, 가능하다면 그 코드를 사용하여 도움이 될 것이라고 말했지만, 내가 일하는 동안 쓴 것들을 추가해도 마음에 들지 않을 것입니다. 그들의 사업에 따라 승인을 받아야합니다.

결과는 다양하지만 시간이 지남에 따라 라이브러리를 만들 수있었습니다. 그리고 도서관을 갖는 것이 고용주들의 개발 시간을 단축시키는 경우가있었습니다.


4

여기서 가장 많이 투표 된 답변이 "예"라는 것에 놀랐습니다. 개발자는 코드가 다음과 같은 상황을 제외하고는 항상 "정말 그렇지 않은"답변이었습니다.

  1. 현재 및 모든 이전 프로젝트와 독립적으로 개발 한 이전 작성된 라이브러리 또는
  2. 이러한 목적으로 사용 가능한 라이브러리 (예 : 오픈 소스 자료).

누군가 코드를 작성하도록 비용을 지불했습니다. 다른 이해와 동의를 제외하고는 다른 사람이 그 직접적인 혜택을 얻는 것이 옳지 않습니다.

지금-DIRECT라는 단어. 프로젝트의 끝에 도달하고 클라이언트의 지적 재산권과 직접 관련이없는 흥미로운 것을 배웠고 유용한 무언가를 만들었다면 시간을내어 자신을위한 라이브러리를 만드십시오. 더 나은 방법-IT와 함께 오픈 소스 프로젝트를 시작하여 모든 사람들이 더 풍성하게 만들 수 있습니다. 나는 그것이 운전 된 눈만큼 절대적으로 100 % 윤리적으로 순수하다고 생각합니다. 그리고 실제로, 나는 스스로 해냈습니다.

단기적으로 다른 사람을 위해 작성한 코드를 재사용하면 법적 두통이 발생할 수 있습니다. 장기적으로는 두통을 유발할 수 있습니다.


1
법적 근거가 아닌 윤리적으로 대답하는 브라보. 기억하십시오 : 도덕의 전체는 법에 포함되지 않습니다. 또한 적어도 미국에서는 법이 현실과 사회에서 벗어났다. 법과 변호사는 더 큰 이익을 위해 적극적으로 노력하는 것 같습니다.
Bruce Ediger

벌금과 멋쟁이는 대답하지만 법과는 아무 상관이 없습니다. 법적으로,이 답변은 실제로 대부분의 서방 국가에서 흔들리는 근거입니다.
quick_now

2

본인은 거주지 / 근무처 및 계약서 / 계약서에 따라 법적 문제가 있다고 확신합니다.

내 자신의 시간에 나 자신이 지불 한 모든 비용 (컴퓨터, 인터넷 액세스, 소프트웨어 등)을 배운다면 그들이 직장에서 그것을 사용하기를 원하지 않습니까? 개인 프로젝트의 정규식을 찾아서 사용할 수 있기 때문에 업무용 계정으로 전자 메일을 보내도록 결정합니다. 인터넷에서 다시 검색하는 척하는 데 회사 시간을 소비하는 것은 약간 어리석은 일입니다. 물론 우리는 우리의 기술을 향상시키기 위해 노력하고 있습니다. 이것은 프로그래머, blah, blah, blah에서 기대되는 것입니다. 그러나 그것이 프로그래밍 또는 IT 이외의 영역에 있다면 어떨까요? 그들이이 게임을하고 싶을 때는 물러 설 수 있습니다.

회사는 내가 생성 한 코드를 단단히 유지하려고 노력할 수 있습니다. 관계를 구축하는 것은 단지 가난한 기초입니다. 그들이 몇 줄의 코드에 대해 그렇게 신경 쓰면, 그들이 내 시간을 지배하게 될 정도를 상상할 수 없습니다. 더 많은 가치가 있습니다.


1

나는 과거에도 같은 생각을했습니다. 불행히도, 귀하가 직무를 위해 직접 작성한 모든 내용은 기술적으로 귀하의 고용주에 의해 저작권이 보호됩니다. 회사 이외의 다른 관련 작업에서 해당 코드를 재사용 할 수있는 권한을 요청해야합니다.

반면에, 여가 시간에 자신의 프로젝트 중 하나에 대한 코드를 작성한 경우 일종의 저작권으로 코드를 보호 한 다음 해당 코드를 고용주에게 제공하여 제공 할 수 있습니다.

어느 쪽이든 문제에 대한 명확한 의사 소통 이 필요합니다 .

물론 IANAL.


1

" 오픈 소스-이전에 다른 회사를 위해 만든 프로그램을 다시 만들거나 오픈 소스로 만드는 것이 합법적입니까? "

나는 당신이 일한 회사가 당신이 작성한 코드를 소유하고 있기 때문에 흔들리는 법적 근거에 있다고 말합니다. 루틴을 처음부터 처음부터 코딩하는 것이 좋지만 여전히 다른 코드의 사본이 있으면 질문이있을 수 있습니다.

[저는 변호사가 아니므로 법원에서 귀하를 도와 줄 조언을 기대하지 마십시오.]


"나는 변호사가 아니므로 법정에서 귀하를 도와 줄 조언을 기대하지 마십시오".
Sardathrion-복원 모니카

1

그 일반적인 작은 방법 / 기능은 프로젝트간에 유지하지 않는 것이 가장 좋습니다. 대부분의 경우 Boost 또는 언어가 제공하는 모든 것을 사용할 수 있습니다. 대부분의 경우, 당신보다 더 잘 작성되었습니다.

좋은 아이디어는 그것들에 대한 단위 테스트 세트를 가지고 그것들을 사용하여 코드 카타를 테스트하는 것입니다.


1

일자리는 아시아로 향하고 있으므로 그레이비 열차가 여전히 존재하는 동안 코드를 다시 작성하십시오. 코드 작성 비용을 지불하는 경우 코드를 작성하거나 붙여 넣은 다음 재미있는 일을하면서 재 작성한 것처럼 가장하십시오. 또는 더 좋은 방법은 가정에서 일하고 아시아에서보다 숙련되고 지능적이며 가장 중요하고 훨씬 저렴한 코더를 지불하여 사용자를위한 코드를 작성하고 그 차이를 파악하는 것입니다. 그런 다음 회사 신들이 우리를 배치하기 전에 세상을 나가고 즐길 수 있으며 우리는 모두 부유 한 중국인과 인도의 아이폰 소비자를 위해 시간당 2 센트의 칩을 만드는 칩 공장에서 일하는 데 어려움을 겪고 있습니다.


0

나는 이것이 오래된 질문이라는 것을 알고 있지만 누군가가 그것을 부딪 쳤고 Sergey Aleynikov 의 매우 슬픈 이야기에 대한 참조를 추가하는 것이 좋은 생각이라고 생각했습니다 . 직장에서 코드를 가져 오기 전에 그 일이 어떻게 그의 목숨을 망치고 그를 감옥에 착륙 시켰는지 읽어보십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.