Якщо ви зібралися робити проект, вам доведеться використовувати вже готові технології. Робити все з нуля немає практичного сенсу. Тоді як саме обирати технології?
Перша думка зазвичай веде до того, щоб обрати технологію по критерію “найкраща”. Якщо шукаємо машину, тоді яка буде найшвидша, найпотужніша, менше витрачати палива? Якщо обираємо дрель, тоді яка є найпотужніша, тримає заряд довше, найзручніша, найтихіша? Якщо обираємо програмне забезпечення, тоді яке буде найоптимізованіше, накрасивіше, найзручніше, менше займає пам’яті, менше багів? Ну і завжди ще додається до всього критерій “найдешевше”.
Але найкращі технології в більшості випадків обирати нерентабельно. Замість цього куди більш практичніше буде обрати саме найпопулярніші технології. Якщо у вас зламається ваша “найкраща” машина, вам буде складніше її полагодити, знайти деталі, інструкції в інтернеті, майстрів, вам і вашим співробітникам доведеться вчитися керувати цією машиною. Теж саме можна сказати про “найкращу” дрель. Якщо “найкраще” програмне забезпечення відмовиться працювати, тоді буде складніше знайти інструкції в інтернеті, рішення готових проблем взагалі не буде, всім доведеться вчитися користуватися цим програмним забезпеченням, буде мало інтеграцій з іншим програмним забезпеченням.
Теж саме можна сказати про вибір методологій. Те, як вести бухгалтерію, в якому форматі зберігати документи, по якому графіку формувати робочий день, метод визначення заробітної плати, внутрішній робочій устав, методи комунікації. Краще обрати такі методи, які люди вже знають і розуміють. Те, що провірено на тисячах інших проектів. Найкраще - ворог хорошого.
Якщо вам особисто не складно вивчити нові технології, користуватися ними і отримувати від цього перевагу, тоді ви молодець. Але одного разу вам доведеться поставити замість себе співробітника, а ще пізніше співробітників, щоб масштабувати проект.
Мінусом популярних технології є те, що вони гірше за найкращі і дорожче. Але з ними легко працювати, легко вирішувати виникаючі проблеми. З мого досвіду, більшість робочого часу витрачається саме на виправлення проблем, а не на розвиток проекту. Написавши новий код на передовій мові програмування за час, потім доведеться фіксити його 3 дні. Купивши крутий холодильник, потім тиждень не можеш налаштувати в ньому температуру. Я не перебільшую. Плюс сам пошук найкращої технології теж витрачає час. Ці всі супутні витрати нівелюють переваги найкращих технологій.
Ціль будь-якого проекту збільшувати прибуток, а не тупо працювати швидко з мінімальними витратами. Так, оптимізація може збільшити прибуток, але замість цього більш практично витрачати час на розвиток проекту, на його рух вперед. А ось коли ви вже досягнете піку розвитку, тоді вже є сенс зайнятися оптимізацією, вертикальним масштабуванням, скороченням витрат.