Технические вызовы и проблемы на разных стадиях развития ИТ-компаний
Возвращаемся к обсуждению стадий жизненного цикла IT-компаний, но через призму технических вызовов

ПЕРВЫЙ ЭТАП

ЗАРОЖДЕНИЕ

Задача этапа:

сделать все что помогает быстро прийти к рабочему концепту и получить первых пользователей

Технические вызовы:

  • Создание MVP (минимально жизнеспособного продукта) или POC максимально быстро и с минимальными ресурсами
  • Выбор технологического стека
  • Отсутствие технической зрелости команды
Типичные проблемы:

  • Плохо спроектированная архитектура: главная цель – сделать быстро и базово жизнеспособно
  • Как правило нет данных по нефункциональным требованиям: сколько будет пользователей? Какие будут пиковые нагрузки? Отсюда отсутствие планов по масштабируемости и надежности
  • Долги в коде ("technical debt", “технический долг”): код пишется быстро, без оглядки на качество, без рефакторинга и заглядывания вперед
  • Тестирование производится только в минимально необходимом объеме
  • Процессы автоматизации деплоя также минимальные. Обычно делаются лидом разработки не приходя в сознание, чтобы вместо команды cp делать git pull
  • Мониторинг не требуется и отсутствует
!

Вышеуказанные проблемы не являются критическими для этапа MVP, более того, попытка решения этих проблем часто приводит к ненужному удорожанию проекта, растягиванию сроков и бывает что к потере конкурентных преимуществ и краху проекта. Поэтому задача этапа - максимально быстро и “грязно” сделать концепт для проверки бизнес гипотезы и выйти с ней в реальный мир

Как преодолевать:

  • Выбирать для разработки концепта широко представленные на рынке технологии, чтобы снизить риски удорожания эксплуатации и найма 
  • Сделать фокус на простоте архитектуры — строить максимально просто, понятно и доступно
  • Использовать проверенные фреймворки
  • Минимизировать ручную работу по поддержке инфраструктуры используя готовые сервисы (например облачные и hosted)
  • Проводить регулярные код-ревью даже в маленькой команде

ВТОРОЙ ЭТАП

ранний рост

Задачей на этапе раннего роста

является адаптация к появлением существенного количества бизнес транзакций

!

Этап раннего роста характеризует появление нефункциональных бизнес требований. К этим параметрам относятся требования ко времени доступности сервиса и необходимостью держать определенную нагрузку. Отсюда проистекает необходимость усложнения инфраструктуры для организации отказоустойчивости и безопасности, появления технических средств траблшутинга для уменьшения времени отладки при ошибках и инцидентах и необходимость автоматизации деплоев для ускорения процессов выкатки и отката релизов. На этом этапе закладываются формальные процессы в компании


Некоторые проекты, разрабатываемые в уже существующих небольших и средних сервисов, сразу стартуют с этого этапа и со старта требуют более комплексного подхода

Технические вызовы:

  • Увеличение нагрузки: больше пользователей, больше данных
  • Первые падения под нагрузкой, необходимость отказоустойчивости и первые оптимизации производительности
  • Усложнение системы: появляется больше функциональности или интеграций
  • Начало масштабирования инфраструктуры: серверов мало и покупка более мощного сервера обычно закрывает проблемы
Типичные проблемы:

  • MVP-архитектура начинает ломаться: приложение плохо выдерживает рост нагрузки
  • Сложности траблшутингом комплексных ошибок
  • Хаос в разработке: без процессов DevOps и QA рост превращается в постоянные аварии
Как преодолевать:

  • Внедрение мониторинга (Prometheus, Grafana, Sentry)
  • Внедрение лог коллекторов и анализа логов
  • Стандартизация процессов разработки: код-стайл, pull-request-полиси
  • Внедрение автоматического деплоя: появление CI/CD, автоматических сборок
  • Внедрение QA, юнит- и интеграционных тестов
  • Внедрение базовых ITSec практик

ТРЕТИЙ ЭТАП

МАСШТАБИРОВАНИЕ

Задача этапа - адаптация к росту как количества данных и нагрузке так и, что часто более важно, к резкому увеличению количества сотрудников непосредственно участвующих в создании, доставке и обслуживанию IT сервисов

!
Этап характерен исчерпанием возможностей масштабирования вверх (scale up), увеличением количества людей в IT подразделении, активным дроблением на команды, появлением выделенных команд разработки у каждого сервиса и значительном увеличением количества необходимой коммуникации для принятия решения на уровне компании

Происходит резкое увеличение количества и глубины формальных процессов, которые необходимы для дальнейшего роста компании без потери доступности сервисов. Горизонтальные связи трансформируются в коммуникацию формального подчинения

Задачи стабильности и доступности отодвигают по важности задачи роста функциональности. Из-за смены парадигмы происходит глубокая перестройка компании

Технические вызовы:

  • Обеспечение высокой доступности и отказоустойчивости
  • Масштабирование баз данных (шардинг, репликация)
  • Повышение безопасности: появляются требования к защите данных
  • Интеграция сложных сервисов: биллинг, аналитика, ML-модули
Типичные проблемы:

  • Сложности с согласованностью данных (consistency vs availability).
  • Узкие места в производительности: базы данных, API
  • DevOps-инфраструктура требует постоянного внимания из-за роста функциональности, данных и нагрузки
  • Из-за бюрократизации компанию покидают ключевые фигуры, встает вопрос взаимозаменяемости и передачи знаний
Как преодолевать:

  • Усиление роли формальных процессов как в разработке так и в эксплуатации
  • Построение внутренней платформы для централизованного управления инфраструктурой и сервисами
  • Переход на готовые масштабируемые платформы (использование Kubernetes, облачные сервисов (Ростелеком, МТС, СберОблако, AWS, Azure, Google Cloud, Digital Ocean, Hetzner)
  • Внедрение полноценной системы информационной безопасности и регулярных security-аудитов

ЧЕТВЕРТЫЙ ЭТАП

ЗРЕЛОСТЬ

Технические вызовы:

  • Поддержка legacy-систем при необходимости развивать новые решения
  • Снижение time-to-market: как быстро выпускать фичи при сложной системе
  • Масштабируемость команды: более 100+ инженеров требуют новых практик разработки
  • Эффективное управление ресурсами на уровне кластера, затрат на облака
Типичные технические проблемы:

  • Рост технического долга: сложно рефакторить без риска сломать бизнес-критичные процессы
  • Медленная разработка: много согласований и зависимостей
  • Проблемы интеграции старого и нового кода
  • Перегрев инфраструктуры (большие счета за AWS/GCP)
Как преодолевать:

  • Внедрять Domain-Driven Design (DDD) для четкой структуры систем
  • Использовать feature flags и канареечные релизы для безопасных обновлений
  • Разделение монолита на сервисы там, где это нужно
  • Рефакторинг ключевых компонентов — постепенный переход от монолита к микросервисной архитектуре
  • Создание центров компетенций (Backend Guild, Frontend Guild)

ПЯТЫЙ ЭТАП

УПАдок ИЛИ ТРАНСФОРМАЦИЯ

Технические вызовы:

  • Устаревание технологий: поддержка старого кода становится дорогой и сложной
  • Потеря экспертизы: уход старых сотрудников, сложно передавать знания
  • Неспособность быстро перейти на новые технологии или рынки
  • Снижение качества продуктов из-за нехватки ресурсов
Типичные технические проблемы:

  • Поддержка устаревших систем (например, старые версии Java, .NET, PHP)
  • Отсутствие документации
  • Неспособность быстро фиксить критические баги
  • Зависимость от морально устаревших API, библиотек
Как преодолевать:

  • Переход от микросервисной архитектуры к монолитной
  • Аудит кода и инфраструктуры для выявления критичных точек
  • Приоритизация миграций: выбор наиболее болезненных участков для перевода на новые технологии
  • Внедрение программ внутреннего обучения и передачи знаний.
  • Если планируется трансформация — выделение отдельной команды для "старта с чистого листа"
  • Стратегическое партнерство или покупка сторонних решений для ускорения перехода
"Учиться - это жить дважды"
Марк Твен
писатель и общественный деятель
Давайте вместе приумножим нашу жизнь:
Жизненный цикл IT-компаний
Посмотрим через какие стадии проходят все компании, выделим проблемы каждой стадии и предложим возможные решения
Финальные сценарии развития компаний после упадка
Отобрали яркие примеры трех основных путей развития международных компаний после их упадка
Легаси
Разберемся в том, что такое легаси, какие полезные навыки можно получить работая с легаси, костылями и хранителями легаси
Антипаттерны в DevOps и SRE: Частые ошибки и способы их предотвращения
Выделим и рассмотрим основные антипаттерны в DevOps и SRE — распространённые ошибки, которые могут свести на нет все преимущества данных подходов
Как создать культуру взаимодействия между DevOps и SRE-инженерами для повышения скорости разработки и надежности систем
В теории DevOps и SRE команды зачастую описываются как слаженный организм, который призван работать на благо компании, но на практике оказывается, что коммуникация между командами далеко не всегда является слаженной и эффективной