Навіщо потрібен Open source

Питання над яким розмірковую з 2020-го року але так і не знайшов часу, причин і мотивації реалізувати практично.

Передісторія.

В 2013-2014-х роках в трьох учбових центрах викладав курс з розробки сайтів. Не книжку переказував, а систематизував власний досвід у вигляді послідовного навчання. І коли в 2015-му стало зрозуміло, що більше займатись тренерством не маю планів, то крутились в голові думки-ідеї, як би цей вивірений та відшліфований роками на студентах курс оформити у вигляді відкритої інформації. Чи то сайт, чи то уроки на YouTube, чи як. Мотивація була тільки у вигляді розуміння, що мені це вже не потрібно і поки інформація не застаріла, може ще комусь стане в нагоді. Як то кажуть, щоб не пропало даром стільки витраченого часу. А де була помилка? Що почав думати про це постфактум, коли вже цим напрямом не займався і як наслідок, не мав причин витрачати на нього час.

Другий приклад. В 2018-му році розробив прилади, які на той час сприймались, як інновація. І поки були думки про масштабування, про створення міжнародної фірми для їх виробництва та реалізації, то причин думати про Open source не було. Навпаки, низка власних інноваційних рішень розглядалась мною, як комерційна таємниця, яка за потреби могла стати основною конкурентною перевагою. Звісно, за умови переведення розробки в площину комерції. Та одразу в той же рік розвинути задум не вийшло, а через пару років подібні ідеї в той чи інший спосіб реалізували і конкуренти. Тобто, конкурентну перевагу почало складати не застосування нової технології, а шляхи її впровадження.

Протягом 2020-го року вивчав варіант реалізації цієї ж розробки у формі соціального підприємництва (проект Dorada). Задум полягав в тому, що безпосередньо приладобудування не має новизни чи таємниці. Виробляти їх можуть всі бажаючі, а моє завдання - показати навіщо це потрібно робити. Для цього обдумував варіант все перевести в Open source. Тільки не знаю як, бо такого ще не робив і не було часу та причин вивчати. Та за три роки і не з'явилось. Хоча новизна була і залишається в методах застосування цих приладів і по цьому напряму на початку 2023-го захистив дисертацію. Далі переходжу в інший напрям наукової діяльності і повторюється ситуація 15-го року. Постфактум приходить думка, що якщо мені напрям вже не пріоритетний, треба було б якось-кудись поділитись напрацюваннями але невідомо кому це треба та й навіщо це мені і де взяти час, якщо вже зайнятий іншими справами. От ми і прийшли до головного висновку цієї передісторії. 

В першу чергу проект у вигляді open source потрібен його ініціатору і в момент, коли він над ним ще працює. Навіщо - це не очевидне для мене питання розгляну далі. Якщо проект втрачає актуальність для власника, то звісно, може залишитись у відкритому доступі і для історії і в якості портфоліо (кому потрібне) і може десь комусь навіть стане в нагоді але це вже будуть його похідні сенси. 

Починати open source потрібно, коли його тема ще актуальна безпосередньо для розробника. Коли стане не актуальна, то не стане часу і мотивації це все оформляти у вигляді результатів напрацювань. 

Повертаючись до заголовку. Так, а навіщо взагалі заморочуватись з open source? Сам бачу тільки два позитивні момети: формальне визначення розробника та стимулювання якісніше оформляти програмний код. Перше не завжди потрібне, а без другого теж працює. Пошукаємо інші причини в Інтернеті.

"Розробник-початківець отримає досвід роботи з git flow — навчиться створювати, комміти і пулл реквести, а також правильно їх оформляти." - гіпотетично здогадуюсь, що це. Мабуть, допомагає. 

"Якщо проектом будуть користуватись інші, то ця думка змусить тебе охайніше працювати над кодом" - це і припускав. 

"Світ розвивається та змінюється саме через те, що хтось чимось вирішив поділитися" - оце мотивація цінна. Тільки потрібно, щоб те чим ділишся реально мало вартість.

І якщо проект має вартість, то "можна отримати можливість користуватися платними програмами та сервісами безкоштовно або отримати грант на розвиток свого проекту." - так, можливість залучення грантів тримаю в голові. 

"Будь-який із членів open-source спільноти може запропонувати зміни, повідомити про bug's та винести на обговорення подальший розвиток проекту." - слабо віриться, що хтось має час просто так надати корисні поради. Хоча на форумах це дійсно працює, то можливо, працює і на GitHub. Люди бувають різні: "Мене цікавлять не ідеї, стартапи, бізнес, мені цікава розробка та програмування. І якщо мені цікаве програмування як таке, то чому б не направити це в корисне русло і не допомогти покращити інструменти, якими я користуюся.".

"Нікому не потрібен Ваш проект повністю, крім Вас та Вашого клієнта. Але викладати проекти повністю теж не потрібно". Це не плюс, це - неочевидний нюанс. З 2018-го року ділився своєю розробкою зі всіма бажаючими. Але далі, ніж презентувати її десь, як власну інновацію, ніхто не пішов. Завжди і всюди хотіли, щоб розробкою, виробництвом і обслуговуванням займався я сам. А от сегментування проекту на частини трохи лякає тим, що це потребує різних версій. Наприклад, щоб якийсь сегмент був автономним, завершеним рішенням, а в твою загальну систему він інтегрувався, як модуль. Завжди можна щось придумати. Наприклад, працювати над одною версією, а локально пам'ятати тільки перелік змін, які адаптують проект до виду, який ти сам реалізуєш на практиці. 

Доречі, пізніше знайшов підтвердження своїм припущенням: "Найчастіше, щоб відкрити код якогось компоненту, потрібно його сильно порефакторити — прибрати специфічні для проекту хаки, виділити точки розширення, додати тестів і доків. Це все займає багато часу.". Але повернемось до пошуку плюсів. 

"Впізнаваність бренду у суспільстві при цьому зростає, як і довіра ринку." - приклад, WordPress. Загалом, це частково перекликається з моїм першим позитивним моментом: можливість створення бренду і формалізація себе, як його власника в світовому репозиторії. 

"З open source-продуктом простіше засвітити свій бренд на міжнародному ринку. Потрібно тільки організувати хорошу підтримку як мінімум англійською. Якщо рішення класне, його почнуть використовувати люди з різних країн." - таких планів не було але сама перспектива існує. 

"Під час роботи над проектом можна перетнутися з різними людьми по всьому світу, тим самим формуючи мережу знайомств." - тут я трохи призадумався. Чекайте. Коли ми кажемо відкритий саме програмний код, а не готове відкрите програмне забезпечення, то дійсно це парафія саме ком'юніті айтішників. Це вони шукають рішення під свої задачі. І дійсно гіпотетично існує вирогідність, со серед цих айтішників можна ненароком почути практичну пораду. 

Перечитав багато статей. Хотів би назбирати 10 пунктів позитивних моментів open source проекту, та не зміг більше нічого знайти. Тому, закінчу власною думкою. Давно захоплювався відомими проектами з відкритим кодом. Жалкував, що не вистачає в цьому житті часу та знань і собі щось подібне спробувати. Тож, це нормальна, вагома десята причина - власне бажання.