Перевод статьи «The Pros and Cons of Open Source Software Development».

Многие разработчики являются горячими сторонниками проектов с открытым исходным кодом, и не без причины: они сами пользуются ими ежедневно для ускорения своей работы. Есть множество успешных примеров open source решений, например, операционная система Linux или JavaScript-библиотека React. Они отлично сделаны, а работать с таким высококачественным кодом — отдельное удовольствие.
Давайте рассмотрим подробнее, что такое open source и каковы плюсы и минусы работы над проектами с открытым кодом.
Что такое Open Source?
Термин «open source» («открытый исходный код») возник в индустрии разработки программ. Open Source это нечто такое, что каждый может изучать, модифицировать и распространять. Это особый подход к созданию компьютерных программ, прославляющий сотрудничество, открытость и разработку, где во главе угла стоит сообщество.
Для защиты всех участников процесса (как тех, кто пишет код, так и тех, кто его использует), собственник проекта может использовать лицензию Creative Commons. Лицензия Creative Commons (CC) разрешает всем желающим распространять и использовать вашу работу, а также создавать на ее основе что-то свое.
Программное обеспечение с открытым кодом обычно является свободным, т. е., разработчики имеют доступ к исходному коду программы. Они могут улучшить производительность программы, добавить функционал, исправить ошибки. Среди примеров программ с открытым кодом можно назвать LibreOffice, Mozilla Firefox, Chromium.
Но есть и коммерческое программное обеспечение («ПО с закрытым кодом»). Исходный код в таких программах могут читать или изменять только его собственники. Среди примеров такого ПО можно называть продукты Microsoft, Adobe и Apple.
Некоторые компании считают открытый исходный код нормой, другие предпочитают создавать ПО с закрытым кодом. И это неспроста, ведь, если говорить откровенно, модель open source имеет как достоинства, так и недостатки.
Каковы преимущества открытого кода?
Преимущества личного характера
Если я скажу, что open source разработчиками движет альтруизм и желание помогать окружающим, читатели могут улыбнуться и не поверить. Но многие люди работают над проектами с открытым кодом, исходя именно из таких соображений.
Не следует недооценивать важность преимуществ личного характера — ощущения своей нужности и гордости собой.
Признание в сообществе
Ученые и врачи делятся опытом путем написания научных статей и участия в научных конференциях. UI/UX дизайнеры делятся опытом на Behance или Dribbble. Писатели издают свои книги или выкладывают их на онлайн-платформах. Музыканты и кинематографисты представляют свои работы миру при помощи различных стриминговых сервисов. Разработчики программ, как и все остальные люди, тоже хотят получать признание. Да и почему должно быть иначе?
Работая над проектами с открытым кодом и запуская их, вы можете получить признание в сообществе разработчиков. Можно, например, создать хороший профиль на GitHub или принимать участие в различных мероприятиях, таких как Hacktoberfest.
Как open source разработчик, вы можете получать какие-то скидки, возможность посещать разные мероприятия бесплатно, а также пользоваться качественной инфраструктурой для запуска ваших проектов. Но работа над открытым кодом не только позволяет вам экономить. Она также вдохновляет вас использовать все самые лучшие доступные вам инструменты в ваших проектах.

Самореклама
Если вы (или ваша компания) принимаете активное участие в open source сообществе, вы создаете себе хорошую репутацию. Благодаря этому вам будет проще находить заказы, если вы фрилансер, или искать работу. Если речь идет о компании, занимающейся разработкой ПО, вам будет легче находить людей, желающих у вас работать, партнеров, желающих сотрудничать, и клиентов, желающих воспользоваться вашими услугами.
То есть, участие в разработке open source создает отличную возможность для продвижения, а это выгодно как отдельным разработчикам, так и целым компаниям.
Чувство значимости
Нет смысла скрывать: выгорание представляет собой опасность и для разработчиков, и для HR-стратегий компаний. Если вы собственник компании, вы можете мотивировать своих сотрудников участвовать в разработке проектов с открытым кодом. Таким образом вы покажете им, что их работа является ценной. Когда люди занимаются open source проектами, они знают, что работают не только ради денег, но и создают нечто важное для широкого сообщества разработчиков.
Помогая разработчикам ощутить их ценность и предназначение, вы поддерживаете их заинтересованность в работе с вами.
То же касается и самозанятых разработчиков. Участие в open source сделает вашу работу значимой, в результате с течением времени у вас не появится отвращения к ней.
Качество ПО
Открытый исходный код часто бывает намного качественнее закрытого. Над такими программами работает не отдельная команда из нескольких человек, а тысячи разработчиков со всего мира, причем все они имеют свой неповторимый опыт в разных технологиях, индустриях и проектах. К тому же, баги в open source программах находят очень быстро, поскольку код постоянно проверяется множеством разработчиков.
Даже код, написанный одним-единственным разработчиком, часто бывает более качественным, если этот код открыт. Когда вы пишете код, который смогут увидеть только ваши коллеги, вы можете не особо заботиться о стиле. Но при написании кода, доступного всем желающим, вы сделаете все, чтобы не выглядеть code monkey.
Безопасность данных
Для разработки собственных приложений стоит использовать ПО с открытым кодом, потому что оно более защищенное. Сообщество быстро находит дыры в безопасности и сообщает о них собственнику ПО, а он оперативно все исправляет (обычно сразу же).
Но если проблемы с безопасностью возникают в коммерческом продукте, об этом никто не узнает, пока кто-нибудь не пострадает.
Кроме того, продукты с открытым кодом не могут намеренно злоупотреблять данными пользователей, поскольку подобные факты быстро обнаружатся сообществом и репутация программы и ее собственника будет уничтожена.
Кастомизация
Программы с открытым кодом обычно легко подгоняются под ваши нужды. Поскольку код открыт, любой разработчик может внести в него изменения и добавить нужный функционал.
Каковы «минусы» открытого кода?

Недостатки коммуникации и недопонимание
Открывая свой код для других людей, вы можете ожидать, что эти люди захотят что-то улучшить или в чем-то помочь вам. Но вы будете иметь дело с очень разными людьми. Кто-то может считать, что вы должны быть доступны 24/7. Другие могут открывать пул-реквесты, направленные на улучшение продукта, но вам придется объяснять, как именно все должно быть подготовлено и оформлено, чтобы они могли слить свой код с вашим.
Наконец, никто не гарантирует, что код, написанный сообществом, не окажется более низкого качества, чем ваш. В результате вы будете вынуждены рефакторить чей-то код, а люди будут разочарованы тем, что вы не пропускаете их изменения.
Опасность для бизнеса
Никогда не следует открывать код программ, представляющих большую ценность для вашего бизнеса. Если вы пользуетесь какими-то секретными приемами, делающими ваш бизнес уникальным, вам не следует их разглашать (т. е., открывать ваш код), поскольку ими могут воспользоваться ваши конкуренты. Но если у вас есть идеи и инструменты, которыми вы можете поделиться с общественностью без ущерба для себя, — сделайте их опенсорсными.
Почему Open Source это правильно
Если вы интернет-пользователь (а это определенно так и есть), вы неизбежно пользуетесь невероятным количеством свободного программного обеспечения. Изобретатели Интернета создали огромную его часть в виде проектов с открытым кодом, так что все, использующие его сегодня, пожинают плоды их усилий. Например, облачные вычисления в значительной степени базируются на open source.
Кроме того, согласно опросам Tidelift и The New Stack, 84 процента разработчиков используют открытый исходный код в своей профессиональной деятельности. Пользуясь чужим опытом и знаниями, почему бы вам не поделиться своими?
Если нам нравится пользоваться преимуществами open source, будет правильным решением отплатить добром сообществу.
Принимайте участие в Open Source разработке!
Не знаете, с чего начать? Сделайте ваш GitHub-репозиторий публичным и расскажите о нем миру в своем блоге, социальных сетях и на форумах разработчиков. Зарегистрируйтесь на Hacker News — там «зависает» много участников open source движения.
Разработка проектов с открытым кодом будет способствовать вашему профессиональному росту, а кроме того, пойдет на пользу всему сообществу. В то же время старайтесь не навредить сообществу, которое предоставило вам так много отличных продуктов с открытым кодом. Вносите свой вклад обдуманно. Помогайте окружающим, например, отвечайте на вопросы на форумах, если знаете подходящее решение.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]