Перейти до змісту
Увійти

Теорія

Купити чи створити: готове замість свого

Купити чи створити: які частини команді з двох людей варто орендувати замість писати самим, як обрати сервіс надовго і як не потрапити в прив'язку до постачальника.

~8 хв читання · 9 вправ · 250 балів

Перед початком

Написати чи орендувати?

У GarageDesk Nina планує розробку і охоче написала б сама і надсилання SMS, і вхід у систему: це не складно, щомісячних платежів немає, і вона розумітиме кожен рядок. Ти їй радиш, тож теж маєш слово в тому, що вона писатиме, а що — ні.

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

Купити чи створити: будуй лише серцевину

Кожен продукт складається з частин, і лише кілька з них — причина, з якої клієнти платять. До кожної частини постав одне запитання: чи за це нам платять клієнти?

  • Для GarageDesk серцевина — правила, які визначають, якому авто час на нагадування, за датою і пробігом. Жоден готовий сервіс їх не знає; вони і є продукт. Їх будують самі.
  • Вхід, оплати, доставка повідомлень і хостинг однакові для всіх продуктів. Цілі компанії займаються тільки ними, лагодять їх цілодобово і розв'язують проблеми, про які мала команда навіть не подумала б. Їх орендують.
Механік зосереджено перебирає двигун, а позаду кур'єр заносить шини, а електрик лагодить освітлення в боксі.

Цей вибір називають купити чи створити (build vs buy). Для команди з двох людей це передусім вибір про час. Вхід здається однією формою, але за ним — відновлення паролів, витоки паролів, листи, що потрапляють у спам, і адміністраторка без доступу, яка дзвонить у суботу. Кожен тиждень, витрачений на це, — тиждень, не витрачений на нагадування.

Правило не «ніколи нічого не писати самому». Воно звучить так: «пиши ту частину, яку можеш написати лише ти».

  • Так
    Створити: правила нагадувань за датою і пробігом. Орендувати: вхід, оплати, доставку SMS і Viber, хостинг.
  • Не так
    «Вхід — це лише одна форма; напишу сама і зекономлю на оплаті».

    Форма — це найлегша частина; решта — відновлення, витоки й заблоковані акаунти.

Скільки коштує оренда за рік

Орендовані сервіси виставляють рахунок щомісяця, тож оцінюй їх за річною різницею, а не за місячною. Після оренди розсилки SMS і Viber, оплат, входу і хостингу рахунок GarageDesk за інструменти зростає з 2 000 до 3 500 грн на місяць.

Додаткові витрати — це різниця, а не новий рахунок:

  • додатково на місяць: 3 500 − 2 000 = 1 500 грн;
  • додатково на рік: 1 500 × 12 = 18 000 грн.

Тепер поклади поруч іншу шальку терезів. Написати й захистити ці чотири частини означало б витратити більшу частину чотирьох тижнів Nina до запуску, а потім вони й далі забирали б її час: виправлення, оновлення безпеки, адміністраторка без доступу, проблема з доставкою вночі. Орендовані сервіси лагодять, поки вона спить.

Тож чесне порівняння — «18 000 грн на рік» проти «більшої частини місяця зараз і підтримки назавжди», а для команди з двох людей, на яку чекають п'ять автосервісів, тижні — дефіцитніший ресурс. Річне число все одно варто знати: саме його ти перераховуватимеш, якщо провайдер подвоїть ціну.

  • Так
    (3 500 − 2 000) × 12 = 1 500 × 12 = 18 000 грн додатково на рік.
  • Не так
    3 500 × 12 = 42 000 грн додатково на рік.

    Рахує весь рахунок, разом із 2 000 грн, які GarageDesk і так платив.

Перерахунок грошової віхи

Грошова віха — рівень доходу, який оплачує ще одну річ; перша віха на драбині GarageDesk — «інструменти оплачені». Коли витрати змінюються, віха зсувається, тож її треба перерахувати.

Розрахунок — це ділення з одним нюансом:

  1. щомісячні витрати ÷ ціна для одного клієнта = потрібна кількість клієнтів;
  2. округлити вгору до цілого клієнта, бо частина автосервісу не платить.

До оренди чотирьох сервісів рахунок за інструменти становив 2 000 грн, а кожен автосервіс платить 600 грн: 2 000 ÷ 600 ≈ 3,33, тобто 4 автосервіси. Після оренди рахунок — 3 500 грн: 3 500 ÷ 600 ≈ 5,83, тобто 6 автосервісів.

Перевір відповідь з обох боків: 5 × 600 = 3 000 грн — бракує 500; 6 × 600 = 3 600 грн — вистачає. П'ять автосервісів, що заплатили наперед, майже досягають нової віхи; шостий закриває різницю.

Більший рахунок — не причина відмовитися від оренди. Це причина точно знати, скільки клієнтів вона коштує.

  • Так
    3 500 ÷ 600 ≈ 5,83 → округлити вгору до 6 автосервісів. Перевірка: 6 × 600 = 3 600 ≥ 3 500.
  • Не так
    3 500 ÷ 600 ≈ 5,83 → округлити вниз до 5 автосервісів.

    5 × 600 = 3 000 грн: до рахунку бракує 500.

Орендуєш роботу, а не відповідальність

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

Тож орендована частина однаково потребує трохи постійної уваги:

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

Це все одно набагато менше роботи, ніж будувати і підтримувати частину самому. Суть у тому, щоб не вважати «орендоване» «розв'язаним». Сервіс, на який ніколи не дивишся, — це залежність, про яку дізнаєшся в день, коли він зламається.

  • Так
    Nina щотижня читає звіт про доставку і помічає, що повідомлення одного оператора почали не доходити.
  • Не так
    «Ми платимо провайдерові, тож доставка тепер його проблема».

    Автосервіси однаково дзвонитимуть у GarageDesk.

Як обрати сервіс, який не зникне

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

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

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

  • Так
    Сервіс, яким малі бізнеси роками надсилають нагадування, що досі оновлюється і дозволяє вивантажити дані.
  • Не так
    «Удвічі дешевше і гарний інтерфейс, запустився минулої осені: беремо».

    Ціна й краса нічого не кажуть про наступний рік.

Нудні технології навмисно

Логіка «купити чи створити» стосується й твого власного коду. Коли починаєш бізнес, будуй його на стеку, який уже знаєш: нудні технології (boring technology), відомі, зрілі, з відповіддю в мережі на кожне повідомлення про помилку.

На верстаті міцний старий гайковий ключ лежить поруч із яскравим новим гаджетом із миготливими вогниками, і механік тягнеться до старого ключа.
Нудні технології: відомі, зрілі, з відповіддю в мережі на кожну помилку.

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

Nina обирає стек, з яким працювала в дистриб'ютора п'ять років. Він не захопливий, і саме в цьому суть: його проблеми відомі, а відповіді легко знайти.

Це не правило проти навчання. Новий фреймворк Nina може спробувати згодом, на побічному проєкті, від якого не залежить її оренда. Це правило про час: ризикована частина нового бізнесу має бути в самому бізнесі, а не в інструментах.

  • Так
    Будувати GarageDesk на стеку, з яким Nina працює п'ять років; новий фреймворк спробувати згодом на побічному проєкті.
  • Не так
    «Вивчу новий фреймворк, поки будую GarageDesk: двох зайців одним пострілом».

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

Твої дані живуть у твоїй базі

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

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

Безпечна схема проста:

  • власна база GarageDesk — джерело правди: власники авто, номери, авто, пробіг, які нагадування пішли;
  • кожен запит до провайдера несе те, що потрібно для цього повідомлення: номер і текст;
  • записи провайдера — копія, корисна для звітів про доставку, але не єдине місце, куди можна зазирнути.

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

  • Так
    Номери живуть у базі GarageDesk; кожне нагадування передає провайдерові номер і текст.
  • Не так
    Номери є лише в адресній книзі SMS-провайдера.

    Щоб піти, доведеться просити старого провайдера віддати твої ж дані.

Лиши собі вихід: один модуль на провайдера

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

Один модуль посередині. Не давай кодові звертатися до SMS-провайдера з п'ятдесяти місць. Постав між GarageDesk і провайдером один маленький модуль «надіслати нагадування». Решта коду говорить лише з модулем. Щоб змінити провайдера, Nina переписує цей один модуль — день роботи замість місяця, — і ніщо інше цього не помічає. Так само з оплатами і входом.

Верстат в автосервісі під'єднано до розетки через один маленький перехідник, і рука міняє вилку на перехіднику, не торкаючись проводки верстата.

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

Разом ці звички допомагають уникнути прив'язки до постачальника (vendor lock-in): коли ти застрягаєш із провайдером, бо піти коштувало б надто дорого.

GarageDesk будує лише правила нагадувань, а розсилку, оплати, вхід і хостинг орендує, кожне за одним модулем, щоб замінити провайдера за день.
Будуй те, за що платять автосервіси; решту орендуй і лиши собі вихід.
  • Так
    GarageDesk → модуль «надіслати нагадування» → сьогоднішній SMS-провайдер.
  • Не так
    П'ятдесят місць у коді звертаються до провайдера напряму.

    Перехід перетворюється на місяць пошуків по коду.

Готові потренуватися?

Виконайте вправи уроку й отримайте 250 балів, коли пройдете його вперше.

Розпочати вправи