비공개 소스 고위험 프로젝트를 관리하는 방법은 무엇입니까?


25

현재 J2EE 웹 사이트를 개발할 계획이며 1 명의 개발자와 1 명의 웹 디자이너를 불러서 도와 주려고합니다. 이 프로젝트는 틈새 시장의 금융 앱입니다.

소스를 닫을 계획입니다. 그러나 직원이 코드베이스를 쉽게 복사하여 사용하거나 제 3 자에게 판매 할 수 있을지 걱정됩니다. 앱 개발에는 4-6 개월이 걸릴 것이며 아마도 앱을 게시 한 후에 직원을 추가 할 수도 있습니다.

그러나 소스를 어떻게 자신에게 유지합니까? 회사가 소스를 보호하기 위해 사용하는 기술이 있습니까?

개발 시스템에서 USB 드라이브 및 DVD 라이터를 비활성화 할 것으로 예상하지만 이메일에 데이터를 업로드하거나 코드를 첨부하는 것은 여전히 ​​가능합니다.

내 질문이 불완전합니다. 그러나 내 상황에 있었던 프로그래머는 조언을 바랍니다. 어떻게해야합니까? 팀 구성, 코드 기밀 유지 등

필요한 경우 직원들과 비밀 계약을 체결하기를 기대합니다. (관련 태그를 추가하십시오)

최신 정보

모든 답변에 감사드립니다. 확실히 지금 모든 USB 포트와 DVD 라이터를 비활성화하지는 않을 것입니다. 그러나 나는 활동을 로깅해야한다고 생각합니다 (얼마나 정확하게해야합니까?) 나는 기존 코드로 참여하고 도망 칠 스컬퍼에 대해 경계하고 있습니다. 나는 아무 것도 만나지 못했지만 조심해야한다. 나는 비밀 조항을 포함 할 것이지만, 이것은 자금이 거의없는 신생 기업이고 현장에서 더 많은 선수와 경쟁이 치열한 비즈니스 틈새 시장이라면 스 칼퍼를 감지하거나 추적 할 수 없을 것입니다.

내가 개인적으로 모르는 경우 내가 신뢰하는 사람들을 어떻게 고용합니까? 그들의 이력서는 도움이 될 것이지만 그렇지 않으면 시간이 지남에 따라 신뢰가 발전 할 것입니다.

그러나 마지막으로 코드가 없어도 판매 후에 중요한 서비스입니다. 그래서 나는 정말로 장기적으로 걱정하지 않습니다.


28
나는 (그리고 다른 유능한 유능한 개발자는) 당신이 암시 한 조건 (펜 드라이브, DVD 라이터 ... 비활성화)에서 일하는 것을 고려할 것임을 알고 있습니다.
Jonathan Sterling

5
유독합니다.
Jonathan Sterling

53
솔직히 말해서, 신뢰 연장을 거부하는 사람을 만날 때, 나는 항상 내 신뢰보다 자신의 신뢰에 대해 더 많이 말한다고 생각합니다. 즉, 믿을 수 없다고 생각한다면 그것은 당신이 할 수 있다는 것을 알고 있기 때문입니다. 신뢰할 수 없습니다.
James McLeod

8
@abel : 이전에 언급 한 내용 중 일부를 요약하면 전문 소프트웨어 개발 경험이 없습니다. 그러나 "경쟁력있는 비즈니스 틈새 시장"에 진입하려고 노력하고 있으며 "거의 자금이 거의 없을 때" "더 큰 선수"에 대항하여 성공합니다. 프로그래머가 코드로 도망 치는 것에 대해 걱정하는 것보다 튀김에 더 큰 물고기가 있습니다. 내가 너라면, 사업 계획을 작성하고 목표 지역에서 이미 성공한 사업가들에 의해 검토를 받고 실제로 성공할 자원이 있는지 생각해보십시오.
Bob Murphy

37
@abel : 업데이트 후 질문은 다음과 같습니다. 돈이 많지 않고 식당에서 일한 적이 없어요. 그러나 당신은 어쨌든 식당을 열기로 결정했습니다. 샌프란시스코에는 이미 이익을 내기 위해 고군분투하는 많은 식당이 있습니다. 그래서 당신은 요리사의 컨벤션에 가서 음식을 독살하지 않는 요리사를 고용하는 방법을 묻습니다. 그리고 그들이 당신에게 요리사가 음식을 독살하지 않는다고 말할 때, 당신은 당신이 알고있는 사람 중 누구도 독에 중독되지 않았다는 것을 인정하지만, 누군가는 당신이 그것에 대해 걱정해야하므로 어쨌든 걱정할 것이라고 말했습니다.
Bob Murphy

답변:


77

개발자를 신뢰해야합니다.

거의 모든 전문 개발자가 소스를 훔치지는 않습니다. 다른 사람을 위해 일하는 경우 본인이 작성한 코드를 소유 한 사람은 고용주라는 것을 이해합니다. 개발자 참조 목적으로 코드를 복사 할 수 있지만 다른 사람에게 판매용 코드를 제공 할 가능성은 거의 없습니다. 그들이 새로운 고용주에게 판매를 제안한 경우, 문을 보여주고 심지어 체포 될 가능성도 있습니다 ( Bob Murphy그의 의견 에서 지적한 바와 같이 ). 잡힐 위험은 없습니다.

더 중요한 것은 불신은 불신을 낳습니다. USB 포트와 DVD 라이터를 비활성화하면 역설적으로 개발자가 코드를 복사 할 가능성이 높아지는 불신이 생길 것입니다.

반드시 계약서에 비밀 조항을 추가하되 계약의 가장 중요한 부분으로 강조 표시 할 필요는 없습니다.


2
간단한 비밀 조항은 개발 계약 및 고용 계약에서 완벽하게 정상입니다. 그러나 ChrisF가 말했듯이 그 비밀을 극복하지 마십시오. 소수의 계약 개발 프로젝트 이상을 수행 한 사람에게, 무서운 위협에 대한 긴 비밀 계약은 당신이 단서가없는 아마추어라고 말합니다. 6-20 줄의 텍스트에서 실행되는 온라인에서 찾을 수있는 표준 조항이 있습니다. 위반시 변호사를 기꺼이 기르면 충분합니다. 그렇지 않은 경우 비밀 계약은 의미가 없습니다.
밥 머피

46
또한 실제로는 제 3자가 도난당한 코드를 원하지 않습니다. 위험이 너무 큽니다. Informix와 Oracle이 90 년대 중반에 엔터프라이즈 관계형 데이터베이스 시장을 위해 경쟁을 벌였을 때 Informix의 개발자 중 한 명이 Oracle에 합류하기를 그만 두었고 (매우 일반적 임) 그와 함께 Informix 소스로 가득 찬 하드 드라이브를 얻었습니다. '티). 그는 오라클의 새로운 상사에게 따뜻한 환영을 기대하면서 보안 팀과 체포를했다고 말했습니다. 그런 다음 Oracle 보안은 Informix 보안이라고하며 하드 드라이브는 Oracle을 보지 않고도 Informix로 돌아갔습니다.
밥 머피

1
@ 밥 머피 나는 모든 사람들이 먹이 사슬의 바닥에 진심으로 있기를 바랍니다.
abel

1
나는이 정확한 대답을 입력하려고했습니다. 프로젝트의 성공을 위해서는 신뢰가 중요합니다. ChrisF가 말했듯이 개발자 컴퓨터의 구성 요소를 비활성화하면 관계가 악화되고 개발자에게 신뢰할 수 없음을 알립니다. 코드를 진정으로 보호하는 유일한 방법은 개발자가 잠을 자고있는 곳, 먹는 곳, 대화하는 사람 등을 제어하는 ​​것입니다. 위반자를 처벌하는 데 필요한 법적 탄약을 제공하기 위해 계약서를 작성해야합니다.
TheBuzzSaw

2
두 단어 : Edward Snowden ( en.wikipedia.org/wiki/Edward_Snowden ). 미국 연방 정부 내의 가장 비밀스러운 부서조차도이 문제에 대한 좋은 해결책이 없습니다. 무엇이 당신 (OP)이 더 잘할 수 있다고 생각합니까? 피상적 인 기술 제한이 아닌 신뢰와 합리적인 억제로 솔루션을 구축하십시오!
rinogo 2014

74

이 프로그래머가 처음에 소프트웨어를 작성할 수 있다면 ...

그들은 그것을 훔칠 필요가 없습니다.

원래 개발하는 데 걸리는 시간의 일부만으로 간단히 다시 작성할 수 있습니다. 그렇습니다. 개발자는 바보가 아닙니다. 일단 무언가를 수행하는 방법을 알아 낸 후에는 종종 어떻게했는지 기억할 수 있습니다.

따라서, 당신은 그것들을 믿거 나 직접 소프트웨어를 작성해야 할 것 같습니다 .


3
비경쟁 조항에 대한 주장입니까? ;)
Tim

8
실제로 : 프로그래머는 머리에 지식이 있기 때문에 이미 코드를 복사했습니다.
Frank Shearar

나는 이해. 새로 가입 한 개발자가 코드를 스캘핑하는 것을 원하지 않습니다.
abel

3
@abel, 도난당한 코드는 생각보다 유용하지 않습니다. 소스 코드 없이도 앱을 '복제'할 수 있습니다. 독점 알고리즘은 , 지금은 그게 전부 당신이 안전하게 유지하려는 것. 개발자는이를 배우기 위해 코드를 '훔칠'필요가 없습니다. 코드를 읽은 다음 다시 만드십시오. 프로그램을 사용하는 것만으로도 알고리즘을 추론 할 수 있습니다. 따라서 다른 사람들이 말했듯이 간단한 비 경쟁 조항이 트릭을 수행하고 할 수있는 모든 것입니다. 소금의 가치가있는 개발자라면 쉽게 코드를 우회 할 수 있기 때문에 코드를 물리적으로 보호하는 것은 시간 낭비입니다.
GrandmasterB

11
진실을 위해 +1하고 ... 의자를 웃게 만들어줍니다. 젖소는 우유를 훔칠 필요가 없습니다. 8D
TheBuzzSaw

22

나는 그 자체로는 20 달러 이상의 가치가있는 아이디어가 없다고 말했다. 코드를 훔쳐서 스스로 코드를 가져 가려고해도 다음 단계가 무엇인지 더 잘 알고 있고 소프트웨어 구매자와 더 많은 접촉을 할 가능성이 큽니다.

신뢰하는 사람 만 고용해야하지만 코드를 훔쳐서 판매하려고해도 멀리 갈 가능성은 거의 없습니다.


9
이것은 절대적으로 사실입니다. Unique Idea의 비밀을 지키지 말고 다른 사람보다 더 잘 실행하는 데 집중하십시오. 대부분의 아이디어는 시간의 산물이며 여러 사람들에게 독립적으로 발생합니다. (Henri Poincaré는 1900 년대 초반에도 상대성 이론을 연구하고 있었지만, 아인슈타인은 그를 출판물로 이겼습니다.) 이번 달 Sand Hill Road의 VC에 당신의 아이디어를 트로트하는 8 명의 다른 승무원이있을 가능성이 있습니다. 그것은 믿을만한 사업 계획과 자금을 얻을 전문 팀을 가진 사람들입니다.
밥 머피

1
관련 : sivers.org/multiply . 나쁜 아이디어는 2 펜스의 가치가 없지만 좋은 아이디어는 20 달러 이상이 될 수 있습니다.
Pacerier

6

어려운 사실은 아무도 당신의 코드를 원하지 않는다는 것입니다. 모두가 어떻게 작동하는지 알고 싶어하는 솔루션을 개발한다고 생각할 수도 있습니다. 그러나 더 자주 당신은하지 않습니다.

경쟁 업체의 소스 코드를 인수 한 경우 어떻게 하시겠습니까? 배포 할 수 없습니다. 타사 코드를 코드베이스에 통합하는 것이 어렵지 않더라도 프로젝트의 일부를 프로젝트에 복사 할 수 없습니다. 당신은 무엇을 할 수 있습니까? 당신은 그것을 공부할 수 있습니다. 그러나 종종 코드를 처음부터 작성하는 것보다 코드를 읽는 것이 더 어렵습니다.

오픈 소스 소프트웨어를보십시오. 도난당한 소스 코드와 가장 유사합니다. 유지 관리되지 않은 방대한 코드가 있습니다. 많은 부분이 귀하의 요구에 맞지 않는 라이센스를 가지고 있습니다. 다른 언어는 호환되지 않는 프로그래밍 언어가 있거나 플랫폼으로 포팅해야합니다. 필요에 맞는 코드는 읽는 데 많은 시간이 걸립니다.

폐쇄적 인 사고 방식을 가진 많은 오픈 소스 프로젝트가 있습니다. 즉, 패치를 수락하지 않습니다. 머지 않아 코드 버전이 너무 많이 벗어나 새 버전을 병합하는 것이 불가능할 것입니다.

가장 가치있는 것은 코드를 유지 관리하고 앞으로 전진하는 팀이라는 것을 이해해야합니다. 코드 자체가 아닙니다.


5

이것이 일종의 시작이라면, 가장 먼저해야 할 일은 제품을 만드는 것입니다. 열심히 일하고 프로젝트에 전념 할 훌륭한 개발자가 필요합니다.

그들을 없애거나 최소한 그들의 사기와 헌신을 없애는 가장 쉬운 방법 중 하나는 당신이 그들을 믿지 않는다는 것을 먼저 보여주는 것입니다. 실제로, 그들은 코드를 얻을 수있는 방법을 생각하기 시작할 것입니다. (거의 확실하지는 않지만) 방법을 생각해 낼 수 있다면 당신은 편집증뿐만 아니라 바보라고 생각할 것입니다. (이 수준의주의가 정당한 조직이 있으며 금융 웹 사이트 시작은 그 중 하나로 간주되지 않습니다.)

계약서에서 소프트웨어가 귀하의 자산이되는 방법에 관한 몇 가지 조항이 좋습니다. 누군가가 그것을 위반한다면, 그들은 당신이 가진 더 심한 언어를 위반하고 아마도 더 정당하다고 느낄 것입니다. 경쟁이 제한되고 시간이 제한되지 않은 조항은 원하는 사람들을 쫓아 내고 실제로 관할 지역에서 합법적이지 않을 수 있습니다 (지역 변호사에게 문의하십시오).

좋은 사람을 고용하면 나중에 소프트웨어를 다시 작성할 수 있습니다. 초보자를 고용하는 경우 초보자와 함께 무엇을 개발해야할지 모를 것이며,이를 기반으로 구축하는 사람은 늦게 나왔던 버전보다 늦게 심각한 법적 위험을 감수 할 것입니다.

요컨대, 이것은 당신이 걱정하는 것에서 너무 낮아야합니다. 나쁜 사람들을 고용한다면, 당신은 무슨 일이 있어도 침몰합니다. 좋은 사람들을 고용하는 데 집중하고이 슬라이드를 보자.


4

당신의 잠재 고객이 왜 거기에서 재정을 신뢰해야합니까?

결국 돈으로 도망 칠 수 있습니다.

Microsoft, Google, IBM과 같은 회사는 수천 명의 직원을 고용하여 폐쇄 형 소스 소프트웨어를 작성하며 직원들이 코드를 사용하는 것에 대해 지나치게 걱정하지 않습니다. 고용 계약의 저작권 보호 및 명확한 "모든 고용주가 속한 코드"조항이이를 다루는 것으로 보이며, 이전의 직원에 대한 코드 도둑질에 대한 법원 사건은 극히 드 rare니다.

또한 소프트웨어를 광범위한 세계에 출시 한 후 핵심에 실제로 고급 수학이 포함되지 않는 한 유능한 프로그래머 팀은 소스 코드를 보지 않고도 응용 프로그램을 재현 할 수 있습니다.


3

다른 사람들이 언급했듯이 이것은 주로 사람들의 관심사 인 것 같습니다.

그러나 데이터 유출에 대한 소프트웨어 솔루션을 판매하는 많은 주요 보안 공급 업체가 있습니다.

이러한 솔루션에 대한 경험이 제한되어 있기 때문에 효과 또는 적절성에 대해서는 언급 할 수 없지만이 점을 지적하는 것이 도움이 될 수 있다고 생각했습니다.


3
생각처럼, 유일한 걱정은 이러한 제품 : 기업의 언어로 가득하고 그들이 실제로 무엇을하는지 설명하지 않는다는 것입니다
화성 로버트슨

2

솔직히 다른 사람들이 말했듯이 프로그래머를 믿기 만하면됩니다.

그러나 오늘날의 환경에서 프로젝트를 공개 소싱하면 특정 시장을 제외하고는 상처를 입히는 것보다 도움이 될 가능성이 높다는 점을 실제로 고려해야한다고 말하면서 추가 할 것입니다. 아이디어에 더 개방적이면 자신이하지 않아도 소스 코드가 점점 커지고 다리가 멀어 질 염려가 줄어 듭니다. 내 의견으로는, 당신이 할 수있는 모든 영업권을 가졌고, 돈을 벌 가능성이 더 높습니다. 제국이 세계 최고의 앱을 제공하더라도 제국의 이상이 잘못되어 루크 스카이 워커가 다운로드하지 않았다고 생각합니다.

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