2010-01-08 3 views
13

우리 중 상당수는 소프트웨어 아이디어가 많고, 실제로 좋은 아이디어가 많으며 모든 것을 할 수있는 시간이 충분하지 않습니다. (나는 개발자이지만 단 하나입니다.) 진행중인 소프트웨어와 아이디어를 오픈 소스에 공개하고 싶습니다. 프로젝트의 방향과 비전을 유지하십시오. 지금까지는 비어있는 그대로의 소프트웨어로만 작업했고 오픈 소스가 어떻게 을 제어 할 수 있는지 내게도 달아서을 제어 할 필요가 있습니다.소프트웨어 프로젝트를 오픈 소스로 만들고 제어를 유지하려면 어떻게해야합니까?

돈을 위해 오픈 소스 프로젝트를 상용화하려는 것은 아닙니다. 그 정도는 알고 있습니다. 나는 시작하는 나의 시각을 통제하고 싶다.

내 자신의 오픈 소스 프로젝트를 제어하려면 지침을 제공하여 관리해야하지만 그 패싯은 나에게도 효과적이며 자유로운 무언가를 관리하는 방법을 피할 수 있습니다.

내가 잘못된 나무를 짖고 있습니까?

+0

이 매우 주관적이며, 그래서 커뮤니티 위키로 더 행복 할 수 있습니다

여기에 주제에 흥미 비디오의 몇입니다. – bmargulies

+0

사실. 커뮤니티입니다. –

+0

나는 똑같은 일을하려고 생각하고있다. 그러나, 나는 프로젝트의 대부분을 직접 코딩하고 다른 사람들이 그것을 확장하도록 할 계획이다. 적어도 50 퍼센트의 일을하지 않으면 권리를 유지할 것으로 기대하지 않아도된다고 생각합니다. – slimbo

답변

12

나는이 사이클을 직접 경험했으며, 카트로 말 앞에서 나갈 수 있다고 말할 수 있습니다. 가혹한 소리는 들리지 않지만 확실히 얻을 수있는 참조 프레임이 있습니다.

첫째, "내 자신의 오픈 소스 프로젝트 제어"가 충돌합니다. 오픈 소스는 무언가를 멀리주는 것,이 경우 커뮤니티에 제공하는 것을 포함합니다. 따라서 여러분이 버려둔 것에 대한 통제와 소유권에 대해 생각하는 것은 여러분이 건너야 할 정신적 인 장애물입니다.

둘째, 프로젝트에 참여하고 싶은 사람이 필요합니다. 그들 없이는 어떤 방향이나 비전을 돌릴 사람이 없을 것입니다.

셋째, 프로젝트 지침에 대한 통제는 모든 오픈 소스 프로젝트에서 다음과 같은 유형으로 이루어집니다. 초기 아이디어가있는 개발자라면 상관 없습니다. 지역 사회가 귀하의지도를 기꺼이 따라 가면 그들은 그렇게 할 것입니다. 그렇지 않다면 그들은 단순히 참여하지 않을 것입니다.

충분한 냅킨.프로젝트 관리의 측면에서 역할을 두 가지 기능으로 나눕니다. 1) 개발자 참여, 작업 수행, 코드 검토, 지침 및 방향 등. 신뢰하십시오. 신뢰할 수있는 영업 업무입니다. 하향식, 계층 적, 연공 서열 기반의 I-was-first-first 유형의 기대는 자원 봉사자를 프로젝트에서 멀어지게하는 확실한 방법입니다. 2) 저장소 물류. 결국, 당신은 누가 커미터가 아닌지, 자신의 권한 등을 제어 할 수 있습니다. # 1 잘 수행한다면, 이것은 스스로 처리 할 것입니다.

마지막 해설로 오픈 소스 프로젝트는 쉽게 벗어날 수 없습니다. 프로젝트 다리를 제공하는 데 필요한 지속적인 노력의 양을 기꺼이 제시하려는 사람들보다 많은 프로젝트가 있습니다.

행운을 빈다.

+1

+1 매우 철저하고 현자 조언 –

1

누락 된 성분과 같은 소리는 아이디어를 좋아하고 무료로 일할 준비가 된 열정적 인 개발자입니다.

저는 인터넷에서 튀어 나오지 않는다고 생각합니다. 그들을 찾으러 갈 필요가 있습니다.

그리고 당신이 그들을 발견하면, 당신이 잘 그 제어의 일부 또는 전부를 포기하는 것을 의미 할 수있는, 관심을 유지할 필요가 ...

당신의 목표는 무엇인지 자신에게 물어 여기-하기에 소프트웨어 혁신을 제공 세상에, 또는 애완 동물 프로젝트가 있습니까?

+0

하지만 질문의 핵심은 무엇인가? –

+0

나는 방금 내가하는 일을보다 정확하게 반영하기 위해 제목을 수정했다. 첫 번째 글은 더 잘 표현 될 수 있다는 것을 깨달았다. 감사. –

3

리누스 토발즈 (Linus Torvalds)는 오픈 소스 커뮤니티의 모든 코드를 포함해야하는 것을 피하기 위해 (다른 주제들 중) git를 사용하는 방법에 대해 google talk에 대한 훌륭한 연설을했습니다! 그것은 체크 아웃 할 가치가 있습니다!

6

글쎄, 블레이 선장, 커밋 권한을 어떻게 내주는지에 달려 있습니다. 그렇지 않습니까? 소스를 열어 두지 만 커밋을 철저하게 제어하면 비전은 모두 사용자의 것입니다. 물론, 리뷰와 평가를 위해 패치를 제출할 수있는 사람을 찾을 수 있다고 가정하십시오.

+0

+1 : 나를 이길. – NotMe

+5

누군가가 당신의 비전을 좋아하지 않고 프로젝트를 포크로 결정할 때까지 바로 잡으십시오. –

+2

+1 사람들의 99.9 %는 아무 것도 할 프로젝트에 대해별로 신경 쓰지 않을 것입니다. –

1

글쎄 그것은 당신이 어떤 종류의 프로젝트를 오픈 소스로하고 있느냐에 달려 있습니다.

Ruby Gem이나 PHP PEAR 패키지와 같이 작은 라이브러리에 단단히 정의 된 핵심 기능을 오픈 소스로하고 있습니까? 아니면 수백만 명의 사용자가 의견을 갖고있는 다음 Wordpress를 만들려고하십니까?

작은 것으로 시작하는 것이 좋습니다. 이전에 작성한 내용을 사용하고 다른 사용자가 사용할 수 있습니다.

  1. jQuery 플러그인.
  2. Wordpress Plugin.
  3. PHP PEAR 패키지 또는 젠드 프레임 워크에 대한 제안.
  4. Rails에서 사용할 수있는 동작을 만드는 Ruby Gem.
  5. 모듈 또는 일부 오픈 소스 CMS에 추가하십시오.

원하는 특정 기능을 만드십시오. 다른 사용자가 코드를 분기하거나 분기 할 수 있지만 코드의 기본 분기 나 트렁크로 다시 병합시키지 마십시오.

사람들이 코드를 사용하여 작업 할 수 있지만 궁극적으로 공식 프로젝트로 돌아갈 수있는 권한을 가질 수 있습니다.

2

소스를 저장소에서 사용할 수 있도록 만들었지 만 저장소를 제어 할 수 있습니다. 액세스 할 수있는 사람을 결정하고 커밋 된 패치를 결정하거나 적어도 누가 결정할 지 결정합니다 어떤 패치가 커밋되었는지).

그러나 이것은 사람들이 프로젝트를 포크하고 다른 방향으로 포크를 가져가는 것을 막지 않습니다. 다른 사람들은 코드가 어떻게 유용 할 수 있는지에 대해 다른 생각을 갖고있는 반면, 일부 사람들은 평범하고 그들이 만지는 모든 프로젝트를 포크 할 것입니다.

포크를 최소화하는 가장 좋은 방법은 프로젝트의 방향에 대한 토론에 참여하고 사람들이 원하는 기능을 추가하는 패치를 받아들이는 것입니다 (자신의 코딩 스타일과 표준을 유지하면서). 사람들이 자신의 포크를 유지하는 것보다 커뮤니티와 함께 ​​일하는 것이 더 쉽다면, 대부분의 사람들은 포킹을 꺼려하지 않을 것입니다. 이 오픈 소스가 있다면 물론

,이에,

+0

+1은 * "다른 사람들은 코드가 유용 할 수있는 방법에 대해 다른 생각을 가질 수 있습니다"* 포크가 반드시 악의적 인 행위는 아니라는 대체적인 견해를 제공하기 때문에 *. –

0

.. 당신이 고집 그들이 포크를 만들려고하고 원하는 것을 제공을 거부하는 경우 때문에, 지역 사회에 어떤 통제를 양도 한 의미 당신이 그것을 통제 할 수없는 날이 끝나면 누구든지 자유롭게 그것을 포기하고 자신의 감미로운 방식으로 나아갈 것입니다. 이런 일이 일어나지 않도록하는 방법은 "자비로운 폭군"이되어 프로젝트 방향에 대한 다른 사람들의 견해를 타파하는 것입니다. 이것은 물론 다른 사람이 당신이하고있는 것에 관심이 있다고 가정합니다.

3

아마도 케이크를 먹을 수는 없습니다. "진짜"오픈 소스 라이선스로 소스를 열면 자신이 원하는 프로젝트를 시작할 수 있습니다. "진짜"프로젝트에 대한 통제권을 유지할 수 있습니다. 그런 다음 사용자가 어떤 버전을 더 좋아하는지, 어떤 버전이 커뮤니티의 대부분을 차지하는지 기다리고 기다리는 문제입니다. 당신은 항상 프로젝트의 "당신"분파를 통제 할 것입니다. 당신이 받아 들여야 할 것은 다른 누군가가 당신보다 원래의 코드로 더 성공적이 될 수 있고 따라서 또한 통제 할 수 있다는 것입니다.

일반적으로 개발자가 작업하는 것보다 더 많은 아이디어가 있습니다. 따라서 실제 문제는 사람이 패치를 기여할만큼 프로젝트를 신경 써야 할 것입니다.

1

기본적으로 할 수 없습니다.

다른 사람이 코드를 포크하여 새 프로젝트를 시작하는 것을 방지 할 수 없습니다. 둘째

그리고 대부분에서

은 당신이 할 수있는 소스 코드가 동일한 제품에 사용할 수 없습니다라는 라이센스를 선택하는 것입니다 (나는이되는 라이센스 모르겠지만, 그것은 존재) , 당신이 할 수있는 일은 기존 기반을 아주 잘 통제하고 포함시키고 자하는 기능을 나열하는 것입니다.

프로젝트가 분기되면 새 기능의 매력이 떨어집니다.

마지막으로 작업하지 않으면 프로젝트가 포크됩니다. 그렇지 않으면 아무도 열심히 일할 때 프로젝트를 포크로 잡을 것입니다.

http://www.youtube.com/watch?v=-F-3E8pyjFo

http://www.youtube.com/watch?v=0SARbwvhupQ

관련 문제