Темная сторона Open Source проектов

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

Темная сторона Open Source проектов

Что такое Open Source?

Многим хотелось бы внести свой вклад в проекты такого уровня как Linux, даже бесплатно, просто ради экспириенса и амбиций. 

«open source software» – это термин, придуманный Ричардом Столлманом в начале 1980-х годов и используемый Фондом FSF по сей день. Open Source – это моральная позиция, которая выступает за максимизацию личного цифрового суверенитета пользователя.

Вкратце концепцию открытого исходного кода можно охарактеризовать через соответствие ПО четырем основным свободам:

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

Именно эти 4 принципа должен соблюдать разработчик по отношению к потенциальным пользователям если он решил взяться за Open Source проект.

Я не буду вдаваться в этой статье в историю Open Source и приводить кучу детальных примеров, рекомендую для этого прочитать материал под названием «Open Source is awful», он как раз изобилует примерами и историческими отсылками. Не буду также и углубляться в философию разработки с ее сложными этическими дилеммами, это на прекрасно сделал Дон Гудман-Уилсон в своей статье «Open Source is Broken». Хотя я очень рекомендую ознакомиться с этими двумя статьями, которые во многом и вдохновили меня на собственный взгляд к Open Source.

Но прежде чем перейти в нападение, давайте сначала рассмотрим чем же так привлекателен подход Open Source.

Преимущества

«Ценности сотрудничества, прозрачность и развитие», - говорили они…

«Ценности сотрудничества, прозрачность и развитие», - говорили они…

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

  • Чувство полезности и самодостаточности – если говорить проще, то самое чувство собственной важности от причастности к чему то важному и нужному. Да, даже назвать это альтруизмом, но ведь на самом деле приятно когда твой труд несет другим пользу, а не просто зарплату и похвалу шефа.
  • Признание сообщества. Если вы делитесь своей работой, у вас больше шансов что Вас заметят, признают, полюбят. А возможно даже пригласят потом на крутую работу в очень френдли компанию за 100500 денег. Ну или просто позовут на какое-то очень крутое мероприятие в качестве эксперта.
  • Качество программного обеспечения. Open Source проекты часто привлекает тысячи разработчиков со всего мира с опытом работы в различных технологиях, отраслях и проектах. Такие команды способны добиться гораздо больших успехов чем небольшой отдел в коммерческой фирме. Ошибки в таких проектах обычно выявляются и исправляются намного быстрее благодаря поддержке сообщества.
  • Безопасность данных. Сообщество быстро находит и сообщает о недостатках безопасности. Open Source продукты редко преднамеренно злоупотребляют данными пользователей, как это делают некоторые компании, выпускающие проприетарное программное обеспечение. Сообщество обнаружит это злоупотребление, и репутация проекта будет испорчена.
  • Обмен опытом. Иногда вы видите, что проекту чего-то не хватает, и вы заполняете этот пробел, внося свой код. В других случаях вы понимаете, что могли бы сделать что-то лучше. 

Это конечно, далеко не полный список плюшек Open Source проектов, но остановимся пока на нем. Если захотите дополнить буду рад видеть в комментариях.

Недостатки

Темная сторона Open Source проектов
Итак, вернемся к темной стороне, открытого ПО, которую так часто недооценивают.

  • Недопонимание. Вы можете рассчитывать на просьбы улучшить ваш продукт или помочь в чем-то, но вам, возможно, придется иметь дело с разными людьми. Некоторые могут ожидать, что вы будете реагировать на их запросы 24/7. Другие могут улучшить ваш продукт, но вам придется объяснять правила то, как все устроено, но это может быть сложно и утомительно. В конце концов, общение это действительно сложно. 
  • Эксплуатация. Фактически, большинство сторонников свободного программного обеспечения поощряют взимание платы за свою работу. Однако большая часть ранних свободных программ была написана на добровольных началах людьми, которые верили в нее по моральным соображениям. В результате работа в Open Source стала синонимом волонтерства, а многие разработчики работают за спасибо или под грузом ответственности за свой же более ранний труд. Это реально не круто. Конечно, это во многом зависит от культуры пользователей, но факт остается фактом. Люди получающие что-то бесплатно, часто рассчитывают на бесплатную поддержку. Но если вы полагаетесь на часть программного обеспечения, и не вносите в нее активный и постоянный вклад, то автор/сопровождающий ничем вам не обязан! И из этого следует еще один громадный минус.
  • Плохая поддержка. Многие крутые Open Source проекты страдают от плохой поддержки. Почему? Да просто потому что в это никто не вкладывается. Вот написали вы скажем новый движок для веб-сайтов и решили сделать его Open Source. Раздали бесплатно по открытой лицензии GNU. Пользователи довольны, коллеги завидуют, все круто. Но это же не значит что вы обязаны пожизненно его поддерживать 24/7? Или значит? А на пенсии тоже будете или внукам завещаете? А если кроме вас в сообществе никто не хочет этим заниматься? Дилемка правда?
  • Кредит за участие. Вы можете сделать несколько запросов на включение в несколько крупных проектов, добавить «Незначительный участник X, Y и Z» в свой список достижений и очень эффективно произвести впечатление на определенных людей и работодателей. То есть даже нематериальная выгода от участия в Open Source, часто распространяется очень неравномерно. Вы можете написать 3 строчки кода или просто эмблемку к одному из дистрибутивов Linux и смело писать в резюме разработчик Linux? А вот тот чувак, который 10 лет поддерживает библиотеку php для десятков тысяч разрабов пусть дальше себе ест крошки из-под клавиатуры? Некруто, ведь этим чуваком можете быть и вы.
  • Недооценка времени. Если вы умеете хорошо кодировать и хотите денег, не попадайтесь в распространенную ловушку программистов, недооценивая свое время. Многие активные участники открытого кода меньше мотивированы деньгами, чем наполнением мира отличным программным обеспечением. Но если вам нужны деньги, тогда найдите способ заработать их, потому что вы этого достойны. Не позволяйте никому убеждать вас, что вам нужно посвятить все свое время открытому исходному коду, прежде чем вам заплатят за работу.
  • Злоупотребления результатами. Не буду тут вдаваться в примеры, но часто бывает так что ваш код в итоге используют совсем не так как вы предполагали. Скажем вы писали автоматизацию умного дома для широкого использования, а ее использует условная тюрьма в «Гуантанамо». Я конечно не знаю как вы относитесь к подобным заведениям, но по моему это не то на что рассчитывает разработчик ПО с открытым исходным кодом? Но де-юре, любой пользователь может взять ваш код и использовать для любых целей. То есть вы никак не сможете избежать нежелательного использования своего Open Source, просто по определению.

Выше приведен далеко не полный список недостатков Open Source проектов, вы можете продолжить его и поделится собственным опытом в комментариях.

Информация к размышлению

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

Приглашаю к дискуссии в комментариях и всегда открыт к конструктивной критике:)

Комментарии