Как я могу открыть исходный код моего программного проекта и сохранить контроль?

Как и многие из нас, у меня много идей для программного обеспечения, пара действительно хороших и недостаточно времени для всего. (Я разработчик, но только один). Я хотел бы открыть исходное программное обеспечение и идеи в процессе, но также сохранить направление и видение проекта. До сих пор я работал только в программном обеспечении, отличном от программного обеспечения, и это ускользает от меня, как open source может удовлетворить мою потребность в управлении им.

Позвольте мне пояснить, что я не намерен коммерциализировать проекты с открытым исходным кодом за деньги. Это я знаю. Я просто хочу контролировать свое видение, которое я начинаю.

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

Я лаяю неправильное дерево?

Ответы

Ответ 1

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

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

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

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

Достаточно мыльная коробка. Что касается управления проектами, разделите роль на две функции: 1) Привлечение разработчиков к участию, выполнение заданий, обзор кода, руководство и руководство и т.д. Поверьте мне, это столько же продаж, сколько и основано на доверии. Вертикальный, иерархичный, основанный на старшинстве ожидания I-was-here-first-type - это верный способ отвлечь добровольцев от вашего проекта. 2) Логистика репозитория. В конце концов, вы можете контролировать, кто являются/не являются коммиттерами, их разрешениями и т.д. Если вы делаете # 1 достаточно хорошо, это позаботится о себе.

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

Удачи!

Ответ 2

Ну, капитан Блай, все зависит от того, как вы передаете разрешение на совершение, теперь, не так ли? Если вы делаете источник открытым, но жестко контролируете, то видение все ваше. Предполагая, конечно, что вы можете найти кого-нибудь еще, кто будет заботиться о том, чтобы представить исправления для вашего обзора и оценки.

Ответ 3

У Линуса Торвальдса была отличная речь на google talk о том, как он использует (среди других тем) git, чтобы не включать весь код из сообщества с открытым исходным кодом! Это стоит проверить!

Ответ 4

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

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

Ответ 5

Даже если вы сделаете источник доступным в репозитории для кого угодно, вы все равно сохраняете контроль над репозиторием: вы решаете, кто имеет доступ, вы решаете, какие исправления совершены (или, по крайней мере, вы решаете, кто будет решать, какие исправления).

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

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

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

Ответ 6

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

Я не думаю, что они просто выходят из Интернета; вам нужно будет найти их.

И как только вы их найдете, вы должны заинтересовать их, что может означать отказ от некоторых или всех этих элементов управления...

Спросите себя, какова ваша цель здесь - предоставить инновации в области программного обеспечения для всего мира или создать проект для домашних животных?

Ответ 7

Ну, это зависит от того, какой проект вы открываете.

Вы открываете одну плотно определенную базовую функциональность в небольшой библиотеке, например Ruby Gem или пакете PHP PEAR, или вы хотите создать следующий Wordpress, в котором есть мнение миллионов пользователей?

Я предлагаю начинать с малого. Используйте то, что вы написали ранее, и можете использовать другие:

  • Плагин jQuery.
  • Плагин Wordpress.
  • Пакет PHP PEAR или предложение к Zend Framework.
  • Ruby Gem, создающий поведение, которое может использоваться в Rails.
  • Модуль или добавьте в CMS с открытым исходным кодом.

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

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

Ответ 8

В принципе, вы не можете.

Вы не можете помешать кому-то разблокировать свой код и запустить новый проект.

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

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

Если ваш проект разветвлен, ваши новые функции станут менее привлекательными для других.

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

Вот несколько интересных видео на эту тему:

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

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

Ответ 9

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