← Все статьи

Блог

4 мин чтения

Планирование через часовые пояса, не теряя никого в арифметике

Кто-то в Лиссабоне, кто-то в Тбилиси, кто-то на Бали. Каждый инструмент планирования обещает с этим справиться, и большинство справляется, заставляя одного человека считать вручную. Что идёт не так на самом деле и как комната должна вести себя вместо этого.

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

Большинство провалов не экзотичны. Это одни и те же три ошибки, снова и снова.

Ошибка первая: организатор считает вручную

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

Лечение — никто никогда не переводит вручную. Инструмент рисует сетку в поясе комнаты, и каждый участник переключает её на свой одним элементом управления. Что он закрасил — то и имел в виду; что видит организатор — та же картина, прочитанная по часам организатора.

Ошибка вторая: усреднить день до нуля

У комнаты между Лиссабоном и Бали восемь часов разницы. «Хороший» слот для группы, если считать его как среднее по людям, — тот, где лиссабонцам слегка неудобно и балийцам слегка неудобно. Это звучит справедливо и бесполезно: никто не в лучшей форме, а тот, для кого «слегка» значит 23:00, перестанет приходить.

Лучшее правило — то, которым пользуется каждая комната встречи в Compromise: оценка человека для кандидата — его самый низкий уровень на протяжении интервала, никогда не среднее, а оценка группы для этого времени строится из этих минимумов. Слот, который идеален для Лиссабона и недоступен для Бали, просто не кандидат. Присутствовать на большей части встречи — не значит присутствовать на ней, а слот в 23:00, который кто-то пометил «лучше не надо», честно показывается именно так, рядом с его именем, а не усредняется в число, которое выглядит нормально.

Ошибка третья: переход на летнее время

Эта ломает инструменты бесшумно. Два города, между которыми два часа в марте, в апреле могут оказаться в часе друг от друга, потому что один перевёл часы, а другой нет. Сетка, которая хранит доступность как моменты времени — 14:00 UTC такого-то числа — и показывает их в местном времени, покажет, как «каждый вторник в три», которое человек закрасил, полгода сползает на четыре.

Дизайн, который этого избегает, немного контринтуитивен: хранить сетку в настенном времени пояса комнаты и вообще не хранить моменты. «Вторник, 15:00–16:00 по времени комнаты» — одна и та же ячейка в каждый вторник, по построению, что бы ни делали часы. Пересчёт в пояс участника делается, когда сетка отображается, ячейка за ячейкой, в его браузере, с использованием знаний его собственной системы об обоих поясах — а поскольку день комнаты может содержать перевод часов внутри себя, пересчёт делается кусочно, а не одним смещением на день.

Именно так комната встречи в Compromise хранит доступность. Сервер никогда не разрешает часовой пояс; он держит имя пояса как непрозрачную метку, и каждый пересчёт происходит на устройстве самого участника. Это чуть сложнее построить и гораздо сложнее сломать.

Что видит участник

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

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

Что видит организатор

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

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

Как настроить

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

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

Попробуйте на настоящем решении.

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

Читайте также