[Перевод] Нет, Open Source не означает «бесплатная поддержка»
Год назад разработчик опенсорсной программы Raccoon APK Downloader заявил, что отныне приём баг-репортов — это часть платной поддержки. Идея обсуждается до сих пор и вызывает споры по понятным причинам. С одной стороны, это как-то контринтуитивно… С другой стороны, определённая логика тоже есть… В общем, судите сами, вот оригинальная заметка Патрика Альбрихта, её бурное обсуждение и пояснение позиции по итогам обсуждения.
Примерно такие диалоги периодически возникают у меня с пользователями, отвлекая от гораздо более важных вещей:
Юзер: Здравствуйте, хочу зарепортить баг в вашей программе. Я: Отлично! Для этого откройте тикет, пожалуйста. Юзер: Но тикеты вроде входят платный пакет? Я: И? Юзер: Просто хочу сказать, что ваша программа сломана, чтобы вы могли починить её. Я: Да, с вашей стороны это запрос на поддержку. Пожалуйста, откройте тикет. Юзер: …бл%$#%$...
После этого обычно начинается тирада, что я дерьмовый разработчик, которому наплевать на код (что просто смешно: даже если отбросить профессиональную гордость, у меня есть все стимулы исправлять баги, чтобы мой почтовый ящик не завалили жалобами) и который обдирает своих пользователей…
В прошлом бывало, что я уступал и смотрел, что там за баг. Я изучал проблему и почти всегда оказывалось, что ничего не сломано, просто всё работает не так, как ожидалось (чего, собственно, и следует ожидать от любого достаточно сложного программного обеспечения). Пользователь просто не удосужился прочитать документацию и пытался ускользнуть от оплаты лицензии, маскируя запрос на поддержку под сообщение об ошибке.
Поэтому сейчас моя политика такова: нет заявки на поддержку — нет обслуживания. Любой баг-репорт без оплаты сразу отправляется в корзину, даже без рассмотрения.
Дело вот в чём: я пишу софт, который решает мою проблему. Я позволяю использовать его всем желающим, потому что это не требует от меня никаких затрат (ну, почти никаких, всё-таки приходится платить за хостинг. Кстати, всегда пожалуйста).
Я также предоставляю исходники, чтобы вы могли сами всё исправить, если моё решение окажется непригодным. Но если вы приходите с «баг-репортом» без патча (или хотя бы без точного указания на проблему), то вы по сути просите меня изучить вашу проблему. Мне придётся потратить на неё силы и время. Поэтому я и беру оплату: вы просите меня потратить время для вас. Это обычно называется работой. И, как ни удивительно, за работу люди обычно получают деньги.
Не поймите меня неправильно. Я рад помочь. Оплата поддержки — это причина, по которой в проекте ещё теплится жизнь (я уже упоминал о хостинге?). Но приходить ко мне под ложным предлогом и/или ожидать, что я должен предоставлять бесплатные услуги вдобавок к бесплатному софту, это уже слишком.
Софт распространяется бесплатно, но не моё время. Если хотите откусить его кусочек, я ожидаю оплату. Точка.
Что ж, моя маленькая заметка вызвала бурную реакцию.
Боже, люди просто в ярости из-за того, что я (якобы) отказался принимать их отчёты об ошибках, оформленные вручную, в золотых рамочках, благоухающие розами, без предварительной оплаты. Как я посмел?! Ну вот так…
На самом деле основная мысль — это игнор запросов на бесплатную поддержку. Особенно когда они замаскированы под сообщения об ошибках. Я не удаляю специально баг-репорты из почтового ящика, я просто рискую потерять ценные репорты под кучей мусора.
Но блин, это же интернет. Здесь тебя быстро заканселят за две секунды, если что. Людям нужно оставить комментарий быстро-быстро, пока тема горячая, у них нет времени (внимательно) прочитать статью (или вообще её прочитать). При этом встречаются реально уморительные мнения!
Баги должны быть исправлены!
Нет, не должны. Вы читали лицензионное соглашение? Поищите раздел «AS IS». Он есть в каждой лицензии, одобренной OSI (обычно прописными буквами). Это означает, что я не обязан поддерживать программу, и вы не имеете права требовать этого.
Конечно, есть простой способ возложить на меня такие обязательства (и я даже предлагаю вам этот вариант): перечислить деньги на мой банковский счёт.
Баг изначально по вашей вине!
И что дальше? О, подождите. Это одна из тех теорий заговора, где я намеренно закладываю ошибки в свой код, чтобы заставить вас заплатить за их устранение? Хорошая идея, но…
- Такой план не масштабируется. Количество закладок не бесконечно.
- Исправление ошибок — самая трудоёмкая форма поддержки. Такая бизнес-модель окажется убыточной (особенно с учётом времени на разработку хорошего бага, за удаление которого заплатит кто-то один).
- Я предоставил исходный текст, лишив себя рычагов давления.
Вы сами выбрали использовать мой софт. Отказ от ответственности см. в лицензионном соглашении. Я не ставил себя в положение единственного спасителя.
Мои баг-репорты — это произведение искусства, ты балбес! Я потратил СВОЁ ВРЕМЯ, чтобы помочь ТЕБЕ улучшить ТВОЮ программу!
Твой баг не беспокоит ни меня, ни моих платных клиентов. Если бы беспокоил, я бы сам его исправил. Отправляя сообщение об ошибке, вы оказываете услугу не мне, а себе и сообществу пользователей. Точно так же, как это сделал я, выложив программу в открытый доступ (хотите вы помогать людям или нет — полностью ваш выбор, я вас об этом не прошу). К вашему баг-репорту прилагается патч? Если да, то проблема решена. Если нет, то я должен над ней поработать. Это заказ на работу, который придётся оплатить.
Игнорировать сообщения об ошибках — глупо!
Почему? Если я буду читать такие сообщения, то возникнет соблазн оказать кому-то бесплатную услугу. Это несправедливо по отношению к тем, кто платил за моё время.
Но если я заплачу за поддержку, нет гарантии, что баг будет исправлен.
Зато у вас есть гарантия, что я выслушаю и своевременно дам определённый ответ. Этого не получишь в публичном баг-трекере. Понимаете, в чём дело? Ваши ожидания основаны на опыте общения с разработчиками, которым вы ничего не платите и у которых нет стимула вам помогать. Когда я беру ваши деньги, то вы становитесь клиентом.
Другие опенсорсные проекты принимают баг-репорты бесплатно.
Мне без разницы.
- Если какой-то другой разработчик готов бесплатно жертвовать своим временем, это его выбор.
- Если эти проекты критически важны (и иначе финансируются), то разумно открыть форум поддержки.
Но в целом у меня нет желания прыгать с моста только потому, что так сделал кто-то другой.
Вы лицемер! Вы рекламируете свою программу как решение МОЕЙ проблемы.
Объяснение решаемой проблемы — это часть сделки, по которой вы можете использовать моё решение (кстати, это избавляет вас от необходимости читать код, чтобы понять его смысл. Не благодарите). Вывод, что у нас одинаковая проблема, вы сделали сами. И да, моё программное обеспечение давно выросло за рамки моих собственных потребностей. Но это ещё не причина работать на вас бесплатно.
Вы можете найти бесплатный хостинг на платформе X
Помните SourceForge? Был такой хороший хостинг для опенсорса. Его продали. Новые владельцы добавили сомнительные методы монетизации. У разработчиков был выбор: уйти и потерять обратные ссылки или остаться — и запятнать свою репутацию.
Помните Github? Был такой хороший хостинг для опенсорса. Его продали. Новый владелец — Microsoft! Чемпион по блокировке конкурентов и сомнительным методам монетизации. У разработчиков был выбор: уйти и потерять свои обратные ссылки или остаться — и посмотреть, что придумает Microsoft в ближайшие годы.
Знаете Gitlab? Это и сейчас хороший хостинг для опенсорса! Пока его не продадут!
Замечаете некую закономерность?
Вы назначили себя единственным адресом поддержки. Хотя бы поднимите форум для сообщества!
Увеличить затраты на инфраструктуру, которая подорвёт мои доходы? Звучит как план. НЕТ! Парень, высунь голову из темноты своих идиллических иллюзий.
Отсутствие хорошей поддержки — одно из главных критических замечаний против опенсорса. Когда у людей возникает проблема, они хотят с кем-то поговорить и чтобы проблему своевременно решили. Они не хотят регистрироваться на форумах и неделями следить за ответами в надежде, что какой-нибудь член сообщества в конце концов найдёт ответ.
Когда речь о моей программе, я здесь самый компетентный специалист. Так или иначе, люди будут (пытаться) связаться со мной. Для разработчика это создаёт дилемму:
- Смириться с потерей времени на техподдержку.
- Начать принимать оплату и понять, что теперь у вас бизнес с накладными расходами.
Да, я назначил себя единственным адресом для поддержки. Это единственный логичный выход. Если у меня бизнес, почему я должен убивать его с помощью публичного форума поддержки / баг-трекера? Это просто лишние затраты на инфраструктуру, которая съедает доходы.
Бесплатная поддержка поможет проекту расти!
Вы математик? Когда-нибудь применяли коэффициент масштабирования к проекту, в котором расходы превышают доходы?
Лучше поставьте кнопку для донатов!
Отличная идея! Как часто вы нажимаете такие кнопки?
Если серьёзно, я не благотворительная организация, а только они могут принимать пожертвования. Для остальных это просто неправильно обозначенный, но всё равно налогооблагаемый доход. Как только вы размещаете кнопку «Пожертвование», вы начинаете бизнес, который автоматически создаёт накладные расходы. Целовать ноги щедрому спонсору за пять баксов в год? Увольте.
Я не занимаюсь благотворительностью и мне не нужна «поддержка». Я хочу получать деньги за свою работу, как любой нормальный человек. И считаю абсолютно нечестным размещать свою работу под открытой лицензией, а затем тратить нелепое количество времени на сбор милостыни, эксплуатируя чувство вины у своих пользователей.
Если в лицензии сказано, что «программное обеспечение свободно для использования», так оно и есть. Вы получаете именно это. Ничего больше, ничего меньше. Остальное за деньги.
В общем, Патрик не отказывается от своей позиции. В принципе, он имеет на это право. Если судить по уровню компетенций, то некоторые мейнтейнеры опенсорса вообще должны зарабатывать как ведущие программисты в FAANG, а по факту выходит иначе.