Зачем мы спрашиваем клиентов про количество пользователей на платформе? — обложка

Один из первых вопросов, который слышат наши клиенты — How many users do you expect in your first month? How many are likely to use it simultaneously? (Да, мы много работаем с зарубежными стартапами: чаще всего спрашиваем по-английски).

Многие отвечают неохотно и неуверенно — от «а вам зачем» до «вы разработчики, вы лучше знаете». Между тем, точный ответ может сэкономить клиенту деньги — и иногда довольно серьёзные. А иногда — и помочь заработать.

Можно ли сэкономить или даже заработать?

Поговорим о главном — о деньгах. Информация о количестве пользователей поможет не только вашей команде, но и сэкономит или приумножит средства. Как именно?
Зная, сколько человек будет пользоваться платформой, мы сможем:

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

Экономим, исключая ненужные траты и планируя внедрение новых функций.

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

Что именно мы спрашиваем?

В зависимости от особенностей платформы, нам важно выяснить:

  • максимальное количество пользователей платформы в месяц;
  • максимальное количество пользователей на платформе онлайн одновременно;
  • что именно делают пользователи на платформе: например, выкладывают посты, звонят, играют — сколько раз в день?
  • предполагаемая динамика роста аудитории

А что, если я действительно не знаю?

Если ваш проект уже работает, скорее всего, в нём настроена аналитика. Google Analytics или его аналоги помогут быстро и точно оценить количество пользователей.
Если аналитика не настроена — можно использовать более технические данные: информацию из баз данных, статистику нагрузки на сервер или отчёты из консоли облачного провайдера и так далее.

Если вам нужна наша команда, чтобы создать проект с нуля, стоит посмотреть статистику конкурентов — например, с помощью сервиса SimilarWeb. Если по каким-то причинам это невозможно, можно ориентироваться на условную цифру в 1000 активных пользователей. Опыт показывает, что в первые месяцы жизни продукта этого вполне достаточно.

И, конечно, в обоих случаях стоит проконсультироваться с нашими аналитиками — они помогут собрать нужные данные и сделать выводы.

Это важно для всех проектов?

Да, для всех. Особенно это важно для систем, которые соответствуют хотя бы одному из этих критериев:

  • Большой входящий/исходящий трафик: пользователи загружают и скачивают HD-видео, проводят видеоконференции с тремя и более участниками,
  • Есть требование обеспечить минимальные задержки: пользователи играют в онлайн-игры, репетируют на музыкальных инструментах по видеосвязи или микшируют DJ-сеты,
  • Приложение выполняет длительные и ресурсоёмкие операции: сжатие, конвертацию или обработку видео, архивацию файлов, маршрутизацию видео- и аудиозвонков, обработку или генерацию данных нейросетями.

Почему сразу не сделать расчёт на многотысячный и очень интенсивный онлайн для всех?

Во-первых, такая платформа выйдет в продакшен позже.

Если мы знаем, что первые месяцы сервисом будет пользоваться небольшая аудитория (такую группу обычно называют early adopters), разумнее и выгоднее не откладывать запуск до тех пор, пока не будут готовы и протестированы под нагрузкой системы балансировки и масштабирования.

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

В-третьих, такой расчёт не подходит для всех проектов.

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

Что с этими данными делает разработчик?

Разработчик поймёт:

  • какой сервер нужен: on-premise (физическое оборудование клиента), облачный (AWS, Hetzner, Google Cloud, AliCloud) или целая сеть серверов,
  • можно ли и нужно ли перенести часть нагрузки на устройство пользователя (клиент),
  • какие из задач, связанных с оптимизацией и производительностью, нужно реализовать сразу, а какие можно отложить на более поздние спринты.

Оффтопик: а чем отличается серверная нагрузка от клиентской?

Простой пример: допустим, мы делаем свой инстаграм. Пользователь снимает видео, добавляет простые эффекты и выкладывает результат в свою ленту.

Если цель — быстро и недорого выйти на первую аудиторию, пилотный билд может выполнять почти всё на сервере.

Плюсы:

  • нет риска упереться в ограничения конкретных платформ: форматы видео, ограничения по нагрузке и прочие нюансы нас не волнуют. Всё обработается централизованно, поэтому можно быстро сделать продукт под все платформы и выпустить одновременно.
  • нет жестких требований к клиентским устройствам: проще выходить на растущие рынки — такие как Африка, ЮВА, Латинская Америка. Справится даже самый дешёвый телефон, которых в этих регионах много.
  • приложения нашего “неИнстаграма” для отдельных платформ, таких как веб и мобильные ОС, получаются очень простыми. Авторизация, лента, кнопка «загрузить» — и всё.

А если задача — сразу предоставить полную функциональность большой действующей аудитории, то тяжёлые серверные расчёты теряют привлекательность: имеет смысл сразу задействовать мощность клиентских устройств.

Плюсы:

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

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

А что, если мы разрабатываем компонент только для живого проекта?

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

Далее, исходя из назначения будущего компонента и прогноза числа пользователей и их активности на платформе после его появления, разработчик поймёт, стоит ли улучшать текущую архитектуру или перейти на более эффективную.

Так в итоге, зачем мы спрашиваем про количество пользователей?

Всё сводится к эффективности и экономии ресурсов и денег: чем точнее мы понимаем масштаб продукта и ожидаемую нагрузку, тем лучше спланируем запуск, точнее оптимизируем расходы и надёжнее сделаем систему в долгосрочной перспективе.

  • Вопросы клиентов
    Процессы