Упс! Не вдала спроба:(
Будь ласка, спробуйте ще раз.

Підхід Keep The Lights On: як працює і чим корисний в розробці програмного забезпечення

0
3 квітня 2025 11 хвилин читання

Реліз IT-продукту — ще далеко не фінал проєкту. Життєвий цикл застосунку не закінчується його виходом у світ. Надалі слід підтримувати стабільну роботу системи, покращувати, розвивати функціонал. На цьому етапі стане в пригоді підхід Keep The Lights On (далі — KTLO).

Розповідаємо, що варто знати розробникам та менеджерам, щоб ефективно втілити принципи KTLO у проєкті.

Під терміном Keep The Lights On мають на увазі будь-які процеси, що безперервно забезпечують стабільність і надійність програмного забезпечення та регулярне обслуговування його систем й інфраструктури. KTLO не додає нових функцій, проте фактично є серед завдань IT-команд і подекуди займає багато часу.

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

Зазвичай KTLO охоплює такі завдання:

  • Підтримка інфраструктури. Базовий рівень — сервери, мережа, операційна система, бази даних. Потрібно їх моніторити, оновлювати та гарантувати безпеку.
  • Створення резервів. На проєкті мають бути інструменти резервного копіювання даних та розгортання IT-ресурсів для масштабування системи.
  • Моніторинг системи. Варто відстежувати проблеми з продуктивністю, аномалії, збої, налаштовувати сповіщення та швидко реагувати на інциденти.
  • Виправлення помилок. Будь-яке програмне забезпечення має баги. Треба виявляти їх та виправляти для мінімізації простою системи.
  • Стандартні оновлення. Це покращення на кшталт встановлення патчів безпеки та адаптування продукту/сайту під зміни партнерських API — все задля підтримки стабільної роботи.
  • Забезпечення відповідності корпоративним політикам. В ідеалі будь-яка компанія повинна оновлювати продукт, враховуючи норми безпеки, корпоративні політики, вимоги державних регуляторів тощо.

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

  • Краще розуміння системи

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

  • Ефективність виправлення багів

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

  • Закриття технічного боргу

Підписуйтеся на наші соцмережі

Технічний борг є невіддільною частиною ітеративної розробки програмного забезпечення. Та до нього часто не доходять руки. А проактивний Keep The Light On дозволить інтегрувати в процеси час, наприклад, на проблемний код або зміни структури БД.

  • Інтеграція з DevOps

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

  • Розробка нових функцій

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

При цьому вся команда має розуміти, що таке KTLO. Лише так вдасться ефективно розподілити ролі, обов’язки та ресурси.

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

  • Зрозуміти реальне навантаження команди

Виокремлення KTLO на рівні тасків та звітів допоможе побачити, скільки часу займають рутинні задачі. Наприклад, такі IT-лідери, як Google, вважають: коли на підтримання стабільності уходить понад 50% часу розробників, це вимагає переорієнтації в роботі організації.

  • Розподіляти ресурси ефективно

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

  • Розставляти пріоритети

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

  • Покращувати процеси

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

  • Розподіляти обов’язки

Робота KTLO в організаціях може бути «нічиєю». Розробники перекидають її на операційників, ті на техпідтримку, та навпаки. Але щоб підтримувати стабільну роботу системи, треба знати, хто за що відповідає та за необхідності додавати ролі: від девопсів і SRE-інженерів до KTLO-команд.

  • Керувати очікуваннями бізнесу

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

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

Створення команди для KTLO буде виправдано, коли:

  • Розробники перевантажені. Фахівці, орієнтовані на KTLO, звільнять ресурси для розвитку продукту та впровадження інновацій. В довгостроковій перспективі організація компенсує такі витрати на окрему команду.
  • Системі важлива стабільність. В деяких доменах надійність впливає на дохідність бізнесу. Це eCommerce, фінанси тощо. Окрема команда дозволить мінімізувати час розв’язання проблем та простою.
  • Наявні вимоги Service Level Agreement. Для певних бізнесів вони є критичними, і в продуктах їх, наприклад, має бути безперебійна робота 99,9% часу. Команда KTLO якраз й управлятиме ризиками.
  • Система стрімко зростає. Коли програмне забезпечення використовують мільйони юзерів, його обслуговування складнішає, а інфраструктура зазнає більше інцидентів, тому задач KTLO вистачить на окрему команду.

Пам’ятайте: навіть за наявності всіх факторів варто фінансово обґрунтувати переваги команди, яка буде підтримувати стабільну роботу. Показати її цінність та доцільність допоможе індекс ROI (Return on Investment). Як це виглядає на практиці?

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

  • Аналіз ситуації. Зрозумійте обсяг активностей KTLO та їх вплив на команди. Для цього потрібно оцінити за певний період кількість таких задач, як виправлення помилок, оновлення та моніторинг. Це дозволить виділити точки болю — те, на що IT-команда витрачає найбільше зусиль.
  • Структурування. Розділяйте таски на реактивні (реагування на інциденти), проактивні (рефакторинг, оптимізація та автоматизація, які допомагають оминати потенційні проблеми) та регулярне обслуговування інфраструктури. Такий підхід до KTLO в управлінні проєктами спрощує планування.
  • Планування. Слід порахувати ресурси. Коли KTLO охоплює багато тасків, потрібна окрема команда. Якщо ж підтримання стабільності займає до 20-30% часу, компанія може організувати ротацію розробників. А ще потрібні KPI. Наприклад, підвищення uptime або зменшення інцидентів.
  • Налаштування процесів. Потрібні базові сценарії з алгоритмами обробки інцидентів та ролями. Наприклад, хто моніторить ті чи інші дані та як реагувати на падіння застосунку. Також варто прописати, як такі задачі позначаються в трекерах. Це зробить KTLO більш передбачуваним процесом.
  • Автоматизація. Чим менше «ручної» роботи, тим швидше реагування й краще самопочуття команди. Найлегше автоматизувати моніторинг, резервне копіювання та стандартні оновлення. А ще варто подумати про інструменти Self-Healing Systems — для автоматичного вирішення відомих збоїв.
  • Зменшення технічного боргу. Без цього складно підтримувати стабільну роботу. Адже це дозволить спростити систему і зменшити ризик інцидентів. Для цього варто створити backlog задач і визначити пріоритети по напрямках, де є збої. А ще допоможе організація регулярного рефакторингу.
  • Передача знань. Навіть якщо є окрема команда, робота KTLO не має залежати від кількох людей. Треба навчати цього якомога більше розробників (особливо новачків). Наприклад, проводити тренінги з моніторингу й реагування на інциденти. Також варто створити та підтримувати ту ж документацію.
  • Моніторинг. Не варто ставитися до KTLO в управлінні проєктами як до чогось статичного. Справжні IT-лідери шукають шляхи безперервного вдосконалення в системі. З цим допоможуть аналіз ефективності KTLO, створення дашбордів для оцінки стану продукту та ретроспективи з командами.

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

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

Тож не зволікайте, практикуйте KTLO та покращуйте свої розробки!

Якщо ви хочете поділитися з читачами SPEKA власним досвідом, розповісти свою історію чи опублікувати колонку на важливу для вас тему, долучайтеся. Відтепер ви можете зареєструватися на сайті SPEKA і самостійно опублікувати свій пост.
0
Icon 0

Підписуйтеся на наші соцмережі

Інші матеріали

Як виглядає сучасний digital-audit: що перевіряти і що оптимізувати в першу чергу

Олександр Христич 18 червня 2025 12:07

Чи доречно засмутитися, якщо що ваші старання не оцінили?

Sofiia Borovska 18 червня 2025 15:44

WBT пробиває $52 — що далі? Три сценарії на III квартал 2025 року

Тарас Мазур 17 червня 2025 15:22

Монетизація без коду: Чому B2B-продукти обирають брокерські моделі у 2025

Владислав Гринів 18 червня 2025 14:26

Літній криптопортфель: які активи тримати в спокійний сезон

Іван Павловський 12 годин тому