Плюси та мінуси розробки програмного забезпечення з відкритим кодом

Настав час повернути людям, які дозволяють користуватися Інтернетом!

Багато розробників захоплюються проектами з відкритим кодом, і з поважної причини: вони використовують їх щодня, щоб пришвидшити свою роботу. Є багато успішних прикладів програмних рішень з відкритим кодом, таких як Linux (операційна система) або React (бібліотека JavaScript). Ці рішення часто добре розроблені, і приємно працювати з таким високоякісним кодом.

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

Що таке відкритий код?

Термін «відкритий код» був утворений в галузі розробки програмного забезпечення і стосується того, що кожен може перевірити, змінити та поділитися. Він являє собою специфічний підхід до створення комп’ютерних програм, що оспівує цінності співпраці, прозорості та розвитку, орієнтованого на громаду.

Відкритий вихідний код пишеться розробниками і для розробників.

Для захисту всіх сторін, які беруть участь у відкритому коді, власник проекту може використовувати ліцензію Creative Commons. Ліцензія Creative Commons (CC) дозволяє кожному ділитися, використовувати та базуватися на вашій роботі.

Програмне забезпечення з відкритим кодом, як правило, є безкоштовним програмним продуктом, де розробники мають доступ до вихідного коду. Вони можуть покращити продуктивність програми, додати деякі функції та виправити помилки. Деякі приклади такого програмного забезпечення - LibreOffice, Mozilla Firefox та Chromium.

На відміну від цього, існує запатентоване програмне забезпечення , яке також називають «програмним забезпеченням із закритим кодом». Вихідний код такої програми можуть перевіряти або змінювати лише її власники. Деякі приклади фірмового програмного забезпечення включають деякі продукти Microsoft, Adobe або Apple.

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

Що чудового у розробці програмного забезпечення з відкритим кодом?

переваги з відкритим кодом

Особисті блага

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

Не варто недооцінювати важливість особистих благ - відчуття корисності та самодіяльності.

Визнання громадою

Вчені та лікарі діляться своїм досвідом, пишучи наукові статті та беручи участь у наукових конференціях. Дизайнери UI / UX діляться своїм досвідом щодо Behance або Dribbble. Письменники друкують свої книги або діляться ними через Інтернет-платформи. Музиканти та кіновиробники діляться своєю роботою зі світом за допомогою різних потокових сервісів. Чому розробники програмного забезпечення можуть відрізнятися і хочуть упустити можливість отримати визнання?

Працюючи над проектами з відкритим кодом або запускаючи їх, ви можете отримати визнання від спільноти розробників різними способами, наприклад, створивши чудовий профіль GitHub та взявши участь у таких заходах, як Hacktoberfest.

Ви також можете отримати знижки, безкоштовний вхід на заходи та добре розвинену інфраструктуру для запуску своїх проектів. Робота над проектами з відкритим кодом не тільки економить ваші гроші, але й надихає вас використовувати всі найкращі інструменти, доступні вам у ваших власних проектах.

Ось декілька учасників львівського Хактоберфесту.

Самореклама

Якщо ви або ваша компанія берете активну участь у спільноті з відкритим кодом, ви можете заробити чудову репутацію. Таким чином, якщо ви приватна особа або самостійний розробник, вам буде легше знайти роботу фрілансером або штатним працівником. Якщо ви представляєте компанію, що розробляє програмне забезпечення, вам буде простіше знайти людей, які бажають працювати на вас, партнерів, готових співпрацювати, та клієнтів, які бажають звернутися за вашими професійними послугами.

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

Почуття цінності

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

Допомагаючи розробникам досягти цих почуттів цілі та цінності, ви зацікавлюєте їх у роботі з вами.

Те саме справедливо, якщо ви - самозайнятий розробник. Залучення до розробки програмного забезпечення з відкритим кодом зробить вашу роботу значущою, і ви не будете ненавидіти її з часом.

Якість програмного забезпечення

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

Навіть код, написаний одним розробником, часто є більш якісним, якщо він відкритий. Якщо ви пишете код, який бачитимете лише ви або ваші близькі колеги, можливо, ви особливо не дбаєте про стиль коду. Але якщо ви напишете код, який бачать усі, ви зробите все, щоб не виглядати кодовою мавпою. Тут корисні відгуки, внески та рефакторинг від спільноти.

Безпека даних

Для розробки додатків слід використовувати програмне забезпечення з відкритим кодом, оскільки воно є більш безпечним. Спільнота оперативно виявляє та повідомляє про недоліки безпеки, які власник програмного забезпечення зазвичай виправляє відразу.

У свою чергу, якщо у власному програмному продукті є недолік безпеки, ніхто не буде знати, поки хтось не стане жертвою загрози, яку він представляє.

Крім того, продукти з відкритим кодом не можуть зловживати та зловживати даними користувачів навмисно, як це роблять деякі фірмові компанії-розробники програмного забезпечення. Спільнота виявить це зловживання, і репутація програмного забезпечення та його власника буде зруйнована.

Налаштування

Розробка програмного забезпечення з відкритим кодом зазвичай означає, що ви розробляєте програмне забезпечення, яке легко настроюється. Оскільки вихідний код відкритий, розробник може легко додати зміни до функціональних можливостей інтерфейсу.

Наприклад, Apache CloudStack - це програмне забезпечення з відкритим кодом, що полегшує хмарні обчислення. Інший приклад - платформа з відкритим кодом Botpress, яка дозволяє розробникам легко створювати власні чат-боти. Розробники KeenEthics, які є учасниками Botpress, відчувають задоволення, коли спрощують життя когось іншого.

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

Сергій Горностаєв

Що не чудово в розробці програмного забезпечення з відкритим кодом?

недоліки з відкритим кодом

Неправильне спілкування та непорозуміння

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

Зрештою, немає жодних гарантій того, що внески громади не виявляться нижчими за якістю. Ось чому існує висока ймовірність того, що ви в кінцевому підсумку рефакторингуєте чийсь код і залишаєте людей розчарованими, не об’єднуючи їх змін.

Загроза цінності основного бізнесу

Ніколи не слід відкривати будь-що, що має основну цінність для вашого бізнесу. Якщо є комерційна таємниця - ідея або спосіб її реалізації, що робить ваш бізнес унікальним, не слід відкривати його, щоб він не став доступним для ваших конкурентів. Однак якщо у вас є ідеї та інструменти, якими можна користуватися громадськості без втрат для вашого бізнесу - відкрийте їх.

Чому відкритий код - це правильна справа

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

Крім того, опитування Tidelift та The New Stack свідчить, що 84 відсотки розробників програмного забезпечення використовують відкритий код у своїй професійній роботі. Використовуючи чужий досвід та знання, чому б вам не поділитися своїм?

Якщо ми насолоджуємось перевагами відкритого коду, повернення грошей спільноті - це правильно.

Беріть участь у розробці з відкритим кодом!

Як розпочати? Відкрийте свій репозиторій GitHub для широкого загалу та повідомте про це світові через свій блог, соціальні медіа або форуми розробників. Зареєструйтесь у Hacker News, оскільки там багато учасників із відкритим кодом.

Відкрите джерело змушує вас швидше рости як розробник і приносить корисний результат всій спільноті. У той же час, ви повинні намагатися не шкодити спільноті, яка дає вам усі ці чудові речі з відкритим кодом. Розумно робіть внески та допомагайте іншим, відповідаючи на запитання, з якими ви можете допомогти.

У вас є ідея для проекту?

Моя компанія KeenEthics має великий досвід роботи з веб-розробкою з відкритим кодом та розробкою мобільних додатків. Якщо ви готові змінити гру та розпочати свій проект, не соромтеся зв’язуватися .

Якщо вам сподобалась стаття, вам обов’язково слід прочитати ще одну: Agile Testing: How to Garante High Quality Software.

PS

Я також хотів би подякувати Алексу Плетнову, технічному директору @ KeenEthics, за натхнення та внесок у статтю.

Оригінальну статтю, розміщену в блозі KeenEthics, можна знайти тут: Що чудово в розробці відкритого коду, а що ні?