Pull to refresh

Comments 38

UFO just landed and posted this here
UFO just landed and posted this here
Думаю проблема глубже, чем просто передвинуть расписание на час. Допустим, у кого-то в 18:00 заканчивается рабочий день и максимум через час он дома. В 19:00 у него урок. Тут робот меняет расписание и занятие передвигается на 18:00. Недовольный клиент звонит/пишет и просит сделать как было, а это невозможно, потому что на это время занятие у другого студента, у которого время не менялось и ему удобно только в это время. А минусуют, подозреваю, за то, что человек не понимая специфики и сути проблемы, даёт совет.
UFO just landed and posted this here
У нас база школы написана в Excel с помощью макросов и расписание привязано к МСК. То есть мы время всех учеников и учителей сверяем по Москве.
Целью данного поста как раз является просмотр комментариев в поисках каких то советов для оптимизации работы операторов
UFO just landed and posted this here
Пока смотрели только базу GetCourse, но по некоторым причинам их база нам не подходит. А другие системы не знаю
А вот можно ли написать программу, которая будет предлагать оптимальные варианты для смены расписания, и какие параметры надо туда забить, например, у кого то жесткий график, а у кого то «гнойные» некоммуникабельные родители :)
Написать-то можно. Только с данными, пожалуйста, не обращайтесь так вольготно. Не уверен, что вам люди давали согласие на то, что вы их имена и локации засветили.

Также резанули моменты про «штат Саскачеван» (провинция) и про преподавателя «Брайна».

Вы говорите так, как будто смена летнего времени на зимнее происходит внезапно.
На мой взгляд это вполне поддается планированию в духе "через две недели у Мориса время поменяется на зимнее и его доступность по UTC будет выглядеть вот так: {таблица}, при этом у его студента из Антарктиды занятие будет вытеснено из графика"

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

Дело не в том, что это сюрприз для людей. Судя по описанию, смена зимнего времени на летнее — сюрприз еще и для организации.

Расписание корректируется каждый день, так как учителя и ученики круглосуточно появляются и исчезают, женятся, разводятся, меняют тайм зоны, работу и доступность.
UFO just landed and posted this here
Пока да, так как это каждый случай индивидуален и стараемся сделать так, чтобы было удобно каждому. Например, преимущество всегда отдаем работающим взрослым, так как их работа в приоритете, а детей двигаем первыми, но с учетом того, что они вечером устают. С годами дети растут и чем старше становятся, тем на более позднее время их сдвигаем :)
Допустим, программа может делать авто-рассылку заранее и требовать изменить/принять новое расписание, а не постфактум.
Да давно поотменять это все и привязаться к одному времени(гринвич например).
А местные если хотят, могут менять обеденные таблички хоть на 17:30, хоть на 04:12.
Совершенно поддерживаю, если сказал позвоню в 5 часов — значит это будет 5 и в Москве и в Молдове и в Швеции и в США.
я начинаю работу в 4.00, а в США в 16.00… да вначале прийдется сложно; как это начинать не в 8.00 но перейдут, мне кажется люди от этого только выиграют, так как не будут завязаны на окульные 8.00

А так очень заметно когда из нового года звонишь в старый и передаешь эстафету: Москва -> Кишинев -> Мальмо -> Флорида.
Кроме этого, за годы работы мы узнали, что есть страны, где разница с Москвой кратна не часу, а получасу, это Индия +2,5 и Иран +1.5

Непал — +2:45, чтоб ваш мир более не был прежним )

Есть очень просто решение — согласовывать все занятия по времени территории, ближайшей к преподавателю, где никогда не переводят время.
Так учителю и студенту и скажем — отныне ты ходишь на работу/на пары не по местному времени, а по времени соседней страны, потому что нашей скайп-школе так удобнее. /sarcazm off. Выше и в статье объяснили же — проблемы не в циферках, проблемы в наложении на другие активности преподавателя и студента, которые привязаны к местному времени. Если хоть у кого-то из двоих они не жесткие — хорошо, можно его подвинуть, если жестко — нужно менять преподавателя, что всем неудобно.

Зимнее время в Австралии начнется только 7 апреля

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

Хотелось бы чуть больше исходных данных:
1) Студенты бронируют занятия на месяц, семестр или год? Иными словами на какой период студента надо встроить в расписание?
2) В каком формате студенты присылают свою доступность?
3) Есть ли числитель/знаменатель или другие способы иметь различное время занятий студенту у одного преподавателя на двух разных неделях?
4) Нужно ли учитывать выходные и праздники?
5) Может ли студент пропустить часть занятий? (Например пару недель на каникулах)
Ну какие-то другие существующие требования.

Хотелось бы побольше поразмышлять над этим.
Буду очень благодарна за такой brainstorming
1. Студенты бронируют уроки на любое время.
Чаще всего на постоянное расписание, например, 2 раза в неделю, вторник-четверг 18.00. Более редкий вариант, когда график 2 через 2, тогда вставляем студента в свободные окна
Третий вариант, когда кому то надо усилить подготовку к экзамену или Job interview -предполагаются занятия каждый день.
Экзотические случаи: урок один раз в 2 недели или срочный однократный урок перед каким то выступлением.
Если студент оплачивает один урок, то предварительно ставим его в расписание на постоянное время, но если за день до часа X, оплата не поступает, то спрашиваем про планы на продолжение. Если студент оплачивает блок из 10 уроков, то спрашиваем про планы на продолжение в конце этого оплаченного блока.
Расписание на следующий день формируем вечером текущего дня, учитывая все сообщения об изменениях за день.
У нас 500 учеников и 75 учителей, каждый день кто то из них заболевает, женится, разводится, уходит в отпуск, меняет тайм зону или работу, попадает в ДТП, заливает соседей и т.д.
2. Студенты присылают свою доступность в виде сообщения, например: «В режиме раз в неделю, например, в субботу во второй половине дня или в понедельник во второй половине дня (после 16 по Марокко ) „
3. Есть возможность поставить студента в разное время, если у преподавателя имеется свободный слот. Для этого присылаем студенты доступность преподавателя по запросу
4. Преподаватели и студенты имеют разные веры и, соответственно, разные праздники. Обычно они сообщают, что в такой то день они недоступны.
Но, у нас есть общая информация о том, что
преподаватели арабского не работают в пятницу,
преподаватели иврита в субботу (а суббота у них начинается вечером в пятницу каждый день по разному, в связи с заходом солнца),
англичане обычно не работают в воскресенье -ходят на службу,
преподаватель фарси празднует Навруз, иранский новый год в апреле,
преподаватели китайского не работают во время празднования китайского нового года в феврале,
католики и иже с ними начинают уходить на рождественские каникулы в конце декабря, свидетели Иеговы (это обычно американцы, у нас, по крайней мере), не празднуют никакие традиционные праздники и работают как 25 декабря, так и 1 января.
У российских студентов традиционный спад с 31 декабря до 14 января (русский старый новый год, который уже стал притчей во языцех и с 1 по 10 мая).
Для остальных школа работает круглосуточно без выходных.
5. Время для студента в расписании преподавателя сохраняется на 2 недели, если студент отдыхает, но только в том случае, если он имеет оплату на счету.
Но, обычно мы используем это время для доп занятий у других, например, другой студент хотел 3 раза в неделю заниматься с этим преподавателем, а у него было только 2 свободных “окна». В случае, когда время освобождается, мы немедленно сообщаем об этом и они могут сделать интенсив на время каникул первого. Так же это время используем для тестовых бесплатных уроков.
Мы стараемся, чтобы преподавателю было интересно с нами работать и не упускаем шанса занять ему это время кем то еще.

На входе у вас такие данные: Учитель\ученик, обязанные указывать текущий город проживания, город проживания располагается на территории одной единственной таймзоны (TZ). Время в этой таймзоне регулируется государством (или иным органом власти).
Но эта интернет-проблема уже имеет решение — в интернете выпускаются актуальные базы таймзон: tzdatabase, iana.org.
Вторая проблема: Ваш пользователь в своем профиле должен указывать таймзону от которой он зависит (руководствуется в реальной жизни, может например он проживает в деревне на краю своей таймзоны, а работать ездит в соседний город где другая таймзона. Или работает в одной таймзоне, а спать ложится в другой). Так как по машему описанию вы стремитесь угодить всем — такую проблему вам стоит предусмотреть.
Третья проблема: Вы не хотите что бы пользователь утруждал себя задачей определения своей таймзоны — вы хотите предлагать ему только указывать комплект «город, страну», а еще лучше «город, область(край, округ), страну», потому что даже в одном государстве существуют два города с одним названием, например Херсонка, Полтавка. И при выборе что бы всплывала подсказка что он в такой то таймзоне. Например, (бразильская таймзона -3 часа от всемирного координированного времени)
BR UTC-3 у вас время 3:65, время летнее, переходить на зимнее будете 4 зимваря следующего года, пожалуйста проверьте правильность.
Где и кто эту инфу будет вводить — вопрос спорный, ведь в итоге нужно что что бы клиент удостоверился что таймзона верная, но однозначно понятно что существуют программы, использующие не системное время локального компьютера, а актуальные базы таймзон третьих лиц из интернета совместно с всемирным координированным временем Вы упомянули MS Excel. Не знаю какие макросы вы писали, но уверен что они не обновляют инфу по TZ если вдруг у какого то государства левая пятка зачесалась.
Кстати, пятки у них чешутся не вдруг, обычно за месяц а то и полгода до оффициального почесывания — выпускают газету левой пятки. Челяди времени подготовиться обычно хватает, а с tzdatabase и другими базами — вообще не чешутся.
Четвертое замечание: На вас пожаловались что вы прислали письмо ночью — вы можете дополнить профиль пользователя полем для заполнения часов в которые он готов получать входящие сообщения, в том числе письма, смс, пуш-уведомления, голубей и сов.
Мне казалось, что стандартные программы для многопользовательских календарей, да хотя бы Google Calendar, позволяют указывать часовой пояс при задании времени. Если же на этот календарь потом смотрит человек из другого часового пояса, то он видит точно рассчитанные часы для своего времени. Ведь интернациональные корпорации сталкиваются с очень похожей проблемой: как организовать созвоны людей из разных стран и часовых поясов — и для этого они пользуются такими календарями.

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

Например, учитель Патрик (в Канаде)
У него в расписании 3 студента, один из России — Ярослав, второй из Германии-Никита. третий из Израиля -Алон

Они изначально стоят по времени МСК с октября по февраль:
в 18. 00 Ярослав (РФ) 10 утра в Канаде
в 19. 00 Никита (Германия ) 17.00 по Германии 11 утра в Канаде
в 20.00 Алон (Израиль) 19.00 по Израилю Полдень в Канаде

10 марта Торонто переходит на летнее время

Чтобы сохранить для Патрика привычный график делаем первую перестановку:

Переставляем
Ярослава на 17.00 MСК, чтобы у Патрика по прежнему было 10 утра
Никиту на 18.00 МСК, 16.00 по Германии, 11 утра в Канаде
Алона на 19.00 МСК 18. 00 по Израилю 12.00 в Канаде

Вторая перестановка: пятница 29 марта, изменение времени в Израиле, и Алону надо сохранить его время
Меняем местами Никиту и Алона (на один урок)
Все это нужно согласовывать с родителями.

Третья перестановка 31 марта. Меняется время в Европе:
Переставляем Никиту на 17.00, 16.00 по Германии, как и было изначально
Алона на 18.00 МСК = 18.00 по Израилю
Ярослава переставляем на 19.00 МСК
И так до они будут стоять до 3 ноября, пока время в Канаде не изменится на зимнее, при условии, что ученики могут менять доступность с изначального времени.
Если же они не могут менять это время, то придется сдвигать кого то более гибкого.
Или менять день или учителя.

Я понимаю организационные сложности, и не вижу для них решения.

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

Вы рассказали историю технических проблем с часовыми поясами, а я рассказал историю успеха в решении аналогичных проблем, и предложил использовать ту же методику.
Спасибо за статью! Я не буду предлагать никаких решений, просто вкратце расскажу про похожую проблему моего болота. Итак, привет из области управления воздушным движением! Есть три основных субъекта: диспетчерские службы (плюс международные регуляторы типа IATA, ICAO, Eurocontrol), экипажи самолётов и авиакомпании (наземные службы, аэропорт). Так как авиакомпании и сам аэропорт работают с пассажирами, то они, как правило, используют локальное время. Если полёты круглосуточные, то в ночь, когда время переводится, возникают интересные моменты. Например, борт может начать руление в 02:00 локального времени, 15 минут рулить и взлететь чуть позже, например в 01:15 (это когда время назад переводят). Ни пилоты, ни диспетчера проблем с этим не имеют, так как у них на всех дисплеях и документах UTC, а не локальное. То есть диспетчерские службы используют только UTC. Весь обмен данными между диспетчерскими службами и экипажами также в UTC. Поэтому в ПО для диспетчерских служб мы никакой конвертации времени не делаем, даже на серверах часовая зона — всегда UTC. ПО для аэропортов внутри также использует UTC, но там, где в него поступают данные (от других систем, или пользователь что-то вводит ручками) и где пользователю что-то показывается, вот именно там и происходит преобразование к локальному времени. То есть в сам момент перевода стрелок ядро такой системы продолжает работать в реальном времени (UTC), а вот у пользователя на экране время вдруг перескакивает на час назад или вперёд. Вот так и живём :)
Вот в таком стиле и надо писать было две другие статьи.
поддержу комментарий выше про «внутреннее время в UTC» (работал в большой медицинской компании, у которой пациенты, лаборатории и органы для трансплантаций — в разных странах и часовых поясах, так что внутри у нас все время тоже хранилось в UTC).

Из потенциальных решений могу только предложить «путешествие в будущее» — т.е. виртуально перевести дату например на неделю вперед и проверить — какие у кого смещения. От потопов и болезней любимой тети это не спасет, но предупредить о лунном новом годе и наврузе с пасхой (а также переводах стрелок) — очень даже.
Может перед сменой спрашивать у студентов, в какое время им удобно, и потом вбивать эти данные в программу для автоматического планирования? Можно сделать 3 градации: «Самое хорошее время», «удобное время», «не очень удобно, но терпимо» (без смены преподавателя). Например, люди отмечают мышкой самое удобное с 18 до 19, просто удобное с 17 до 18 и с 19 до 21 и менее удобное с 21 до 23. Если все варианты не проходят, идёт смена преподавателя. Но программа постарается распределить так, чтобы смен и менее удобных времён было как можно меньше. Также пользователю необязательно указывать менее удобное время, если он готов сменить преподавателя.
Sign up to leave a comment.

Articles