Как считать время

Тайминг конференции: план, прогноз и факт

Конференция почти никогда не идёт по плану. Хороший тайминг — не тот, который угадал, а тот, который умеет пересчитаться, когда первый же доклад ушёл на семь минут вперёд.

Три величины, которые нельзя смешивать

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

Прогноз — это ответ на вопрос «когда строка начнётся, если дальше всё пойдёт как идёт». Он пересчитывается от того, что уже случилось, и живёт отдельно от плана.

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

Если все три величины лежат в одной ячейке, после первой же задержки нельзя ответить ни на один полезный вопрос: ни «на сколько мы отстаём от договорённости», ни «во сколько выйдет докладчик после обеда». Что такое рандаун вообще и зачем в нём эти колонки — на отдельной странице.

Три способа привязать строку ко времени

Задержка расходится по программе не одинаково: это зависит от того, как строка привязана ко времени. Способов три.

Гибкая строка

Начинается сразу после предыдущей. Задержка переносится на неё целиком.

Мягкий старт

Начинается не раньше своего планового времени. Если программа идёт с опережением, пауза перед строкой сохраняется, а не съедается.

Жёсткий якорь

Держится за своё плановое время и не двигается. Если предыдущее переработало, сервис показывает конфликт, а не молча сдвигает якорь.

Разница между гибкой и мягкой строкой видна только при опережении. Кофе-брейк, поставленный мягким стартом, не начнётся в 11:40 только потому, что доклад закончился раньше: люди придут к 12:00, как написано в программе для гостей. Гибкая строка на его месте уехала бы вперёд и разошлась бы с тем, что раздали залу.

Что такое жёсткий якорь и где его ставить

Жёсткий якорь — это строка, время которой задано снаружи и не обсуждается. Типичные случаи: обед в заявленное площадке время, включение спикера из другого часового пояса, начало федеральной врезки, окончание аренды зала.

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

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

Несколько залов: почему задержка не расползается

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

Поэтому время считается по независимым полосам: у каждой пары «полоса плюс день» свой курсор. Строки внутри одной полосы могут переходить через местную полночь, а строка из другого дня или из другого зала на этот курсор не влияет. Одновременно идущей в полосе может быть только одна строка.

Длительность задаётся целым числом секунд, а не парой времён «с» и «по». Из-за этого программа корректно переживает и переход через полночь, и перевод часов: сервис не сравнивает голые строки вида «ЧЧ:ММ», а работает с настоящими моментами в часовом поясе события. Локальное время, которого в этот день не существует из-за перевода часов, сервис отклоняет явно, а не выбирает молча одно из двух.

Как факт попадает в программу во время события

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

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

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

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

Ограничения, о которых честно сказать заранее

Нужен аккаунт владельца — без входа программу не создать. Интерфейс русский. Сервис не угадывает длительности за организатора и не предлагает «оптимизировать» программу: он считает то, что в неё внесли, и показывает, где расчёт не сходится.

Если вести сценарий некому

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

Если делать самому — создайте аккаунт владельца и соберите сценарий сами. В интерфейсе нет ни оплаты, ни тарифов, ни формы заказа. Но без аккаунта инструмент не работает: программа события — не публичный документ.