Давно, в 2014 году я сделал для себя небольшую утилитку, чтобы перегонять C#-вьюмодели в TypeScript-код. Она сэкономила мне немало времени и нервов. И вот, в сентябре 2015 я решил оформить свои "эксперименты на коленке" в некую удобоваримую форму и вылить их на GitHub. Так началось моё дилетантское участие в разработке открытого ПО. Время шло. И вот, вчера в репозитории с этим проектом, наконец, появился юбилейный, трёхсотый коммит. В связи с этим знаменательным событием, я бы хотел поделиться своим дилетантским опытом о том, с чем придётся столкнуться, если вам вдруг взбредёт в голову разработать что-то "на благо развития индустрии". Я изложу некоторые цифры, расскажу несколько прохладных историй, а так же поделюсь впечатлениями каково это — написать и поддерживать opensource-проект без мам, пап и кредитов поддержки компании, оплаты и… и свободного времени. Заходите под кат, присаживайтесь, мы начинаем.
"Делайте полезное"
Начнём с того, что на GitHub более 90 миллионов репозиториев. Какие-то из них известны, какие-то не очень, какие-то вообще приватные. В виду массовой популярности, Github начали использовать студенты для заданий, преподаватели для лекций, авторы книг для туториалов и даже энтузиасты для законодательства. Вы только представьте какая же это долбанная бездна кода и проектов! Однако же, ставлю бутыль коньяку что если к вам прямо сейчас привяжется журналист и попросит назвать известные репозитории, то навскидку вы назовёте… ну где-то 15-30. Что же это значит? А значит это то, что GitHub — это огроменная вселенная программных продуктов, большинство из которых, я уверен, известны только их авторам. И, может быть, 5-10 их друзьям.
Стать более-менее заметным в этой толпе довольно сложно, скажу я вам.
Даже если вы украдёте данные банковских карт всех-всех пользователей мира и выложите их на GitHub — то я уверен, что вас забанят и возбудят уголовное дело этого просто никто не заметит. Зачем я рассказываю настолько очевидные вещи, спросите вы? А вот… вот ни черта они не очевидные! Особенно для автора этих строк :) Особенно 3 года назад. Тогда я наивно считал, что достаточно сделать что-то действительно полезное, указать теги, написать README и люди сами всё найдут, сами всё скачают. Ну серьёзно, раз уж какой-то left-pad, состоящий по существу из 47 строк кода набрал тысячу звёзд, то моей штуковине-то, которая объективно упрощает разработку — ну 300-то наберётся, так ведь?
Ммм… нет. К сожалению, так это не работает. left-pad создан в 2014 и был решительно никому неизвестен до известных событий 2016 года. Если посмотреть на график распределения звёзд, то можем наблюдать взлёт почти под 90 градусов как раз в то самое злополучное время. Из этой дивной истории, очевидно, есть несколько печальных выводов:
Без должного маркетинга ваша самая лучшая идея в мире останется незамеченной.
Чёрный пиар — тоже пиар.
Не всегда сумасшедшее количество звёзд говорит о том, что проект хорош.
Но не всё так плохо. Если вы уже приготовились впасть в депрессию по этому поводу, то мой вам совет — отложите носовые платочки и подушку для рыданий.
Лучше делайте что-то полезное. Прежде всего — полезное для себя.
Прикиньте без какого программного продукта вам жизнь не в радость. Вот вам лично, читающим этот пост. Какого приложения, фреймворка, сервиса чёрта вам не хватает? На вашей работе или в вашей повседневной жизни. Прикинули? Отлично. Забейте в гугл и если от выдачи по вашему запросу веет тоской и невнятностью — вперёд! Заводите репозиторий, открывайте IDE и пишите. Пишите то, о чём мечтали, собирайте и выкладывайте. Разгадка проста — если конкретно вам ваш же проект приносит пользу, то во всём мире, скорее всего, наберётся тысяча-другая человек, которым это так же поможет и которые будут вам благодарны. Уверен, на первое время вам такой аудитории более чем хватит. Далее дело за малым — донести свои наработки до всех этих замечательных людей и не расплескать по дороге.
Пиар без штанов
Слышал я, в некоторых компаниях есть такая практика. Если на собеседовании, кандидат упоминает свой opensource-проект, то следующим же пунктом его начинают распинать на тему "а сколько звёзд?", "сколько скачиваний?", "в скольких живых проектах используется?". Так вот, ответственно вам заявляю: таких вопрошающих надо быстрым и решительным движением языка посылать в пень, вставать и уходить с собеседования, навсегда забывая имя этой компании и друзьям о нём рассказывая. Если менеджеру (или кто там вас собеседует) приходит в голову такой вопрос, то с близкой к стопроцентной вероятностью, он с разработкой свободного ПО никогда дела не имел, о маркетинге не слыхал, да и в целом мало придаёт значения звукам, которые сам же издаёт. Работать с таким не получится.
Печально, но, видимо, факт: по моим наблюдениям, за популярными и крупными проектами так или иначе стоят компании.
Например в виде прямого финансирования разработки: если проект делается в рабочее время, то он де-факто оплачивается. Да да, даже если у вас есть "пятница-для-своих-проектов" — что, думаете её нет в бюджете? Или в виде информационной поддержки (статьи, конференции, видео). Ну или в виде поддержки "персоналом", а-ля "Вася, иди помоги Олегу сделать фичу в его проекте". И это если не говорить о совсем уж откровенных случаях финансирования opensource-разработки вроде EntityFramework или .NET Core, когда есть целые отделы, занимающиеся такими проектами. Или всё и сразу (тут конспирологи могут задать вопрос "кому же это выгодно", но мы и до этого дойдём).
Мне же из ресурсов компания предоставила разве что бесплатное тестирование моих наработок на живых людях. И нет, я не жалуюсь — я сам на этом настоял, чтобы все права и контроль над разработкой остались у меня. Да и для компании, с которой контракторские отношения связывают меня последние 4 года, IT — это не то чтобы профильный бизнес. Неудобно как-то людей отвлекать. В общем, в сухом остатке сошлись на следующем: компания относится с пониманием, поддерживает морально и предоставляет свою систему для проверки и обкатки проекта на живых пользователях. Взамен получает приоритетное право на поддержку и багфиксы, а так же консультации, внедрение и обучение персонала. Божечки, я говорю словами крупного интегратора, хотя в моём проекте всего-то около 5 тысяч строк (без тестов).
Ой, а был ещё такой интересный случай. У меня куплена 2015 студия, 2017я Community Edition, но помимо этого я пользуюсь ReSharper-ом от JetBrains. И он у меня тоже куплен. Помимо прочего, у меня так же есть аккаунт на Azure, где за символические деньги размещён простенький веб-сайт с информацией обо мне, ссылками на проекты и документацией. Так и вот. У JetBrains есть программа бесплатных лицензий для опенсорс-разработчиков. Ну я и думаю — дай, заапплаюсь. Копеечку, но сэкономлю. Будет у меня подарочный ReSharper. Почему бы и нет? Написал, значит, письмо на требуемый адрес. Мол, так и так. Делаю такой-то проект, вроде как опенсорс. Дайте, мол, лицензию. В ответ приходит такое:
We have checked your Open Source project to see if it meets all the requirements of JetBrains’ Open Source License Program.
We have to inform you that according to the rules of our program, if the project provides any paid services (training, consulting etc), we cannot issue free licenses on general terms.
As I can see on your project’s website it does provide some commercial services (http://www.reinforced-sc.com/Info/Contact), therefore, unfortunately, I won’t be able to provide free open source licenses for your project.
Короче, опуская подробности. По существу им не понравилось, что на своём сайте (который посещают 3,5 анонимуса) я написал что готов предоставлять коммерческие консультации и индивидуальную коммерческую поддержку по любому своему проекту (из двух, хе-хе). Ни стоимости услуг, ни каких-то конкретных условий — просто, мол, "если вдруг надо — вы пишите, договоримся". Как вы понимаете, предложений, конечно же, не поступало. Что я сотруднику JetBrains и попытался объяснить в непродолжительной переписке. В конечном счёте получил такой ответ:
If your project does not provide commercial services then please remove the commercial section from the website and let me know once you do it — i will then issue an open source license for you.
"Ну ни фига себе" — подумал я — "это значит получается я должен удалить с сайта информацию об открытости к коммерческим предложениям в обмен на 200 долларов (стоимость лицензии на ReSharper) в год?! Нет, ребята, это так себе предложение. Спасибо, не надо". И не стал продолжать диалог.
Тут, конечно много вопросов: во-первых, сколько маны небесной рекомендуется употреблять во время разработки, чтобы не потолстеть? если мой проект используется в компании, в которой я работаю, но разрабатываю я его в свободное время — это считается оказанием коммерческих услуг? Во-вторых: если мой проект не используется в бизнесе — он получается бесполезен? JetBrains готов финансировать бесполезные проекты? а если я указываю свой opensource-проект в резюме и это повышает мои шансы быть нанятым — это же тоже коммерческое использование? Так может его ещё и в резюме не указывать? А вот ещё бывает что компании поддерживают контрибьютора информационно — это же тоже деньги просто в другом виде? Необходимо уточнить! Совсем ничего не понимаю.
В общем, как вы понимаете, я встал перед задачей раскрутки и пиара в одиночку. Первая же идея, которая пришла мне в голову — надо написать как этим всем пользоваться. Здесь я решил схитрить и совместил полезное с полезным — я написал первую статью об RT на хабр (за которую и был приглашен НЛО). Идея была не столько в "я сделяль"-пиаре, сколько в том, чтобы разместить на хабре ну хоть какую-то русскоязычную документацию. Мои коллеги всё равно из России, поэтому для них нужен был хотя бы небольшой мануал, а объяснять каждому в переписке или голосом одно и то же не хотелось. Так и родились первые три статьи, которые были довольно холодно встречены аудиторией. Это и понятно — вряд ли кому-то из хабра-сообщества они были полезны, так что по этому поводу я не переживаю.
О документации
Мысль о том, что неплохо бы дать людям какие-нибудь знания о том, как моим фреймворком пользоваться не давала мне покоя, пока я её окончательно не сформулировал в таком виде:
С документацией вот какая штука: она бесполезна без кода проекта, а код проекта бесполезен без неё.
Замечательная идея, только вот о написании документации я знал катастрофически мало. Помимо мемчиков и шутеечек про недокументированный код, задней мыслью-то было понятно, что для описания методов вроде как надо использовать глаголы, а конструкторы документировать необязательно. На этом мои знания, пожалуй, исчерпывались. Я сверстал первую версию README, заполнил описание проекта и стал думать.
Как дилетант подходит к написанию документации? Конечно же через doxygen, что же ещё может прийти в голову программисту? Сказано — сделано. Я задался целью запилить XMLDOC (это как javadoc, только в C#) таким образом, чтобы сборка в Release не выдавала ворнингов "об отсутствующих комментариях для публично-видимых членов".
К публично-видимым членам компилятор C# относит типы, методы и свойства, видимые "снаружи", при использовании вашей сборки другими пользователями. В общем всё, что не internal
и не private
в понимании C#. В настоящее время статистика такова: в проекте около 150 публичных типов (всего — около 250), которые содержат суммарно около 700 публичных методов и 260 пропертей. И всё это надо как-то пользователю объяснить. Я приуныл, но сел писать.
Через первые 20 задокументированных пропертей я заметил, что мой писательский потенциал как-то поиссяк, а словарный запас поистощился. Как, скажите мне, в одном предложении сформулировать на что влияет поле класса? Желательно при этом не использовать пассивный залог, причастные обороты и громоздкие описания обстоятельств времени. Я зауважал технических писателей. Ребят, правда: берегите технических писателей — у них действительно собачья работа. Меня осенило: можно подсмотреть как решают проблему с пропертями в MSDN! Это действие подарило мне абсолютно дивную словесную конструкцию.
Попробуйте начать описание свойства класса со слов "Gets or sets whether..." — каким-то магическим образом концовка сама приходит к вам в голову!
Словом, стало легче.
Через 30 задокументированных классов я начал понимать, что что-то в моём проекте слишком дофига этих самых "публично видимых членов". Процесс документирования был прекращён, код был тщательно проанализирован на предмет того, что пользователю действительно нужно, а без чего пользователь обойдётся. В результате примерно на треть хлама, нуждающегося в документировании, лёг ровным слоем модификатор internal
(это как package
в Java). Вот как истинные профессионалы решают проблемы с документацией, да! Скрывай лишнее. Словом, стало легче.
К моменту, когда примерно половина предупреждений компилятора про комментарии была починена, я почти что впал в депрессию.
Выяснилось, что одних лишь стандартизированных комментариев в коде недостаточно! И doxygen не спасёт.
Дело в том, что в суровой реальности пользователь смотрит на reference-портянку, заботливо сгенерированную doxygen-ом, и видит 150 классов, интерфейсов и enum-ов, которые чёрт ногу сломит как между собой связаны. А запихивать примеры использования в каждый класс и каждый метод — это утопиться ж можно! К завершению написания XMLDOC-а я подошёл в полной уверенности, что без "человеческой" документации обойтись не получится. Внезапно, стало совсем плохо.
Покончив с XMLDOC-ом, я решил посмотреть как устроена документация в уже существующих проектах и остановиться на варианте, который мне больше всего бы понравился. Выбор пал на казавшуюся мне дивной документацию к Autofac, сделанную на платформе ReadTheDocs.ord. Меня впечатлил формат reStructuredText. Решение принято, я засел за написание плана документации. И представляете что? Получалась полная фигня. В какой последовательности излагать? Как пользователь будет это читать? Что сначала, что потом? На что откуда должны быть ссылки? Тонна вопросов и вот уже черновики планов летят в урну.
Я решил попросить помощи и обратился к замечательному chebureque, который на ту пору только начинал своё большое дело по оказанию услуг технической документации. Его усилиями мне был выделен студент, желающий познать тайны искусства технического текста. В ходе нескольких недель работы, студент был замучен описаниями и звонками о том, что и как надо писать. Пришло осознание, что проект весьма специфичен и требует знания многих технических деталей. Если я начну их описывать текстом, то… То в итоге это, чёрт побери, и будет документация! А если я буду говорить голосом и контролировать процесс, то на работу, обсуждения, согласования и ревью у нас уйдёт никак не менее полугода. Столько времени и свободных денег на оплату работы студента у меня попросту не было. Так что последний был вознаграждён за месяц усилий и отправлен с миром, да благословением.
Я остался один на один с пониманием, что хорошая документация к проекту — это долго и дорого. Сделать её усилиями одного человека за вменяемое время фактически невозможно.
Закончилась же эта история в лучших традициях: автор психанул, взял встроенную в репозиторий github wiki и просто начал чистым markdown-ом писать то, что ему приходит в голову про проект. Как только всё, что пришло в голову было записано, я переставил блоки текста в последовательности, которая мне кажется правильной, разделил по страницам и вылил в GitHub. Хай будет. Так и живём.
Это сейчас я знаю про эту картинку. Но переписывать что-либо, если честно, сил просто нет. Констатирую, что в вопросах документации я-таки сдался. Печально.
Отсутствие пользователей и конференция
Отсутствие конференции и пользователи
Прошло время. Я выпустил ещё 9 версий пакета в NuGet, починил баги, добавил функциональности. Итак, шёл 2016 год и я снова подумал что неплохо было бы рассказать о своём проекте ещё кому-либо. В то время я находился в Эстонии (потому что почему бы и нет?) и меня осенила гениальная идея!
А почему бы не сходить на конференцию и не показать там что у меня есть в репозитории?
Выдача гугла по запросу "european it conferences 2016" озадачила меня. Нигде не говорили про C# и TypeScript. Везде web, мобильные устройства, роботы, криптовалюты, IoT. Темы максимально абстрактные, формулировки максимально широкие. Столько всего, а пойти некуда! Походив по сайтам, почитав анонсы и заголовки, я с удивлением обнаружил, что огромное количество конференций проходят, буквально, "ни о чём". Описания гласили нечто в духе "вызовы бизнесу в эпоху повсеместного Интернета", "облачные технологии в современной экономике", "эволюция коммерции на рубеже веков". Воистину, паранойя и футурология! В названиях прямо читается немая просьба "эй, кто-нибудь, пожалуйста придите и расскажите что же со всеми нами будет!". Но да ладно.
Поскитавшись изрядно и почитав всякого, я нашёл неприметную, почти что местячковую конференцию DeveloperDays 2016 в Польше. Я написал организаторам и спросил — можно ли? Довольно быстро мне ответил один из организаторов, парень с трудно произосимым именем Кржиштов и сказал что можно. Только, говорит, у нас правило есть — все, кто регистрируется слушателем выбирают по 10 интересующих их спикеров. Пройдёте этот отбор — мы вам и билет подарим, и размещение оплатим. Я отправил описание, с меня так же попросили фотографию, и я стал ждать. Через пару недель молчания в почте, я сделал смелую догадку что меня не выбрали. Написал Кржиштову и тот подтвердил мою догадку. Говорит, ваша тема, к сожалению, заинтересовала только двоих человек.
— Не расстраивайтесь — говорит мне Кржиштов — всё равно приходите.
— Ага, щаз! Делать мне не фиг в Краков тащиться! —… думаю я. Но пишу, конечно же — Ничего, всё в порядке. Удачи вам с конференцией.
Непредвиденные последствия начались после. Счётчик скачиваний в NuGet неожиданно пошёл вверх, а в проект добавилось ажно порядка 10 звёзд. Конечно же, от пользователей с подозрительно польскими именами и удивительно польскими фамилиями. Я бы даже сказал, с катастрофически польскими, потому что эти люди начали создавать issues! Что странно: багов почти не находили. Всё больше просили фич и задавали вопросы, которые не освещались в документации. В итоге, после третьего же бейджика faq, присвоенного очередному закрытому тикету, ко мне пришла, вероятно, самая лучшая маркетинговая стратегия для своего проекта.
StackOverflow! Черт побери, это гениально!
Я зарегистрировался и первым же делом пошёл и нашёл целых три вопроса про экспорт C#-классов в TypeScript, на которые незамедлительно и ответил наглым самопиаром. И о чудо — моим ответам поставили плюсики! В срочном порядке был переписан README на более доходчивый, а чуть позже была добавлена секция Support policy. Там было указано что отныне все вопросы принимаются на StackOverflow по определённому хэштегу, о создании которого я попросил одного из пришедших пользователей. Потому что ну реально удобный формат для хранения FAQ. На хэштег я подписался через RSS и с энтузиазмом приступил к этапу поддержки проекта.
Поддержка
После того, как RT засветился на StackOverflow — в проект начали медленно, но верно течь звёзды. При том от людей из абсолютно разных мест и компаний! В списке stargazers отметились люди из Barclays и Microsoft. Географически же звёзды приходили из разных уголков мира — США, Дания, Германия, Румыния, Канада, Австралия… И даже Беларусь! По секрету скажу, что одно время в Insights было видно, что за некоторыми страницам документации упорно наблюдают из JIRA какой-то американской компании.
На StackOverflow же я получил несколько вопросов, на которые оперативно ответил, за что был вознаграждён плюсиками и репутацией. Приятно. В issues периодически приходили багрепорты, которые я старался более-менее оперативно чинить. Неприятно. В какой-то момент в проекте появились тесты. Я естественным путём пришёл к их необходимости, не пытаясь покрыть тестами что-либо заранее. Это простенькие, но гордые регрессионные тесты, в которых я воспроизводил присланные баги (к сожалению, не все — по техническим причинам) и чинил, закрывая баг ссылкой на тест.
TDD — удобно, но только с определённого этапа и только для контроля регрессии.
И знаете — люди-таки приятно удивляются, когда их баг во фреймворке более-менее оперативно фиксится. Это ясно из лайков и коротких, но душевных благодарностей вроде
Было получено несколько небольших, но хороших пулл-реквестов. Почти все они были смерджены в мастер (пусть и с изменениями), что прибавило проекту контрибьюторов — их уже целых 10, хотя 99% кода по-прежнему остаётся за мной.
Самые большие проблемы поддержки были с несколькими конфликтующими фич-реквестами, а так же с тем, что как C# так и TypeScript довольно быстро меняются. Экосистема развивается настолько быстро, что я буквально не успеваю выкатывать обновления!
За время существования RT, успел уйти dnx, появится .NET Standard, пройти 3 релиза .NET Core, выйти около 20 релизов TypeScript и под всё это добро мне приходилось оперативно выпускать апдейты, чтобы не выпасть из тренда.
А вчера я узнал, что один из фреймворков-конкурентов до сих пор не выпустил поддержку .NET Core :)
И вот я здесь
Ощущения, как ни странно, тревожные. Несмотря на все получаемые благодарности, поддерживать такой проект и обратную связь с пользователям довольно сложно (кто бы мог подумать!). Да, я делаю полезное дело, но… мне-то это зачем? Да, это опыт: опыт общения с аудиторией, написания документации, несения публичной ответственности, планирования. Технический опыт в конце концов (сдался мне этот .NET Core, да купила баба порося). Однако что это даёт помимо опыта? Если честно, то ничего.
За последние 3 года никто этим проектом не интересовался помимо его непосредственных пользователей. Работодатели? Рекрутёры? Пха! Не смешите мои тапки. Ссылка на проект торчит во всех профилях, но не упоминается ни в одном письме с предложением о работе. Как будто его не существует. А отдельные индивиды даже просили меня приложить к резюме пример кода zip-архивом — вот настолько у ссылок на GitHub развит навык мимикрии и невидимости! В общем, приготовьтесь к тому, что в карьерном плане небольшой, но живой OSS-проект вам не особо-то поможет.
Что даёт opensource-проект своему автору? Да на самом деле почти ничего.
Зачем же тогда?
Я могу понять зачем OSS нужен компаниям: они таким образом поднимают себе репутацию на ровном месте (opensource как форма публичной благотворительности) и увеличивают доступность своих технологий для потенциальных пользователей (повышают охват). Показателен интерес Microsoft к OSS — через .NET Core и "Microsoft loves Linux" активно привлекаются пользователи на MS-инфраструктуру, в которой немало интересных коммерческих продуктов — Azure в частности. И как по мне — имеют право! Цель благородная, средства законные.
Компании зарабатывают на opensource. Да-да, вот например Percona берёт mysql, собирает кастомные билды, фиксит баги и допиливает фичи "под заказчика". Иногда, разумеется, и в сам mysql коммитит, и на вопросы отвечает. Но в основном продаёт свою экспертизу в области использования mysql для ваших тёмных делишек.
Бесчисленное множество разнокалиберных интеграторов, а так же мелких системных администраторов не гнушаются продавать свои услуги по установке и настройке OSS-программного обеспечения, скажем, для офисных нужд. И это — их хлеб с маслом: во многих OSS-проектах даже с документацией чёрт ногу сломит, а эти вроде как разбираются. Правда, за денежку.
Так же используют OSS, внезапно, и для политических целей — я слышал историю о том, что, якобы, через разработку Apache Harmony, ныне почивший Sun Microsystems принуждали открыть исходники JRE (могу ошибаться, слухи всё-таки).
Я могу понять зачем OSS нужен сотрудникам компаний, если такую деятельность компании готовы оплачивать. Делов-то — убедить босса в том, что занимаешься очень полезным делом, "делаешь мир лучше" — и готово. Можно получать зарплату и самому себе ставить задачи. Компания же может использовать этот проект для технопиара — показать, мол, "смотрите как удобно работается в нашей компании — сотрудники от безделия ажно свои проекты создают, а мы открыты к идеям" и т.п. И такую версию событий слышал.
Я могу понять зачем OSS нужен молодым разработчикам — получить промышленный международный опыт, показать себя. Здесь лучший вариант — выбрать какой-нибудь существующий проект и основательно в него покоммитить. Поучаствовать в обсуждениях, войти в user group, community, поотвечать на вопросы, пооказывать поддержку. С таким опытом хорошо идти на собеседование в серьёзные компании — будешь знать что примерно происходит в живой разработке, интереснее отвечать на вопросы на собеседовании. Да и английский попрактикуешь в конце-то концов. Можно гордо повесить на себя бейджик "member of something user group, contributor".
Сделать же большой и сколько-нибудь известный OSS-проект самому, с нуля, в современных реалиях практически невозможно, как мне кажется. Именно поэтому я называю свой опыт дилетантским.
И дело вовсе не в том, что вы — плохой программист. Нет, программист вы, скорее всего, честный и хороший. А вот маркетолог, сотрудник техподдержки и технический писатель в одном лице — скорее всего нет.
Для того, чтобы проект всерьёз работал на ваши карьерные и рекламные цели, вам нужно построить вокруг него заметных размеров community. А чтобы его построить — нужны или деньги, или огромное количество времени и сил, которыми, опять же, у вас нет возможности разбрасываться — иначе у вас станет существенно меньше денег и, как следствие, еды в холодильнике.
Мне кажется, что единственное место, где бесплатные продукты, сделанные одиночками с нуля действительно ждёт целевая аудитория — это, пожалуй, linux. Особенно дивный мир "настольного" Linux. Система не то чтобы сильно популярная, много чего из программного обеспечения нет — вот пользователи и рады любой разработке. Однако уже и туда компании принесли свои ресурсы и деньги. Вообще как-то даже обидно, что из "творческого порыва", смелого экспериментаторства и возможности самореализации для разработчиков, opensource превратился в один из инструментов ведения бизнеса и маркетинга для компаний. Но рынок есть рынок. В конце концов деньги потрачены, результаты есть. Без такой помощи открытому ПО было бы гораздо хуже, чем есть сейчас.
Но давайте просто будем честными. Если какая-то коммерческая структура заявляет, что она-де "поддерживает opensource", подразумевая повышенную духовную чистоту и благодетель — это в большинстве случаев наглая ложь и передёргивание.
Компании не делают то, что им не выгодно.
Поддерживая opensource, компании как бы входят в "воображаемый уставной капитал" и сохраняют за собой право использовать побочные эффекты спонсируемой opensource-разработки в своих целях — будь то маркетинг, или прямая монетизация. Из этого следует
Тревожный вывод: полезность OSS-проекта для целевых пользователей и полезность OSS-проекта для спонсирующей его компании — вещи зачастую диаметрально противоположные. И печальная реальность такова, что для успешности проекту нужно быть полезным прежде всего для своего спонсора. А не для пользователей.
Нет, я не призываю, разумеется, к коммунистической революции, "отнять и поделить" и "изгнать всю коммерцию из opensource". Я призываю снять розовые очки и не думать, что если компания поддерживает OSS, то это безвозмездная забота об индустрии и делается от большой доброты душевной. Вовсе нет. Я бы сказал, что компании выгодно вкладывать копеечку при условии, что её уши будут торчать из проекта во все стороны. И в этом нет никакой благотворительности. Как только это условие нарушается, компания теряет к проекту всяческий интерес. А если интерес есть, то будьте уверены — компания свой гешефт получит. Но получите ли его вы? Вот в чём вопрос...
Ладно, будем прощаться. Напоследок я приведу некоторые цифры о своём проекте:
- около 5000 строк кода, 225 классов, 1428 методов, 380 пропертей;
- 43 релиза выпущено;
- 84 issues закрыто;
- 10 контрибьюторов;
- 107 звёзд;
- 28 форков;
- 1100 посетителей за неделю;
- ~50 000 скачиваний-установок в NuGet (примерно 40 раз в день);
Ссылка на GitHub, ссылка на NuGet.
Успехов!
Комментарии (145)
RouR
13.01.2019 14:18+2небольшую утилитку, чтобы перегонять C#-вьюмодели в TypeScript-код
Для меня это нужная фича. Пробовал разные либы, разные инструменты, всеми был недоволен, искал что получше. Ваш вариант ни разу не попадался, даже в поиске на StackOverflow. Хотя мне было очень надо, искал активно. Так что просто выложить действительно недостаточно.
Сам я недавно написал небольшой opesource (на другую тему, не ts), выложил на и гитхаб, и как nuget-пакет. Так же, отдельным репозиторием сделал тестовый проект, с использованием этой либы, в качестве примера. Заодно нашел пару багов, немного поменял архитектуру и понял, что наврятли оно будет кому-то нужно. Так что следующий шаг — статью на хабре, я решил не писать.
Примерно так рождаются и умирают opensource-проекты. Ну хоть прокачал свои навыки.Druu
13.01.2019 16:50+1Ваш вариант ни разу не попадался, даже в поиске на StackOverflow.
Два года назад решал эту проблему, библиотека автора нашлась одной из первых, если вообще не первой, хз. Остановился правда на другом решении в итоге.
Miron
14.01.2019 02:32Примерно так рождаются и умирают opensource-проекты. Ну хоть прокачал свои навыки.
Вы это рано оцениваете, я иной раз вытаскиваю из гитхаба поделки, которые лежат там уже по 5 — 7 лет и более. Потому просто может время не пришло. Некоторые вещи вообще приходится заливать с веб.архив'а, так как личных интернет страничек авторов, которые обычно в прошлые времена хостились на сайте разных университетов, уже на серверах нету.
MaximChistov
13.01.2019 16:07+4Имхо, Ваша проблема типична для технаря — вы не признаете обязательность рекламы. Какой бы крутой не был ваш проект, если его не рекламировать, причем довольно активно, он никому не будет нужен. То, что вы сделали в StackOverflow — по сути небольшая, но очень целевая реклама — и отдача сразу пошла. Другой вопрос, что за рекламу надо платить либо деньгами любо временем, а большинству опен сорсников это не нужно.
pnovikov
13.01.2019 16:24+5Человек хороший, тут об этом 3/4 статьи вообще-то. Что провести хорошую маркетинговую кампанию своими силами без бюджета, совмещая с 8-часовым рабочим днём — что-то близкое к невозможному. Поэтому и выплывают «в топ» проекты, сделанные при финансовой и информационной поддержке компаний.
MaximChistov
13.01.2019 16:35А где я писал что он плохой?) Но проблема тем не менее есть, почему-то обычно в технарских вузах никак не развивают тему обязательности рекламы для успеха продукта.
pnovikov
13.01.2019 16:37+5"Человек хороший" — это я тут к людям обращаюсь так. К вам в частности.
почему-то обычно в технарских вузах никак не развивают тему обязательности рекламы для успеха продукта
Потому что там готовят, как ни странно, технарей а не маркетологов.
StrangerInTheKy
13.01.2019 16:53+1Спасибо, отличная статья! У меня как раз есть пара идей для опенсорс проектов, что-то я начинал (и нахожусь в самом-самом начале), и примерно такие же мысли приходили мне в голову. Есть только одно замечание:
«Ну ни фига себе» — подумал я — «это значит получается я должен удалить с сайта информацию об открытости к коммерческим предложениям в обмен на 200 долларов (стоимость лицензии на ReSharper) в год?! Нет, ребята, это так себе предложение. Спасибо, не надо». И не стал продолжать диалог.
Вы думаете, что отказались от 200 долларов в обмен на гораздо большую сумму, а по факту — отказались от 200 долларов в обмен на 0 долларов. Причем это должно было быть вам очевидно уже на момент отказа.
P. S. Сделайте кнопочку «Donate». При ста звездах, как мне кажется, это уже может иметь смысл. Заодно и об этом опыте расскажете потом.pnovikov
13.01.2019 16:55+1Спасибо на добром слове, попробую чуть позже.
Вы думаете, что отказались от 200 долларов в обмен на гораздо большую сумму, а по факту — отказались от 200 долларов в обмен на 0 долларов.
Ну… ещё не вечер. :) Надеюсь. С того разговора прошло около двух лет — будем считать что на текущий момент я отказался от 400 долларов. Пока что это даже не моя месячная зарплата :) Смысл этой реплики в том, что 200 долларов в год (даже не кэшем!) — довольно маленькие деньги чтобы раз и навсегда отказаться от коммерческих амбиций.
StrangerInTheKy
13.01.2019 17:00Ну… ещё не вечер. :) Надеюсь.
Не подумайте только, что я вам чего плохого желаю. Но вашему проекту уже три года, а объявление об открытости к сотрудничеству принесло вам пока ровно 0, правильно? А между тем, 200 долларов у JetBrains — это, емнип, за год, а не навсегда (да даже если и навсегда, это все равно 200 долларов). Тем более, мне кажется, что люди, готовые предложить вам коммерческое сотрудничество, сделают это, даже если у вас не будет этого объявления.pnovikov
13.01.2019 17:02+3Звучит дельно и логично, но к JetBrains не пойду. Всё равно осадочек от разговора неприятный остался.
Ради справедливости, стоит упомянуть что без изменения текста на сайте JetBrains был готов дать мне единовременную скидку в 25% на свои продукты. То есть — 50 долларов, учитывая что мне нужен только ReSharper.
Я так же отказался. Ну правда, инвестиции мне в инновации, крохоборство какое-то же. Я не голодаюший Поволжья вроде как.
Leopotam
14.01.2019 02:44Почему-то пропустил текст под спойлером. На самом деле не 200 баксов, а 600 или около того — они выдают весь toolbox. Да, мне его выдали пару лет назад как раз под проект библиотечки (у меня MIT и нигде не указано про платный саппорт, хотя никто его не запрещает). К сожалению, активного применения софту не нашел (rider тот еще тормоз) и продолжил пользоваться vscode с омнишарпом. Спустя год я просто не стал продлевать лицензию, хотя возможность такая была. Toolbox выдают на проект, т.е на всех постоянных контрибьюторов / членов команды разработчиков.
pnovikov
14.01.2019 08:20vscode с омнишарпом
А вы терпеливый...
Leopotam
14.01.2019 11:26Моей основной ОС является MacOS, поэтому выбор не велик — или Rider или vscode. А учитывая, что я еще пописываю на typescript, а последняя версия C# не нужна, то выбор маленькой единой оболочки очевиден. Единственный минус — microsoft уже несколько лет не может подпилить нормальное форматирование и приходится костылить свое — 572k установок, люди пользуются. :)
Areso
13.01.2019 19:02+1Из моего опыта: библиотеки, фреймворки, инструменты имеют шансы стать сколько-нибудь популярными. Готовый проект, если вы не Джон Кармак, таких шансов не имеет.
Возможно я не прав, но сложилось именно такое впечатление.da-nie
14.01.2019 06:39Возможно, это потому, что люди ищут решения для своих задач, а не хотят поиграть в чьё-то законченное приложение (которое вряд ли на 100% соответствует желаниям ищущего решение).
Areso
14.01.2019 09:46Это же опенсорс, недостающие проценты можно доделать самому, нет?)
К примеру, есть vcmi (aka Heroes Might and Magic 3), и ничего, смотрите как люди пилят.da-nie
14.01.2019 09:56+1Это же опенсорс, недостающие проценты можно доделать самому, нет?)
Удачи вам в этом нелёгком начинании. :)
К примеру, есть vcmi (aka Heroes Might and Magic 3), и ничего, смотрите как люди пилят.
Есть люди, они современные защиты игр ломают. Но это ведь не значит, что и я и вы сможете так. :)Areso
14.01.2019 10:02Удачи вам в этом нелёгком начинании. :)
Мододелы это целая субкультура, причем у каждой игры — своя.
Как вы думаете, будь некая популярная игра open source, моды делать было бы проще?
Есть люди, они современные защиты игр ломают. Но это ведь не значит, что и я и вы сможете так. :)
Другой уровень знаний, и другое их применение. Я уж не говорю, что это уголовка + вероятная компенсация убытков. Я бы не стал.da-nie
14.01.2019 10:09Мододелы это целая субкультура, причем у каждой игры — своя.
А вы попробуйте модифицировать, например, редактор Kino.
Как вы думаете, будь некая популярная игра open source, моды делать было бы проще?
Возможно, но я сомневаюсь в этом. Разобраться в коде чужой программы (особенно, если у неё штук 100 авторов) и модифицировать её под свою задачу потребует изрядного времени и сил, а, главное, знаний.Areso
14.01.2019 10:25А вы попробуйте модифицировать, например, редактор Kino.
Верю, что это непросто. Но если бы я пользовался данным ПО регулярно и у меня была бы такая потребность, я бы попробовал
Возможно, но я сомневаюсь в этом.
Т.е. по-вашему реверсить код из бинарников проще, чем читать исходник?da-nie
14.01.2019 10:33я бы попробовал
В том-то и дело, что это была бы только попытка…
Т.е. по-вашему реверсить код проще, чем читать исходник?
Я, говоря про моды, такой вариант не подразумевал. Обычно, раз есть моды, то игра реализует механизм расширений, доступный разработчикам модификаций. Тот же старый Doom не требуется ломать, чтобы сделать свои уровни и графику.
musuk
13.01.2019 20:04+1Отличная статья.
Но выкладывать на github надо всё, что может быть полезно другим людям. Хожу поиском по всяким лабам студентво и хелувордам, чтобы научиться использовать технологию. Особенно приятно, когда попадается какой-то забористый конфиг или хитрый вариант использования.
Bsplesk
13.01.2019 20:32Спасибо за статью — вроде бы «прописные истины», но реальный опыт всегда интересен. Буду ссылаться на вашу статью при обосновании сроков/ресурсов очередному менеджеру.
По роду деятельности приходиться создавать различную документацию, часто встречаю непонимание со стороны разработки и менеджеров, что на создание/актуализацию внятной документации которую одновременно используют несколько команд, может быть затрачено ресурсов примерно столько же сколько на написание кода, а порой и более (что-то сравни написании книги). При этом сам процесс по сложности (выбор средств, версионирование, вынос версий, согласования, ревью и.т.д) чем то схож с процессом разработки.
При работе в «Agile» режиме (без документации, что даёт скорость и экономит ресурсы на старте) при определенной зрелости (и ухода некоторых ключевых сотрудников) проект превращается в неподдерживаемую «массу», которую проще «выкинуть» и переписать заново.
vasyan
13.01.2019 20:33+2Одного моего знакомого не взяли на работу с формулировкой: «Мы посмотрели ваш код на гитхабе и он нам не понравился». Такие дела.
ianzag
13.01.2019 21:12+3Так это же наоборот замечательно! Было бы сильно хуже, если бы ребята посмотрели на его код уже после того, как взяли на работу. И он им не понравился. Сильно-сильно. Вот это была бы проблема.
vasyan
13.01.2019 21:24+1Ну вообще, человечек довольно скиловый.
Что именно за проект они откопали и что им не понравилось, они не сказали. Но это показатель того, что всё что ты коммитишь может быть использовано против тебя.ianzag
13.01.2019 21:28+3А я и не говорил ничего про скилы человека. Вопрос в другом. Если по какой-то причине — не важно какой — конкретные человеки не смогут сработаться, лучше об этом узнать как можно раньше. В идеале ещё на берегу. У ребят это получилось. Каждый пошло своею дорогой и нашел в конце то, что искал. Что есть гут.
da-nie
14.01.2019 06:37Учитывая, что код может быть совершенно разных лет (а значит, и опыта, подходов, технологий, знаний), а так же то, что выкладывалось сделанное для себя (а значит, без интереса писать лишние тонные кода, например, того же тестирования или всеми любимых паттернов), я бы не стал бы ориентироваться на код проекта на гитхабе для оценки подойдёт человек/не подойдёт. Её можно использовать как наинизший уровень, реализуемый данным разработчиком и не более.
ianzag
14.01.2019 07:37Это было в прошлом. Сегодня после введения бесплатных приватных репозиториев кто не спрятался — ССЗБ (tm) и отмазки «это для дома, для семьи» не работают.
da-nie
14.01.2019 08:42+1Раз репозиторий приватный, стало быть, виден только автору? (я никогда их не использовал). Но тогда откуда он окажется у интересующихся?
Я, например, никак не могу даже в приватный репозиторий ПО по работе разместить — у меня ПО для военной техники.
Это было в прошлом.
Вот именно, что код, который на гитхабе сделан в прошлом. У меня, например, там лежит самодельный DOOM под DOS. Ему 17 лет в обед. Но работает. Угадайте, много там «красивого» кода? :)ianzag
14.01.2019 09:08> Раз репозиторий приватный, стало быть, виден только автору? (я никогда их не использовал).
Да, это ваша персональная песочница. С доступом для тех, кому вы его явно дадите. Остальные не видят репозиторий.
> Но тогда откуда он окажется у интересующихся?
Если это приватный репозиторий — зачем ему оказываться у интересующихся? Это явно излишне.da-nie
14.01.2019 09:54Если это приватный репозиторий — зачем ему оказываться у интересующихся?
Изначальная посылка была такая:
Одного моего знакомого не взяли на работу с формулировкой: «Мы посмотрели ваш код на гитхабе и он нам не понравился». Такие дела.
А это значит, что тезис
Это было в прошлом. Сегодня после введения бесплатных приватных репозиториев кто не спрятался — ССЗБ (tm) и отмазки «это для дома, для семьи» не работают.
так же не работает, хоть есть приватные, хоть нет.ianzag
14.01.2019 10:06Отчего же не работает? Наоборот — работает.
Своя песочница на гитхабе — это в принципе удобно. Чисто технологически. Но при отсутствии халявных приватных репозиториев вставал выбор: или заводить платный аккаунт или выкладывать вот это вот все в паблик. Или, конечно же, забить на песочницу.
Подозреваю, что те, кто выбрал путь халявы через паблик, не всегда в полной мере отдавали себе отчет в том, что «опубликованное может быть использовано против них». Особенно если материал действительно не готов для паблика.
Сегодня такой проблемы нет. Достаточно зайти на гитхаб и провести аудит своих репозиториев. Решить, что стоит показывать наружу а что нет. Это так сказать совершенно бэсплатно. То есть даром. Если человек по какой-то причине это не сделал… Ну значит так оно ему надо. Сам себе злобный буратино.da-nie
14.01.2019 10:15А, вы с той стороны пошли, что типа в приватных репозиториях надо прятать свои разработки от чужих глаз? Но тогда вообще смысл выкладывания отсутствует — храните разработки дома и никому не показывайте. Разработки-то выкладывают чтобы кто-то ими пользовался, чтобы они кому-то пригодились, чтобы кто-то помог доработать.
ianzag
14.01.2019 10:35Чтобы разработкой кто-то мог пользоваться и за это не было больно и стыдно оная должна быть доведена до соответствующего уровня качества. Это и полноценная документация и тестирование и вот это вот все-все-все. В общем, полноценное ведение проекта.
Если чего-то из этого нет — привет, говнокод! Не важно, какой степени гениальности в нем заложены идеи. С инженерной точки зрения это, повторюсь, говнокод. Он не приспособлен к интеграции с окружающим миром и представляет ценность сугубо для своего автора.
Ну и хрен бы казалось бы с ними. Проходите мимо. Но! Выкладывая что-то в паблик человек автоматически говорит окружающим «Смотрите! Вот это вот я!». Даже если он это не хочет и совсем не подразумевает.
Не факт, что студенческий код 20ти летней давности который тогда был вполне себе по фану сегодня… в общем, скорее всего лучше такое в приват (если оно вообще нужно что само по себе вызывает большие сомнения).da-nie
14.01.2019 10:47Чтобы разработкой кто-то мог пользоваться и за это не было больно и стыдно оная должна быть доведена до соответствующего уровня качества.
А вот нет. Когда вы запускаете программу и она работает, как ожидалось, вам наплевать, насколько красив код внутри, есть ли там тесты, читаем ли синтаксис и прочее. Вам важно, что она работает как часы. И в таком виде она и пригождается. А исходник в данном случае бонус — мол, хотите что-то изменить, милости просим (если сумеете). Так же можно даже в таком коде подсмотреть что-то по работе с аппаратурой, API, или ещё что подобное.
Но! Выкладывая что-то в паблик человек автоматически говорит окружающим «Смотрите! Вот это вот я!». Даже если он это не хочет и совсем не подразумевает.
Не «вот это вот я», а «и это тоже я». В том числе.ianzag
14.01.2019 13:32> А вот нет. Когда вы запускаете программу и она работает, как ожидалось, вам наплевать, насколько красив код внутри, есть ли там тесты, читаем ли синтаксис и прочее. Вам важно, что она работает как часы.
В термине «говнокод» явно указан субъект — это код :)
Юзеру интересен конечный продукт и пофигу кем и как он написан. Мы имеем риск получить «говнопродукт» но это совсем не одно и то же.da-nie
14.01.2019 17:58+1Ваш код в любом случае устареет и будет забыт, независимо от его качества. Многим ли сейчас интересен совершенный код на фокале или коболе? Совершенный код нужен для проекта, который будет сопровождаться/модифицироваться длительное время. Если вы делали разработку для себя и выложили её на гитхаб, ожидать длительного цикла сопровождения и соответствующего кода будет несколько наивно. В конце концов, у автора конечные и весьма небольшие ресурсы. Хотя бы непросто помнить, как внутри программа устроена, если этих программ было написано множество самых разных. Поэтому стоит смириться: код, разработанный на энтузиазме, не обязан быть совершенным.
А коммерческий — как повезёт. Вот код игр от Кармака, скажем так, далёк от совершенства (это мягко сказано). Но кому до этого есть дело? Выложенные им исходники воспринимают с благодарностью. Потому что независимо от кода, результат его работы поражает воображение. Не важно, сделан гамбургер из коровы или, гм, из говна (была тут про это статья :) ), если вкус изумительный.
unC0Rr
14.01.2019 12:47в общем, скорее всего лучше такое в приват
Вот у меня есть проект игры, которому уже 14 лет. За код отдельных частей, написанных в ранних этапах разработки, мне реально стыдно, но вместе с тем это довольно значительные куски, которые просто работают, будучи отлаженными, и переделывать которые займёт месяцы. Прятать исходники тем более невозможно, что я не единственный вкладчик в код, и лицензия обязывает. Так и живу, краснея каждый раз, когда даю кому-либо ссылку на проект.
Но если речь о библиотеке, то я склонен согласиться.da-nie
14.01.2019 18:01Так и живу, краснея каждый раз, когда даю кому-либо ссылку на проект.
Не стоит краснеть. Вы же это сделали? Уйма народу только совершенствуется в маленьких кусочках и никогда не сможет написать с нуля прилично работающее приложение. Потому что просто являются винтиками большого проекта. Хорошими винтиками. Но только винтиками. Оттого и море болтовни про качество кода и очень мало хороших программ, созданных не в фирмах и не на работе.
0xd34df00d
14.01.2019 15:41Да на самом деле хорошо. Если работодатель не понимает, что на гитхабе всякое бывает по разным причинам, и не хочет обсуждать, что он там увидел — ну и хорошо, что так рано выяснилось, что нам с ним не по пути!
ianzag
14.01.2019 15:47Ну оно то конечно так, да. Но зачем давать лишний повод для вопросов? Что мол это было буквально дцать лет назад и вообще это было неправда и сегодня я бы утопил за такой код и прочее блаблабла…
Чтобы в это [потенциально] ввязываться должна быть разумная причина. Выше, допустим, товарищ привел пример со старой игрушкой. Вполне себе понимаемая причина. Но просто так устраивать в паблике доску своего почета за последние дцать лет — это может выйти боком.0xd34df00d
14.01.2019 17:14Просто это поведение по умолчанию, чтобы не заморачиваться.
У репозиториев ещё даты обновлений видно на гитхабе. Если там какой-то код, который менялся последний раз 10 лет назад, то, по идее, вопросов быть не должно.
vsb
14.01.2019 01:24Похоже стоит заводить два гитхаба. Один личный, про который никому особо не болтать, один публичный, с вылизанным кодом.
selivanov_pavel
13.01.2019 20:52+1> Зачем же тогда?
Торвальдс уже давно сказал: Just for fun. Единственная прибыль от создания OpenSource — удовольствие от понимания того, что ты сделал что-то полезное и люди этим пользуются. Рассчитывать на какую-либо материальную отдачу бессмысленно, в лотерею выиграть и то вероятнее.
Про раскрутку: кроме stackoverflow, имеет смысл выложить описание в соответствующие сообщества на реддите. И туда же — новости о выходе мажорных версий.pnovikov
13.01.2019 21:01А, я забыл написать про реддит, да. Ну… вы догадываетесь какой результат принёс пост там, если я про него даже забыл написать :)
vasyan
13.01.2019 21:03+5Торвальдс это делал Just for fun, когда сидел в чулане у мамки на шее. Потом он вполне себе за это деньги получал. А так да, если у тебя поднялся в пирамиде Маслоу до самой вершины, то на топ залезть, как раз можно с помощью Open Source проекта
0xd34df00d
14.01.2019 00:05Это можно делать JFF и у мамки на шее в 14, и в общаге в голодные 18, и параллельно с дипломом и второй-третьей адекватной работой в 23, и параллельно с совсем фуллтаймом в 27. Инфа из первых рук, так сказать.
pnovikov
14.01.2019 00:16И результат тогда тоже будет — just for fun.
0xd34df00d
14.01.2019 00:17+1А это плохо?
Мне регулярно это помогает в собеседованиях всяких. Да и навык никуда не девается, тащем. А что навыка написания техдоков или маркетинга нет — ну и ладно, это всё равно не моё.
pnovikov
13.01.2019 21:32Единственная прибыль от создания OpenSource — удовольствие от понимания того, что ты сделал что-то полезное и люди этим пользуются. Рассчитывать на какую-либо материальную отдачу бессмысленно
Вот о том я и говорю: хорошо быть мальчиком-смузихлёбом с контрактом в гуяндбуке на пять лет. С расширенной мед. страховкой, отпуском и оплачиваемыми билетами+трансфером до конференций+размещением. Хорошо светить личиком на сцене во славу пиара родной конторы и пафосно заявлять что, мол, расслабьтесь чуваки, opensource — это Just for fun. Это вот они могут себе позволить такую формулировку.
Только это всё не про нас. И не про вас. И не про читателей статьи. Это важно понимать. А ещё (нам и вам) важно понимать как это всё на самом деле работает в современном мире, как вписывается в бюджеты и финансирование, кто оплачивает весь этот банкет и кто и что с этого имеет. Это поможет определить наше с вами место в этом бардаке лучше чем фраза "Just for fun".
ianzag
13.01.2019 21:41+8> Вот о том я и говорю: хорошо быть мальчиком-смузихлёбом с контрактом в гуяндбуке на пять лет. С расширенной мед. страховкой, отпуском и оплачиваемыми билетами+трансфером до конференций+размещением. Хорошо светить личиком на сцене во славу пиара родной конторы и пафосно заявлять что, мол, расслабьтесь чуваки, opensource — это Just for fun. Это вот они могут себе позволить такую формулировку.
Ммм… Ну платят кому-то. Бывает. Вам судя по желчной реакции нет. Точнее — на лицо острое чувство обиды от собственной недооцененности социумом. Не переживайте! Все ещё сбудется!pnovikov
13.01.2019 21:48Ну платят кому-то. Бывает
А если платят — то где же тут "некоммерческость" и Just for fun? Занятная ситуация — в некоммерческом духе opensource нас удивительно часто уверяют люди, которые получают за это деньги. Я всего лишь указываю на некую непоследовательность такой позиции.
на лицо острое чувство обиды от собственной недооцененности
Благодарю вас за заботу, но смею заверить что если буду нуждаться в психоанализе — обращусь к профессионалу.
ianzag
13.01.2019 21:52+5> А если платят — то где же тут «некоммерческость» и Just for fun? Занятная ситуация — в некоммерческом духе opensource нас удивительно часто уверяют люди, которые получают за это деньги. Я всего лишь указываю на некую непоследовательность такой позиции.
Простите, но почему вы решили. что open source — это сугубо джаст фо фан? С чего вдруг :-?pnovikov
13.01.2019 21:54Нажмите кнопочку «показать ветку комментариев» над вашим комментарием. После чего прокрутите до самого верха. Читайте. Там русским по белому написано кто это сказал.
selivanov_pavel
13.01.2019 23:45+3> хорошо быть мальчиком-смузихлёбом с контрактом в гуяндбуке на пять лет.
> Только это всё не про нас. И не про вас. И не про читателей статьи.
Я не программист, а админ/devops, но тем не менее у меня получается иногда записывать в блог или выкладывать на гитхаб какие-то мелкие наработки, которые можно целиком куском выдрать из проекта. По согласованию с работодателем, разумеется. А также писать баг-репорты или предлагать PR для исправления каких-нибудь мелких багов, в которых я сам могу разобраться.
Более того, как раз когда я работал в Яндексе, как раз почти ничего выложить не получалось, потому что в основном всё было завязано на специфичные для Яндекса внутренние сервисы и API.pnovikov
13.01.2019 23:49записывать в блог или выкладывать на гитхаб
А поддержка? А документация? А апдейты? Я вот как раз об этом говорю. Выложить какую-то вещь в формате "берите кому не жалко, автор ни за что не отвечает" — это-то да. Вполне себе можно и по фану. Но в такой ситуации особо-то и не о чем рассказывать, нечего обсуждать. Плюс, что-то мне подсказывает, что Торвальдс имел в виду не это.
selivanov_pavel
14.01.2019 00:08+3> А поддержка?
Мне приятно помочь человеку, который использует мой проект. Если почему-то не приятно или нет времени — я просто отвечу, что сейчас проектом не занимаюсь, но всегда рад принять пулл-реквесты с исправлениями. OpenSource же.
> А документация?
Я извращенец — мне нравится писать понятную документацию, которая позволит другому человеку взять и использовать мою наработку. К сожалению, нас таких мало, большая часть проектов на гитхабе выглядит как куча кода без какого-либо описания, что со всем этим счастьем делать.
> А апдейты?
Если мне захочется что-то допилить в проекте. Или если кто-то пришлёт PR.
Just for fun :)
0xd34df00d
14.01.2019 00:08Даже в такой ситуации есть, что обсудить, если вы в процессе находите интересные технические решения.
0xd34df00d
14.01.2019 00:07+2Единственная прибыль от создания OpenSource — удовольствие от понимания того, что ты сделал что-то полезное и люди этим пользуются. Рассчитывать на какую-либо материальную отдачу бессмысленно, в лотерею выиграть и то вероятнее.
Мои волосы стали мягкими и шелковистыми, когда я перестал париться за полезность, популярность, пользовательский фидбек (я тогда пытался приложение делать, а не библиотеку, пользователями были бы обычные люди). И стало очень тихо, спокойно и в удовольствие.
Я прокачиваю скиллы и имею редкий опыт работы с проектом, которому уже лет 14, и который я же и начинал. Успех или неуспех каких-то архитектурных решений становится очень хорошо виден на таком интервале. Вот такая прибыль.
selivanov_pavel
14.01.2019 00:41+1Прокачивать скилы — тоже хорошая отдача от OpenSource. Но даже для этого нужно, чтобы проект имел хоть какую-то популярность, пользователи репортили баги и писали фича-реквесты. Иначе никакого проку от открытости нету, можно те же 14 лет делать этот проект, никуда не выкладывая.
> я перестал париться за полезность, популярность, пользовательский фидбек
До такого дзена я ещё не дорос, но искренне восхищаюсь :)0xd34df00d
14.01.2019 00:50+2Прокачивать скилы — тоже хорошая отдача от OpenSource. Но даже для этого нужно, чтобы проект имел хоть какую-то популярность, пользователи репортили баги и писали фича-реквесты.
Можно придумывать себе задачи самому. Но да, какие-то пользователи и у него есть, и иногда они делают какие-то реквесты. Иногда это скучно (и я так и говорю, мол, не, сорян, это скучный таск, не буду делать, patches are welcome), иногда же наоборот — чувак, спасибо, охренительно интересная архитектурная задача кроется в твоём реквесте, сейчас же возьмусь!
Иначе никакого проку от открытости нету, можно те же 14 лет делать этот проект, никуда не выкладывая.
Тогда на собеседованиях код труднее показывать. Да и «мы увидели ваш гитхаб и вдохновлены, особенно понравилась ваша библиотека $lib и подход к $problem» я получал.
До такого дзена я ещё не дорос, но искренне восхищаюсь :)
Этот дзен пришёл через многие печали и потраченные нервы, так что, может, оно и к лучшему.
Taritsyn
14.01.2019 14:01+1Кроме Хабра, Stack Overflow и reddit есть и другие способы раскрутки:
- Регистрация проекта в каталогах
awesome-*
на GitHub (для .NET-библиотек можно использовать каталоги Awesome .NET! и Awesome .NET Core). - Выступить с докладом на митапе локального сообщества. В моем случае это были сообщества MoscowJS и MskDotNet.
- Находить статьи (или посты в блогах) о вашем проекте. Если они хорошие, то вы можете опубликовать ссылки на них на своих страницах в соцсетях. Если плохие, то постарайтесь в комментариях к статье внести какие-то исправления и более подробно узнать о проблеме. Если вы нашли очень хорошие статьи на английском, то заведите в документации раздел «Additional reading and resources» и соберите в нем ссылки на такие статьи.
- Завести в файле
README.md
раздел «Who's Using», в котором будете публиковать ссылки на тех кто использует ваш проект. Это повысит общую привлекательность проекта. Например, если у вас есть NuGet-пакет, то с помощью сервиса NuGet Must Haves можно найти пакеты, которые используют ваш пакет в качестве зависимости.
pnovikov
14.01.2019 14:071. Спасибо. Гляну на досуге
2. История об этом есть в статье
3. Ха-ха-ха. Кто ж о свежесозданном проекте писать-то будет? Это уже на поздних этапах разве что
4. Мой пакет не предназначен для того, чтобы поверх него строить другие пакеты. А who's using — опять же ха-ха-ха.Taritsyn
14.01.2019 14:102. История об этом есть в статье
Вы писали про конференции, а не митапы. Это разные вещи.
- Регистрация проекта в каталогах
Miron
13.01.2019 21:19Автор, я конечно могу ошибаться, но думаю что вы хотели обыкновенной похвалы за свои труды. Да и при том чтобы это было прям «здесь и сейчас», ну в смысле побыстрее. Желание быть кому-то полезным и необходимым — это ясно и понятно, но оно эгоистично, и немного несовместимо с бескорыстностью, которая присуща концепции OpenSource. И не смотрите на гитхаб как на «инстаграмм для программистов», не считайте лайки и звёзды. Фокусировка на результате частенько приводит к разочарованиям (и как следствие, освобождению от иллюзий: разочарование от слова «чары») потому что результата ещё нет, а ожидания от него уже есть :), а фокусировка на процессе наоборот приводит к повышению качества работы и продукта, собственно вы через это и прошли с некоторым трудом в попытках повысить качество документации, так как прекрасно понимали что документация — это вторая неотъемлемая часть вашей разработки. А что касается JetBrains и ваших слов о «commercial services». Тут тоже всё просто: они считают что «Ты — господин несказанного слова, А сказанного слова — ты слуга», но ваша позиция скорее ближе к: «Я хозяин своего слова — захотел дал, захотел забрал». Но ведь они имеют право на своё мнение и свои принципы так же как и вы, потому смысл обидок мне лично не ясен. Просто надо быть сильнее. И желательно иметь ответы на вопросы до начала какой либо деятельности это про "… мне-то это зачем?"
vasyan
13.01.2019 21:30Нет в концепции OpenSource бескорыстности. Там есть корысть получить бесплатный саппорт от тех, кому тоже нужен подобный код, синхронизировать разработку, завлечь людей на свои облака. Да куча всего.
Miron
13.01.2019 22:35+1Так если есть корысть — тогда нету бескорыстности? То есть или одно или другое? Само понятие OpenSource не исключает ни того ни другого, и это не зависит от того кто в нём что ищет и находит. В моём понимании, это зависит от автора кода и его целей и прописано в лицензии к исходникам или не прописано. Собственно потому и весь спор: есть люди которые ищут материальную выгоду в этой среде, есть те кто не ищет. Я так понимаю, Вы сейчас исключили часть авторов которые выложили в открытый доступ результаты своих наработок без каких либо замашек на материальные выгоды. От этого их проект OpenSource-ным не перестал быть.
saboteur_kiev
14.01.2019 01:09+2Ну почему же нет?
Есть огромное количество небольших проектов, которые совершенно бескорыстно лежат в опенсорсе.
Есть много проектов достаточно больших, которые могли быть начаты очень давно, развиться во что-то приличное, автор мог даже создать целую команду, а затем найти себе другие интересы, и выложить свой продукт в опенсорс (например FAR).
Есть много проектов где монетизация идет другим способом, но для этого способа продукт должен быть как можно более доступным и гибким, поэтому опенсорс — хороший вариант.
pnovikov
13.01.2019 21:43+3вы хотели обыкновенной похвалы за свои труды
Я в статью вставил целую картинку с похвалой в десятке вариаций. И то не всё влезло. Вы полагаете, мне надо больше?
бескорыстностью, которая присуща концепции OpenSource
В самом низу статьи я детально раскрывают термин "бескорыстность в OpenSource". Пожалуйста, прочтите ещё раз.
а фокусировка на процессе наоборот приводит к повышению качества работы и продукта
Я правильно понимаю что человеку, который 3 года методично поддерживает свой проект вы посоветовали сконцентрироваться на процессе?
но ваша позиция скорее ближе к: «Я хозяин своего слова — захотел дал, захотел забрал»
Какое же слово, позвольте узнать, я дал? Что готов помочь людям со своим проектом за денежку? А кто не готов? Это делает любой разработчик OSS, который использует свои наработки… кхм. На работе. Если быть последовательным, то JetBrains стоит прикрыть свою программу, ибо как полностью исключить коммерцию им не удастся. Я всего лишь озвучил итак очевидное на своей странице. И какого слова я должен быть слуга? Я должен пообещать JetBrains что никогда больше не буду использовать свой же проект в коммерческих целях? За что? За 200 долларов в год? А личико-то не треснет? Вот и вся суть ситуации, избавленная от ваших высокомерных моральных комментариев.
Но ведь они имеют право на своё мнение
Я никому не запрещаю иметь своё мнение. Просто мне хочется понять насколько оно последовательно.
Просто надо быть сильнее
Благодарю вас за совет, о котором вас не просили.
Miron
14.01.2019 01:41Вы полагаете, мне надо больше?
Честно, я не знаю надо ли вам больше похвалы, я могу лишь судить вот о чём: в начале пути вы явно на что-то рассчитывали, я думаю что в каком-то виде вы рассчитывали на признание своих трудов и благодарность от пользователей, в каком именно виде — только вам виднее, но из текста публикации я вижу что желание получить финансовую выгоду тоже имелось. Похвалы после 3-х лет трудов вам видимо стало достаточно. Не хватило чего-то ещё, я так думаю потому что статья содержит вопрос в виде «как это всё на самом деле работает».
В самом низу статьи я детально раскрывают термин «бескорыстность в OpenSource». Пожалуйста, прочтите ещё раз.
Я ознакомился, но я вижу что вы оцениваете OpenSource со стороны компаний которые делают на этом деньги. Обычно у них бизнес план, анализ рынка, и прочее, прочее… что соответствует такой схеме. Если хотели так же (хотя бы попробовать), то возможно у вас слабые места в оценке потенциального рынка применения вашего проекта (размеров рынка). И OpenSource он портит потребителя в некоторых ситуациях, пример: сам сижу на Linux — «да с какой стати я буду вам (разработчику) платить, если оно даровое и халявное». Это обратная сторона медали. Я так понял у вас упор на монетизацию при добавлении функционала был. Но разработчики что будут пользоваться вашим инструментом, вполне могут что-то сами допилить — возможно выйдет дешевле. Мне рынок если честно не понятен, но я не в теме, так как вам виднее и проект ваш. А желание донатить тоже не всегда возникает, это из личного опыта.
Я правильно понимаю что человеку, который 3 года методично поддерживает свой проект вы посоветовали сконцентрироваться на процессе?
Абсолютно. Сам был не однократно в ситуациях, когда основная работа мешала своим собственным поделкам. Я ни сколько не хотел занизить ваши временны'е вложения в проект. Но если вы чего-то недополучили, судя по статье и вопросам в ней, может тогда чего-то «недовложили», времени… внимания… рекламы в конце концов.
И какого слова я должен быть слуга?
В том то и дело, что решаете Вы. А я не знаю почему JetBrains следует таким принципам. Там ясно написано «if it meets all the requirements of JetBrains’ Open Source License Program.» У них есть программа лицензирования и они ей точно следуют. Почему? Да потому что это их продукты и они решили на каких условиях они готовы поддерживать своих пользователей/клиентов при помощи своего ПО. (ответ таков: не треснет) На вашем месте я бы проявил любопытство и поинтересовался «а почему именно так и в чём заключается корневые положения программы и политика компании». Мне было бы интересно, как пользователю. Получается вы хотите поддержки, но не до конца разобрались в принципиальных условиях её предоставления? Я думаю, Вы отказались от важной информации. В случае если они публично могут ознакомить с положениями своей программы.
Просто мне хочется понять насколько оно последовательно.
Так напишите им развёрнутые вопросы, «так мол и так, новичёк в опенсорс, могу ли я обратиться к вам за разъяснениями...». Вы извините меня за советы которые вы не спрашивали, но вам же хочется понять? Я думаю что бесполезно обсуждать программу тех, кто её написал, без самих авторов/утвердителей программы поддержки.
Я полностью разделяю вашу позицию, между прочим, я тоже думаю, что «какого это… я буду лишать себя своих собственных коммерческих прав на свой же проект». И что они «редиски» и захотели отнять у вас то что вы считаете неотчуждаемым.khim
14.01.2019 02:38+1Я полностью разделяю вашу позицию, между прочим, я тоже думаю, что «какого это… я буду лишать себя своих собственных коммерческих прав на свой же проект»
Никого они не лишают. Если даже вы начнёте вдруг заниматься коммерцией и начнёте предлагать платные консультации — лицензия будет действовать год. За этот срок вы, возможно, поймёте — окупают платные консультации Resharper или нет.
В случае если они публично могут ознакомить с положениями своей программы.
Достаточно зайти к ним на сайт и прочитать. Open Source — они поддерживают, Open Core — нет. Однако возникает проблема разделения. Вы под этот нож и попали.
pnovikov
14.01.2019 07:59Не хватило чего-то ещё
Слушайте, если вам прямо необходимо понимать статью в терминах "автору чего-то не хватало", то автору не хватало понимания как оно в целом работает и как вписывается в бизнес. Вот и всё. Автор поставил эксперимент — автор понял — автор написал. Пожалуйста, не ищите здесь каких-либо глубинных психологических подоплёк и скрытых мотивов. Автор не маньяк.
Я так понял у вас упор на монетизацию при добавлении функционала был
Нет. У меня был упор на "надо попробовать сделать, видимо по ходу дела будет ясно что люди с этого имеют". И-таки я нашёл ответ на этот вопрос, заодно поняв что я не отношусь ни к одной категории людей, которые с этого что-то могут иметь. О том и пост.
может тогда чего-то «недовложили», времени… внимания… рекламы в конце концов
Если я чего-то и "недовложил", то денег. В виде своего времени, или же в виде выполнения работы маркетолога. А вообще — вложил вот ровно сколько мог и хотел. И прикидываю сколько в это можно было бы вложить и какие результаты получить. Краем глаза, прикидываю кто может себе это позволить и кто каких результатов ожидает. Вот и всё что, в сущности, мне хотелось сказать. То есть опять же — прекратите пожалуйста исходить из того, что у меня есть какие-то глубокие (tm) психологические (tm) причины.
На вашем месте я бы проявил любопытство и поинтересовался «а почему именно так и в чём заключается корневые положения программы и политика компании»
И поступили бы абсолютно глупо, как мне кажется, впустую донимая сотрудников компании вопросами. Ещё раз подчеркну — JetBrains имеют право ставить любые условия — хоть что автор проекта должен носить подушку на голове треуголкой во время разработки. Они вообще говоря не обязаны этим заниматься в принципе. Я просто задался вопросом насколько эти условия последовательны и как они соотносятся с реальностью.
Я думаю что бесполезно обсуждать программу тех, кто её написал, без самих авторов/утвердителей программы поддержки
Справедливо полагаю, что личное участие авторов какой-либо концепции не является жизненно необходимым для обсуждения этой самой концепции.
захотели отнять у вас то что вы считаете неотчуждаемым
Ну хоть на том спасибо
khim
14.01.2019 02:27А кто не готов?
Много кто не готов. Я например. Как представлю себе — каких усилий может от меня потребовать оформление всего этого юридически… желание как-то сразу пропадает.
Это делает любой разработчик OSS, который использует свои наработки… кхм. На работе.
На работе он совсем за другое деньги получает. И в контракте, зачастую, никаких упоминаний OSS нету. А если есть — то компания же за Resharper и заплатит, не бог весть какая беда.
Если быть последовательным, то JetBrains стоит прикрыть свою программу, ибо как полностью исключить коммерцию им не удастся.
А у них и нет такой задачи. Они предлагают воспользоваться своим продуктом людям, которые не пытаются сидеть на двух стульях.
Я должен пообещать JetBrains что никогда больше не буду использовать свой же проект в коммерческих целях?
Вы должны сказать что вот сегодня, сейчас, вы никакой коммерцией, связанной с вашим проектом, не занимаетесь. А если займётесь в течение года — то со следующего года будете платить 200 долларов.
Вот и вся суть ситуации, избавленная от ваших высокомерных моральных комментариев.
Нет, вся суть ситуации в том, что непонятно как отличить вас от фрилансера, который клепает на основе им собственоручно написанного «фреймворка» (набор NPM-пакетов плюс 100 строк своего кода) сайты на заказ. Если JetBrains позволят всем получать opensource-лицензии если у них есть сайт на github'е с тремя коммитами — то у них сильно упадут продажи. Потому они решили провести границу достаточно жёстко — если есть коммерческая деятельность, связанная с вашим проектом, то — вам нельзя выдать бесплатную лицензию (ваша коммерция в этом случае и будет вас кормить), если нету — то можно.
Если вы готовы платить $200 в год за право оказывать платные консультации… ну это ваш выбор, никто вас не заставлял этого делать.pnovikov
14.01.2019 08:08На работе он совсем за другое деньги получает.
Как вы верно заметили выше, вопрос скользкий и является по сути вопросом разделения на Open Source и Open Core.
всем получать opensource-лицензии если у них есть сайт на github'е с тремя коммитами
Ну так то ж очевидно не мой случай. Коммитов знатно больше. У них там, вроде, даже специальный человек сидит и смотрит на проекты на этот случай.
платить $200 в год за право оказывать платные консультации
Я готов платить платить $200 в год за право пользоваться их продуктом. Как для коммерческой работы, так и для некоммерческой. Фактически на этом в итоге и сошлись. И это — мой выбор, как вы верно отметили.
selivanov_pavel
13.01.2019 23:56+1> вы хотели обыкновенной похвалы за свои труды. Да и при том чтобы это было прям «здесь и сейчас», ну в смысле побыстрее. Желание быть кому-то полезным и необходимым — это ясно и понятно, но оно эгоистично, и немного несовместимо с бескорыстностью, которая присуща концепции OpenSource.
Я не автор, но мне кажется, что быть делать что-то полезное и необходимое — это и есть основная мотивация для работы над OpenSource-проектом. Бескорыстность в плане не брать денег за свою программу — да, это OpenSource. Но совсем не получать никакой отдачи — это не OpenSource, это уже просто какое-то бессмысленное убийство времени и сил.
Так что хотеть для своего проекта популярности и востребованности — совершенно правильно. Если никто не будет им пользоваться — зачем вообще выкладывать это на гитхаб? Оно так же прекрасно полежит и на локальном диске, никому не нужное.
dempfi
13.01.2019 21:45+6Отличная статья, спасибо что написали.
Дополню пару моментов.
- Бесплатными путями (reddit, hacker news и прочие) можно сделать рекламу и это не требует особых скиллов маркетинга;
- OSS — это отличный способ учиться с пользой. Я, например, не могу делать одни и те же hello world’ы на новой технологии и предпочитаю портировать полезную OSS библиотеку (включая ее релиз в репозиторий пакетов). Сразу получаю реальный, близкий к проду, опыт с новым языком и платформой и при этом помогаю чуть-чуть сделать технологию лучше;
- OSS — это самый доступный способ для разработчика оказаться один на один со своими клиентами и заиметь опыт в полном цикле разработки продукта включая тот же маркетинг, ведение продукта, общение с клиентами и стратегическое планирование. Невероятно недооценённый и полезный аспект;
- Некоторые компании используют поддержку OSS начинаний своих разработчиков в первую очередь для комфорта этих самых разработчиков. Счастливый разработчик — продуктивный разработчик. Из моего опыта, все компании где поддерживали OSS входили именно в эту категорию;
- Больше двух более-менее популярных проектов одному потянуть сложно. Более-менее популярный — это сотни звёзд на гитхабе. Поэтому хорошо бы как можно раньше находить людей в коммьюнити (если они сами не проявились к этому моменту) кому можно делегировать хотя бы разгребание Issues.
Есть ещё огромное количество вещей связанных не с ведением своего проекта, а с помощью другим проектам, но статься не о том.
Daddy_Cool
14.01.2019 00:23+1Вставлю пять копеек по поводу документации.
По опыту — недостаточно описания ЧТО делает та или иная функция, нужно качественное объяснение ЗАЧЕМ она это делает. Это кстати концептуальная проблема. Разработчик (или опытный пользователь) представляет возможности системы целиком, а новичок — знает только часть, и как повлияет соответствующий Set или Get на то что нужно непосредственно ему — увы — еще не знает. Соответственно разработчик и пишет документацию таким образом, что часто её читать возможно только находясь уже на определенном уровне пользования.pnovikov
14.01.2019 00:41Вы всё пишете правильно. Посмотрите ещё раз на картинку про Tutorial/Reference/Explanation/How-To — она поможет написать ещё больше правильных вещей :)
От себя добавлю, что я рассуждал над документацией ни один месяц и каких только мыслей о структуризации мне ни приходило.
alex_zzzz
14.01.2019 00:31+1Не очень понял, зачем пиарить свой открытый проект. Звёздочки какие-то… Только если ради потенциальных денег, но тогда JetBrains правы, отказав в бесплатной лицензии.
Если же не ради денег, то чем меньше у проекта пользователей, тем меньше глупых вопросов, меньше запросов фич, которые тебе лично нахрен не сдались, и меньше багов в трекере. Хотите тоже использовать ? берите и молча используйте. Хотите фичу ? напишите. Под Линуксом не работает? ? ну вот и почините. Автор не нанимался решать чужие проблемы.
pnovikov
14.01.2019 00:44Хотите тоже использовать ? берите и молча используйте. Хотите фичу ? напишите. Под Линуксом не работает? ? ну вот и почините. Автор не нанимался решать чужие проблемы.
Ну вот, а мне говорят что это у меня завышенное ЧСВ :)
Да нет, вы знаете, просто не хочется делать и выкладывать бесполезные вещи. Писать в стол, так сказать, не хочется. А если вещь приносит кому-то пользу — например, экономит силы и время — то это экономия денег в конечном счёте. А стало быть появляется коммерция.
Вопрос во многом философский, но я склонен считать именно так. Нет коммерческого применения — нет пользы. Есть польза — найдётся кто-то, кто найдёт проекту коммерческое применение.
alex_zzzz
14.01.2019 01:20+1Да нет, вы знаете, просто не хочется делать и выкладывать бесполезные вещи. Писать в стол, так сказать, не хочется.
Писать стоит в первую очередь для себя, для решения своих проблем. Это не бесполезная вещь и не в стол.
А если вещь приносит кому-то пользу — например, экономит силы и время — то это экономия денег в конечном счёте. А стало быть появляется коммерция.
Когда тебе платят за труд ? это коммерция. Когда ты свой труд раздаёшь ? это благотворительность.
Вот пишешь что-нибудь себе, решаешь свою конкретную практическую проблему. Потом смотришь ? получилось вроде неплохо, проблему решает, паровоз зависимостей не тянет и к основному проекту гвоздями не прибито. Можно выложить в общий доступ. Зачем? Тебе не жалко, а кому ещё вдруг пригодится. На этом можно остановиться.
[Глупая аналогия]Допустим, я не сантехник, но придумал способ легко отремонтировать протекающий сливной бачок. Могу рассказать об этом соседу и даже показать. Но и мысли не будет ходить рассказывать об этом всему дому.[/Глупая аналогия]
pnovikov
14.01.2019 08:14Когда тебе платят за труд ? это коммерция. Когда ты свой труд раздаёшь ? это благотворительность.
Мил человек, да труд в любом случае оплачивается. И если вы не можете найти того, кто его оплатил, значит его оплатили вы :)
Можно выложить в общий доступ. Зачем? Тебе не жалко, а кому ещё вдруг пригодится.
Вот именно. Но на практике это работает далеко не всегда как задумывалось. И информационный эфир засорён всякими мотивационными речами, рассуждениями о моральной стороне вопроса, разного рода "компаниями, поддерживающими OSS". Я всего лишь пытаюсь в этом хламе разобраться, только и всего.
ianzag
14.01.2019 09:16> Вот именно. Но на практике это работает далеко не всегда как задумывалось. И информационный эфир засорён всякими мотивационными речами, рассуждениями о моральной стороне вопроса, разного рода «компаниями, поддерживающими OSS». Я всего лишь пытаюсь в этом хламе разобраться, только и всего.
«Не читайте советских газет перед едой» ©…
Оно вам зачем? Разбираться в чъём то информационном мусоре.
khim
14.01.2019 02:48+1Есть польза — найдётся кто-то, кто найдёт проекту коммерческое применение.
И замечательно! Но это вовсе не значит что конкретно вы будуте в этом замешаны. Возьмите Linux.
Как только он появился на нём начали делать деньги. Yggdrasil, Walnut Creek. Но вот конкретно Линус — в этом принципиально не участвовал. Даже в компанию устроился принципиально не связанную ни с какими разработчиками этого вот всего.
Именно потому что как только вы начинаете за консультации получать деньги — вы попадаете в совсем другую категорию с точки зрения налоговой. И ему это всё нафиг не сдалось… до тех пока OSDL не была готова оплачивать ему его работу фулл-тайм.
Ровно из тех же соображений Столлман уволился из MIT, когда начал работать на GNU: в противном случае он бы ещё долгие годы обсуждал бы с юристами вопрос «а кому именно принадлежат права на разработку».
Странно тут про всё это рассказывать и описывать, если честно. Это ж всё — «всем известные» истории… хотя, похоже, таки не всем…
Relrin
14.01.2019 01:57+2Я могу понять зачем OSS нужен сотрудникам компаний, если такую деятельность компании готовы оплачивать. Делов-то — убедить босса в том, что занимаешься очень полезным делом, «делаешь мир лучше» — и готово.
И я не вижу в этом ничего плохого, ведь в целом, выигрывают от подобных вещей все: как компания, которая как было уже упомянуто, это своего «благотворительность», а для нас, разработчиков, это способ показать в свой вклад в разработку отрытого проекта (хоть и задуманного изначально с коммерческими целями). Плюс ко всему для вас это лишняя возможность блеснуть чем-нибудь в резюме. Чем не выгода для вас в том числе? :)
С другой стороны, как правило те кто занимаются OSS (будь то свои проекты или вклад в существующие, даже в виде тикетов) зачастую имеют достаточно широкий кругозор и могут много чего интересного подсказать. Например, у меня на работе частенько спрашивают что было бы интересно использовать для существующих проектов (фреймворки, библиотеки, какие-нибудь инструменты для тестирования и т.п.).
Я могу понять зачем OSS нужен молодым разработчикам — получить промышленный международный опыт, показать себя.
В целом опыт и/или интерес к чему-то новому и являются причиной к появлению проектов с открытым исходным кодом. Либо, что тоже имеет место: отсутствие нужного инструмента, которым было бы желание пользоваться или архитектура существующих может попросту не устраивать в силу каких-то причин и предпочтений. Самое главное только чтобы то, что будет реализовано позднее было доведено хоть до какого-нибудь минимально готового вида, чтобы желающие могли этим воспользоваться, хотя бы.
Сделать же большой и сколько-нибудь известный OSS-проект самому, с нуля, в современных реалиях практически невозможно, как мне кажется.
Любой проект когда-то начинал с малого и не становился с первого же своего релиза популярным, трендовым и молодежным, а проходил ряд этапов развития и испытаний временем, которые проходит любой ныне существующий Open Source проект. Не получилось (или любой другой свой вариант), тогда начинайте следующий и развивайте идею дальше.
За последние 3 года никто этим проектом не интересовался помимо его непосредственных пользователей. Работодатели? Рекрутёры? Пха! Не смешите мои тапки. Ссылка на проект торчит во всех профилях, но не упоминается ни в одном письме с предложением о работе. Как будто его не существует. А отдельные индивиды даже просили меня приложить к резюме пример кода zip-архивом — вот настолько у ссылок на GitHub развит навык мимикрии и невидимости! В общем, приготовьтесь к тому, что в карьерном плане небольшой, но живой OSS-проект вам не особо-то поможет.
Не смотря на то что сам участвую в разработке Open Source проектов (своих и контрибьюция в чужие), наличие подобных проектов дает вам жирный "+" в карму и небольшое преимущество в поиске работы, но никак не гарантирует вам её получение. В моем случае, с этим фактом я уже смирился давно и в CV добавляю всего пару ключевых проектов (самых «жирных» по вкладу/возможностям).
Но, безусловно, существуют и редкие исключения. Некоторые умные рекрутеры, владеющие поиском по GitHub'у, могут наткнутся на ваш профиль с проектами и пригласить к себе на собеседование. Если повезет, то еще и тестовое вам «скипнут» в качестве бонуса за то что вы такой хороший разработчик уже на старте.
У меня был подобный случай (в прошлом году) с проектом который я уже около года делаю в одиночку. Проект этот посвящен реализации matchmaking'а для игр (ссылка) на микросервисной архитектуре, поскольку не нашел открытой реализации в нужном мне виде и которой мог бы поэкспериментировать на досуге. Так вот, сей проект привлек внимание рекрутера, которая вышла на связь со мной через мою основную почту. И хотя я работу не получил, но впечатление в целом было весьма положительное по итогу. По крайней мере после той цепочки собеседований осталось осознание что делаю что-то не зря и двигаюсь в правильном направлении.
ser-mk
14.01.2019 02:39А почему не пытались статьи писать на англоязычные аналоги хабра?
medium, dev.to, etcpnovikov
14.01.2019 13:45Не поверите — я спрашивал у всех и каждого какие есть англоязычные аналоги хабра. Мне все подряд говорили только про reddit. Туда и написал. Эффект был так себе.
Medium тогда был не настолько развит
Paskin
14.01.2019 08:05+1«Сотрудникам компаний» OSS часто нужен для выяснения потребностей рынка и ускорения разработки. Я имел отношение к тогда еще закрытой версии некоего корпоративного UI-фреймворка — когда разброд и шатания в стане разработчиков, а особенно продакт менеджеров дошли до критического уровня, где-то сильно наверху решили продукт заопенсорсить и дать людям, предлагавшим «написать лучше» это действительно сделать. В результате, одного из главных критиков архитектуры (надо сказать, за дело) начали спонсировать — сегодня он уже на полной ставке консультирует пользователей и ездит по конференциям. По моей оценке — компания сэкономила миллионов так пять долларов только на зарплате, не считая пиара и прочих побочных эффектов.
devlev
14.01.2019 09:49+1Автор — хочется добавить свои пять копеек и прежде всего сказать что вы молодец! У самого все чешутся руки выложить свой проект в opensource и как минимум по средством хабра донести до масса свой костылик в решении некоторых проблем в C#. Прочитав вашу статью стало еще больше понятно с чем возможно придется столкнуться. Но тем не менее, даже после получения вашего опыта все равно хочется выложить свой проект для масс и возможно это кому то принесет пользу.
Gorniv
14.01.2019 10:30+1Ваша библиотека — хороша, узнал о ней через чат в телеграмме(про .net)
Сам пилю репозиторий на Github про Angular Universal(212 звезд, 1к уников в 2 недели) — стараюсь раскрыть решение насущных проблем в проектах, которые сложнее hello world. Раскручивал репозиторий через создание чата в телеграмм, выступление на конференциях по Angular и самое главное ответами в issues на Github по angular/universal, теперь пойду StackOverflow смореть)
SbWereWolf
14.01.2019 11:32Спасибо, отличная статья!
Руки не доходят до делать свой «Идеальный каталог», тоже собираюсь выложить на packagist.org, пусть люди пользуются.
У меня была заминусованная статья про «Мой склад», там в пух и прах разнесли мой код на github, но тем не менее 180 форков у репозитория есть :)) Если бы форкать было не чего, то наверное не форкали бы? Даже в телегу один раз написали с вопросами, вот такой хабро-эффект.
RSATom
14.01.2019 11:34Как я вас понимаю… Практически со всем сказанным довелось столкнуться… А уж сколько это времени съедает… — прорву. Даже для самого что ни на есть примитивного проекта…
P.S. Есть в активе проект с пятьюстами звездами на гитхабе… и парочка помельче…
Web_Proger
14.01.2019 13:52+1Как по мне, интересный ход мыслей. Минимум емоций и каких то резких выводов. При чтении информация воспринимается не как истина, а как мнение автора. Это редко встречается. Большинство претендуют на истину.
Кроме того, чтение было легким и приносило удовольствие. Виглядит, как беллетристика.
Дальше (учитывая сказанное), автор пишет о неверных ожиданиях и каких-то ошибках в данной ситуации (OS). Что очень интересно. Обычно приходится слышать, как кто-то умен, потому что изобрел то или сделал это. Мало кто говорит, что он сделал не так. Я склонен думать, что всегда есть то, что сделал не так. Скрывание этого факта — идеализирование (со своими недостатками). Например, мне было полезно услышить такого рода историю, так как сам стыкнулся с подобными проблемами. В то время я попытался найти какой-то источник информации, как делать, смотрел примеры из репозиториев. Но это не дало результата. Каждый раз, когда начинал писать документацию, понимал что это набор слов для другого человека. Я, конечно, соченил что-то. Но это вышло далеко от ожиданий.
Касательно непосредственно развития своего OS проекта. Я путь автора не проходил, но были мысли о рекламе своего js фреймворка. До этого дело не дошло, так как появилась другая версия. Я бы даже сказал, полностью другой фреймворк. Потом снова полное обновление. Эти версии не похожи друг на друга. Конечно, чем больше изменений, тем больше пользы. Если бы я выкатил первую версию, я бы не выпустил вторую, потому что мне пришлось би придерживаться принципа обратной совместимости. На данном этапе разрабатываю концепцию новой версии. Не знаю, лучше ли это текущих фреймворков. Но, допустим, да — лучший. То есть, (дальше не уверен в том, том что говорю) как я вижу процесс опен сорс проектов. Перед выходом первой версии планируется архитектура соотвественно текщим технологиям и требованиям. Эта версия выходит. И все — через принцип обратной совместимости не возможно полное изменение проекта. То есть он в какой-то мере обречен. И не только по этой причине. Нововведения будут рассматриваться в контексте текущего проекта (оперируя существующими терминами: «компонент», «сервис», «модель»). Маловероятно полное изменение кода. Почему это нужно? Придерживаясь текущего кода проекта предполагается, что его базис идеален. Хорошо, если так. Но сомневаюсь, что есть идеальный код. Да, ангуляр изменил первую версию. Это указывает на то, что это (полное изменение кода) лучше, чем придерживание старых концепций. Но много ли таких примеров?
Публикация новой версии хорошо. Обычно, это изменение каких-то очевидных вещей. Но мало-кто оценивает опыт проекта как источник иформации. Информации, что и почему не работает идеально и, возможно, как можно это изменить. Изменить не в текущем проекте. А в новом. Что дает полною свободу.
Да, трудно кинуть проект и пойти разрабатывать что-то новое, потому-что есть количество пользователей который ожидают, что проект будет поддерживаться. Но. Согласны ли мы придерживать развитие технологий по этой причине. По крайней мере, можно просто попытаться решить эту проблему или обойти ее.pnovikov
14.01.2019 13:56Но много ли таких примеров
Breaking changes сплошь и рядом. Главное в документации объяснить пользователям как делать в новой версии то, что у них уже работает в старой. Я прямо в документации писал предупреждения. Ну или если изменений много, то отдельная страница документации, озаглавленная "Migration to version X" вполне решит все проблемы. Главное чтобы изложенные там шаги работали и не падали.
Web_Proger
14.01.2019 14:53Я имел в виду полностью новая версия з другим ядром. В таком случае, если это фреймворк, пользователь должен будет полностью переписать свой код. Допустим, ангуляр — это новая версия реакта и он намого лучше реакта в силу своего почти идеального ядра (все это допустим). В ридми пишешь — переходите на ангуляр, он лучше реакта. Какая будет реакция сообщества и много ли людей станет использовать ангуляр зная, что автор может его в любое время бросить. Это просто как мысль.
Если библиотека — то да. Хотя все равно очень трудно будет пользователю перейти на совершенно новую версию (новую в плане изменения апи больше чем на 50%).
Я просто в каком-то смысле развивал мысль, что держась за старое не придумаешь кардинально новое (лучше).pnovikov
14.01.2019 14:55Господи, делов-то. Сделайте новую версию отдельной, назовите как-нибудь чуть иначе. Позвольте пользователям пользоваться и тем и другим, постепенно сводя на нет поддержку старой версии.
pnovikov
14.01.2019 14:17> беллетристика
Большие тексты сложно воспринимаются, если не использовать приёмы беллетристики.Web_Proger
14.01.2019 14:58Вполне согласен. Сам склонен получать новые знание, которы основаны более-менее научно. Но читать чисто науковые статьи очень трудно. (Они мне напоминают Terms and conditions з сайтов). В результате просто может потерятся интерес к данной области, что совсем не хочется. Побольше бы таких статей. В самом деле и интересно, и полезно. А это редко сочетается.
Taritsyn
14.01.2019 17:31Сделать же большой и сколько-нибудь известный OSS-проект самому, с нуля, в современных реалиях практически невозможно, как мне кажется.
Можно, и это я говорю вам, как автор библиотеки с более чем миллионом загрузок через NuGet.
За последние 3 года никто этим проектом не интересовался помимо его непосредственных пользователей. Работодатели? Рекрутёры? Пха! Не смешите мои тапки. Ссылка на проект торчит во всех профилях, но не упоминается ни в одном письме с предложением о работе. Как будто его не существует. А отдельные индивиды даже просили меня приложить к резюме пример кода zip-архивом — вот настолько у ссылок на GitHub развит навык мимикрии и невидимости! В общем, приготовьтесь к тому, что в карьерном плане небольшой, но живой OSS-проект вам не особо-то поможет.
Здесь проблема не в том, что проект не популярен, а в том, что популярность проекта не всегда ведет к популярности его автора. Зачастую разработчики просто устанавливают пакет через NuGet и иногда бегло читают документацию. Решив свою проблему с помощью библиотеки, разработчики на какое-то время просто забывают о ней (вспоминают только в том случае, когда возникают какие-либо проблемы). В большинстве случаев, отечественные разработчики используют open source-библиотеки по следующему принципу: «Эту библиотеку написал какой-то забугорный чувак, ну и я рад за него…». Приведу пример из собственного опыта: один из моих бывших работодателей больше года использовал мою библиотеку в продакшене и узнал о том, что я автор библиотеки только при разговоре со мной. Просто не каждый смотрит README, описание NuGet-пакета, текст лицензии или фотографию автора.
Я периодически вижу на Хабре статьи о том, как хорошо иметь свой open source-проект или участвовать в каком-нибудь проекте в качестве контрибьютера. По большей части все эти статьи далеки от действительности. Но есть в них и рациональное зерно: в наше время каждый разработчик должен иметь аккаунт на GitHub и какую-нибудь историю активности на нем. Потому что современный HRы, как и специалисты из других областей, хотят иметь количественную оценку человека, а, на данный момент, они могут получить ее только из аккаунтов на GitHub (используются автоматизированные средства такие, как GetCoder.io), Stack Overflow, пакетных репозиториев или магазинов мобильных приложений.
У каждого может быть своя мотивация при создании собственных open source-проектов (PR, желание заработать, найти работу своей мечты или обкатать какую-то идею), но в большинстве случаев все сводится к одному – желанию быть круче.
pnovikov
14.01.2019 18:01Потому что современный HRы, как и специалисты из других областей, хотят иметь количественную оценку человека
Сардонический смех. Ха-ха-ха. Многие утверждают, что пример 2 из этой статьи — какой-то слишком уж сказочный.
Ничего подобного HR-ы и рекрутёры иметь не хотят. Они хотят закрывать показатели и их не особо волнует кто и что этот конкретный разработчик. Поэтому я и пишу явно — небольшой OSS проект помогает в поиске работы, чаще всего, никак.
В остальном согласен.
Кстати, getcoder.io мне выдаёт 404 в ответ на все мои запросы.
Taritsyn
14.01.2019 18:11Кстати, getcoder.io мне выдаёт 404 в ответ на все мои запросы.
getcoder.com — по ссылке нужно кликать.pnovikov
14.01.2019 18:13+1После забивания в поиск моего логина, имени аккаунта, ссылки,
чёрта лысого— 404Taritsyn
14.01.2019 18:29-1getcoder.com/ru/p/pavel-b-novikov — эта ссылка работает.
Похоже, что система неправильно обрабатывает репозитории, привязанные к организациям. Возможно, что поэтому вас не находят HRы. В принципе, об этом можно написать в службу поддержки — support@getcoder.io.vedenin1980
14.01.2019 18:37Похоже, что система неправильно обрабатывает репозитории, привязанные к организациям
Нет, похоже система тупо не ищет репозитории в неправильных локациях. Не стоит страна проживания или проживание не в том небольшом списке, что в системе — ничего не находит.
pnovikov
14.01.2019 19:09Возможно, что поэтому вас не находят HRы
Да находят меня HR-ы, блин. Они мне фигню на почту пишут. И ссылки в профилях не смотрят. Вы всерьёз полагаете, что это происходит именно из-за того, что какой-то неизвестный, бажно работающий сервис что-то там не выдаёт?
В принципе, об этом можно написать в службу поддержки
У меня есть задачи и по-важнее.
MaxVetrov
14.01.2019 18:33+1Как-то странно работает.) Введите «text». Это баг.
PS.
И linux в проектах нет)))
getcoder.com/ru/p/torvaldsvedenin1980
14.01.2019 18:39Скорее фича, посмотрите список стран где оно ищет разработчиков, похоже было задание искать только в странах, где есть клиенты и система тупа не находит никого у кого нет локации или локация «неправильная».
Miron
15.01.2019 13:43небольшой OSS проект помогает в поиске работы, чаще всего, никак.
А давайте посмотрим на это с другой стороны? То что оно «чаще всего, никак» не помогает — это ваша точка зрения, но если смотреть на отрасль в целом — то оно помогает следующим образом. Я кину взгляд немного в будущее. Если следовать концепции, что в каждой отрасли развитие и прогресс происходят через снятие издержек при внутреннем взаимодействии, за счёт новых инструментов и технологий, то можно нафантазировать себе следующее недалёкое будущее:
1) в связи с тем, что теперь есть популярная площадка хранения кода и механизм внесения элементов прогресса, как своего вклада в общее и светлое цифровое будущее (я тут не стану оценивать понадобилось ли оно кому нибудь другому, кроме разработчика этого кода, это не важно, важно само наличие и участие, потому что при наличии проекта появляется и сам предмет обсуждения и последующие вопросы его оценки), то смею предложить что в области HR сейчас идёт бурная внутренняя деятельность по тому вопросу, что «а как же оценивать потенциальных работников». То есть чтобы следовать прогрессу HR'ы вынуждены будут делать экспертизу кода потенциальных разработчиков. Существующие HR'ы к этому просто не готовы, потому у них проблема закрытия показателей и всплыла.
2) У тех кто нанимает HR к себе на службу, в скором времени будет (или уже есть) головная боль от того что программерской компетенцией они не обладают, и раньше им это и не нужно было, так как эта экспертиза проходила на собеседовании, когда претендента пригласили поговорить о его скилах и его цене. И собеседовали его коллеги из разработчиков, так как только они могут сделать такую экспертизу. При этом, могу сказать, что постоянные собеседования претендентов в некоторой компании, превращаются в текучку, и отнимают уйму времени у толковых разработчиков, в связи с этим, программисты несут уже двойную нагрузку, что просто участвуют в разработке кода, и ещё в собеседованиях. Некоторым эта деятельность, кстати, может не нравится, это индивидуально у каждого разработчика. Подозреваю, что в связи с этим наряду с обычной дилеммой куда податься после — в архитекторы или манагеры, возникнет третья дорожка — «а пойду ка я в HR'ы», скажет наш товарищ, в прошлом кодер, но которому ни в архитекторы ни в манагеры не захотелось идти. Да ещё и откроет конторку по внешней независимой экспертизе исходников на гитхабе. И будет услуги предлагать, тем самым сняв издержки собеседований с нынешних разработчиков, и лишив работы многих HR'ов которые не приобрели такой компетенции по анализу кода и его оценке. Подозреваю, что в требованиях на вакансию некоторых компаний, будет уже явно указано, что наличие своих проектов — обязательно. Это наше с вами недалёкое будущее, товарищи.
Потому, Павел, вы можете счесть меня за фантазёра, но может стоит рассматривать наличие такого проекта у себя как вложение в общую будущую инфраструктуру IT-отрасли. Да, написав этот проект, вы лишите работы некоторых HR'ов в будущем. Это не обвинение, у нас же уже лишают работы водителей, заменяя их роботами, так что тут никто не виноват. А причина такая — количество таких проектов будет расти, а HR'ы будут не в состоянии вас как-то оценить, у них не будет линейки. Даже я, будучи разработчиком и программистом не в состоянии оценить ваш код, так как выбор средств в отрасли только растёт и я не обладаю полнотой компетенции ни в C# ни в других технологиях да ещё и к тому же я не HR.pnovikov Автор
15.01.2019 13:55наличие такого проекта у себя как вложение в общую будущую инфраструктуру IT-отрасли
Я склонен считать, что уже перерос тот период, когда работал за идею. Сейчас я предпочитаю работать за деньги. Вначале карьеры ещё были какие-то такие поползновения. Что вот мол, будущее, вклад, участие, бла-бла-бла. Сейчас же мне эта отрасль с глупыми HR-ами, придурковатыми менеджерами и javascript-безумием, если честно, до звезды соболя. Я готов выслушивать любое безумие заказчика и поддерживать его, но только после оплаты.
У тех кто нанимает HR к себе на службу
Да HR (по крайней мере рекрутёры — точно) уже на службе не нужны. Их нанимают не чтобы программистов оценивать, а по другим причинам.
«а пойду ка я в HR'ы», скажет наш товарищ, в прошлом кодер
Вот. Вот теперь вижу что вы фантазёр, да.
в требованиях на вакансию некоторых компаний, будет уже явно указано
… что зарплата не более $2000/месяц. Вы в принципе мечтаете, а в реалиях нашей страны — мечтаете о путешествиях в соседние измерения.
в области HR сейчас идёт бурная внутренняя деятельность по тому вопросу, что «а как же оценивать потенциальных работников»
HR'ы будут не в состоянии вас как-то оценить, у них не будет линейкиВ комментариях к этой статье досконально разжевывается и обсасывается мысль о том, что ни в какой линейке HR-ы не нуждаются. И до кучи объясняется почему. Исходить из потребности HR-ов и рекрутёров в github-аккаунте ошибочно. Не хочется опускать вас с мечтательных небес на землю, но прочтите её и посмотрите комментарии.
ianzag
14.01.2019 18:27> Просто не каждый смотрит README, описание NuGet-пакета, текст лицензии или фотографию автора.
Я бы даже сильнее сказал: очень редко кто смотрит в README в секцию Authors и там более ищет фотографию. Если же такой порыв возникает [тем более с фото] это с бОльшей вероятностью не от большой любви К… :)
Ну в самом деле. Ну какая мне разница кто это и что это? Если оно просто тупо работает. Селяви'с. Особенно если это не проектообразующая жизненно важная библиотека но нечто средне-мелкое. Что самому писать просто так не с руки но в случае чего — напишем.Taritsyn
14.01.2019 18:33… и там более ищет фотографию
Судя по всему, вы не знаете как выглядят страницы NuGet-пакетов и профиль на GitHub.
ianzag
14.01.2019 18:40Вы правы — я действительно не знаю как выглядят страницы NeGet пакетов. Никогда не приходилось с ними сталкиваться. А профиль на гитхабе — а как он выглядит :-? Профиль как профиль. Что в нем интересного?
pnovikov
14.01.2019 19:11И как же выглядят страницы NuGet-пакетов? Ни о какой фотографии там речь не идёт — речь идёт об иконке приложения.
За весь свой немаленький опыт работы с NuGet-ом я ни разу не видел, чтобы кто-то ставил своё фото иконкой пакета.
yetanotherman
14.01.2019 20:16Вы зря так, про то, что этот опыт никому не интересен. Мы всегда смотрим любой код на любом ресурсе, ссылка на который есть в резюме кандидата и часто качество этого кода становится решающим фактором. А наличие документации — чуть ли не еще бОльший бонус. Другое дело, что за редкими исключениями, когда нам было интересно обсудить код — мы не говорили, что для нас это было важным пунктом. Если с вас просят звёзды и прочие не технические метрики — наверное, не стоит идти в такую компанию, а то на работе вместо кода тоже будут звёзды хотеть или там лайки, просмотры и прочие «бубенцы» :)
pnovikov
14.01.2019 20:28Без уточнения кто это «мы» — звучит угрожающе :)
yetanotherman
14.01.2019 21:00Извиняюсь, не хотел :)
Ну, у нас всё равно нет позиций в .NET, а связывать свой личный аккаунт на хабре со своим работодателем мне бы не хотелось. Я просто сильно сомневаюсь, что мы одни так считаем относительно opensource-проектов кандидатов. Хотя, конечно, это не отменяет вероятности, что HR может какую-нибудь глупость сказать или спросить не посоветовавшись — к сожалению, тоже бывает
amaz
15.01.2019 09:50+1Как человек, начавший разработку open-source продукта в одиночку (тут важную роль сообщества пока не рассматриваем) еще десять лет назад, и до сир продолжающий уже с компанией из 13 человек (все фул-тайм работают над этим проектом), могу поверхностно судить, что маркетингом тут и не пахло. Повторюсь, что сужу поверхностно, так как выводы делаю только на основании вашей статьи.
Taritsyn
15.01.2019 10:33+1Андрей, библиотеки и CMS – это разные вещи, потому что проект CMS изначально предполагает наличие услуг по поддержке и консультированию. Сейчас многие отечественные веб-студии опубликовали исходный код своих коммерческих CMS и зарабатывают на их внедрении.
amaz
15.01.2019 10:45В целом согласен. Бизнес модель отличается, но и библиотеки нуждаются в маркетинге. В комментарий просто не поместить большой и развернутый ответ. Тут можно статью целую написать. Про плюсы и минусы, подводные камни, в общем просто поделится опытом. «Хмм, а может написать?» — подумал я, пока писал этот комментарий
pnovikov Автор
15.01.2019 10:52Хорошего маркетинга без бюджета не бывает, если вы конечно не сверхчеловек. ИМХО.
amaz
15.01.2019 10:55Бывает. Конечно, он отличается от маркетинга с бюджетом, но он бывает. Хороший он или нет — вопрос второй. Но когда денег нет, выбирать не приходится. Наш проект, например, начинался без бюджета и очень долгое время развивался без него
Taritsyn
15.01.2019 11:16Честно говоря, не знаю какой может быть маркетинг у open source-библиотеки. Первое что приходит в голову – это анализ существующих аналогичных решений для платформы. Если таких решений нет, то нужно анализировать решения с других платформ. Подобный анализ я делал, когда разрабатывал Bundle Transformer и WebMarkupMin.
Но существуют также вспомогательные библиотеки, идеи которых появляются в ходе работы над другими библиотеками. И из своего опыта могу сказать, что такие библиотеки могут получить гораздо большую популярность чем библиотеки, для которых производился маркетинговый анализ.
Все остальное – это же раскрутка. Фактически раскрутка .NET-библиотеки начинается с ее публикации в NuGet Gallery.
Leopotam
Есть очень простое правило — выкладывай и поддерживай только то, чем пользуешься сам и что интересно именно тебе. Остальные или подтянутся в процессе, или нет, но не критично, т.к ты сам являешься главным пользователем своих поделий. Примеры (да будет наглый пиар!):
Документация отсутствует как класс, в ECS сделана в виде FAQ-секции по основным вопросам. Внутри кода комментарии есть только для публичных методов / полей. Сделан gitter / discord чаты для быстрого решения вопросов, некоторые неожиданно находят меня в телеграмме.
Часто предлагают выпустить на assetstore за денежку, на что я всегда отвечаю нет: я буду вынужден тратить кучу своего времени на объяснение любых вопросов, даже не связанных с моими поделиями, но показавшимися покупателю важными для него. Пока код остается кодом с минимальной документацией — только реально заинтересованные люди будут в нем разбираться, а не первый попавшийся потребитель с улицы, который за пару баксов будет требовать бесконечного саппорта.
Автору удачи и терпения, нужно просто переосмыслить — зачем это делается и для кого.
pnovikov
Дык это… для себя и делается :)
Но спасибо. Вы молодец, у вас хорошая база наработок и интересные статьи.