Все мы знаем как хорошо и похвально принимать участие в разработке открытых проектов.
К тому же потом можно мерятся количеством коммитов в rails и зарплату попросить побольше.
А что если вы решили написать свой open source проект?
Тут немного по другому. Но, казалось бы, что в этом плохого?
Написал библиотеку или приложение, залил на гитхаб и здорово.
И действительно здорово если это простая библиотека с парой багов и сотней пользователей.
Раз в месяц отписал в issues, раз в год обновил версию — все довольны.
А если проект сложный да и еще стал востребованным? Вот здесь все плохо.
Кто меня не знает — я автор open source проекта GitLab.
По сути это web приложение для
Для ознакомления можно почитать этот пост.
Он у гитхаба в Popular Starred Repositories на первой странице так что для примера подойдет.
Итак дано:
Проект: GitLab
Кол-во писем с гитхаба в сутки: 30-40
Установок: 40k+
1. Время
Время это ресурс крайне ограниченный в жизни разработчика.
Что такое свой open source проект с точки зрения вашего времени?
* это время на прочтения пожеланий, баг репортов
* это время на разработку и поддержку кода
* это время на ревью пулл риквестов или патчей
* это время на доработку и фиксы после этих патчей
* это время на дискуссии и саппорт
Итого вы сидите в 11 вечера за ноутбуком дома а жена на вас злобно смотрит
2. Fun
Прекрасное чувство писать open source проект. Вы выбираете угодные вам технологии, пишите без лишней спешки, красиво и грациозно. Вы дарите этому миру проект, качественный и открытый.
Потом ваш проект начинают использовать люди. Вы рады и наверняка ваше самолюбие пляшет от восторга.
И тут появляются баги — нужно исправлять. Чем больше людей тем больше фидбэк и наверняка больше багов.
Исправлять баги не так весело. Особенно если они трудновоспроизводимы или требуют от вас некрасивых решений.
Это уже далеко не fun.
Вам приходит большое количество писем. Разгребать баг репорт и менеджить issue tracker это уныло.
Приходят патчи. Ревью это классно когда вам присылают хороший код. Или интересный решения. Но часто это будет так себе. Или очень плохо. И тогда code review это тоска.
Поддержка Open Source проекта это не fun. Это сложно и скучно
3. Pull Requests или Патчи
Все любят Open Source за вклад со стороны сообщества. Я точно могу сказать что несомненный плюс.
Казалось бы хорошо когда люди присылают вам пулл риквесты.
Но пулл риквесты:
* часто бывают плохие. И не всегда потому что разработчик плохой. Он просто может не до конца разобратся в вашем проекте.
* бывают и такими
* требуют ревью, тестирования и все равно в конечном итоге что-то упустите. А потом исправлять и ругаться.
* сьедают ваше время
* это код который вам потом прийдется поддерживать
В итоге вам даже не хочется открывать таб с Pull Requests.
4. Сообщество
Мы любим Open Source потому что это сообщество таких как мы разработчиков.
Можно поделить сообщество на людей адекватных и не очень.
И с последними дело прийдется иметь чаще.
«Сделай мне эту фичу. Иначе я буду использовать другой проект»
«Без данной функциональности этот проект бесполезен»
«Ты все делаешь не так. Отдай нам проект иначе ты его загубишь»
«Твой код отстой, мы напишем все намного лучше»
«Я все делал не по инструкции. Почему у меня ничего не работает? Ненавижу вас»
«Вы должны....»
«Я требую....»
И ты такой сидишь — «wtf?»
Вроде бы как делал хорошее дело а тут ты уже кому-то должен.
Итого это превращается по сути в работу. Но за которую тебе не платят.
Поэтому когда вы встретите баг или говнокод в open source проекте — отнеситесь к авторам с вежливостью и пониманием.
Они и так страдают.
Автор: dzaporozhets