Я провел раскопки, которые показали, что ошибка именно в мобильном приложении, поехали:
На руках у нас официальная версия, попробуем оформить еще один билет на те же даты, делая скриншот на каждом шаге. Выбираем даты, возвращение 27 февраля:
С билетом ТУДА все в порядке, он оформляется без ошибок, проблема только с ОБРАТНО, и только для ночного рейса:
Вот здесь уже начинается проблема, дата вылета внезапно становится 28 февраля в 23:45, прибытие тоже 28 но в 6 утра, прям машина времени! К сожалению, когда я покупал свои билеты, я это проморгал, и просто перешел в бронирование и оплату:
Когда мы готовы оплатить билеты, мы видим корректную дату вылета ОБРАТНО — 27 февраля. О возможных проблемах говорит только цена билета, которая внезапно снизилась по сравнению с предыдущим шагом.
Мы сейчас не будем это оплачивать, ведь все только ради эксперимента, поэтому закрываем данное окно и просто переходим в раздел «Мои бронирования», чтобы посмотреть, что именно на самом деле мы сейчас оплатим. Бронь уже сформирована и видна в списке как «UQSNTG:
И вот здесь мы внезапно обнаруживаем, что дата вылета сдвинулась на сутки! Я это обнаружил уже после оплаты, по телефону Аэрофлот был готов менять дату только с комиссией (около 2500р за билет), предложили оставить претензию на сайте. Претензию конечно оставил, прошло 4 дня без какой либо реакции, но это и не удивительно: срок рассмотрения претензий 30 дней.
Почему это вообще произошло? 27 февраля в Барселоне зимнее время, а в момент покупки билета — летнее. На одном из шагов покупки доблестные разработчики получают дополнительный час, и дата вылета прыгает на сутки (время вылета 23:45), после чего они подставляют к найденной дате время из расписания. Это также означает, что с 29 октября бага перестанет воспроизводиться, т.к. Барселона таки перейдет на зимнее время. Самый простой способ устранить ошибку, это конечно же запретить летнее время вообще, вероятно разработка Аэрофлота пойдет именно этим путем.
Ошибка воспроизводится и на другие даты, например с вылетом 30 октября. Этот вылет менее чем через 2 недели, а срок рассмотрения претензии те же 30 дней. Ошибка воспроизводится только в мобильном приложении для Android, для iOS я не тестировал, на сайте Аэрофлота покупка проходит корректно.
Для сомневающихся я записал видео с экрана моего телефона:
Для особо сомневающихся — попробуйте купить такой билет самостоятельно в своем телефоне.
Всем спасибо за внимание, я отдельно отпишу здесь о результатах рассмотрения моей претензии в Аэрофлоте.
Важный апдейт: Компания Аэрофлот сегодня вышла на связь и изменила дату вылета Обратно без штрафов. Пообещали „работать над приложением“.
Комментарии (56)
batja84
18.10.2017 13:54Вот именно поэтому не стоит делать покупки через мобильный, маленький экран, всё мелко, какие-то мелочи можно не увидеть. По итогу аэрофлот останется прав, а вы попали на 2500 рублей.
Zashibis Автор
18.10.2017 14:04В момент перед самой оплатой билета их мобильное приложение показало правильные даты, которые я выбрал изначально. Это подразумевает, что нажимая кнопку оплатить, именно эти даты я и ожидаю увидеть в билете. Но не увидел, даты поменялись совершенно неожиданно для покупателя, и Аэрофлот тут однозначно не прав.
И 6 дюймов — не такой уж и маленький :)
sergiobelya
18.10.2017 14:08Аэрофлот не прав, поскольку на разных экранах у него разные даты. Когда автор проверял (ну, допустим) подробности заказа, стояла ПРАВИЛЬНАЯ дата. Можно на это давить.
Просто программисты сайта, видимо, знают, что с таймзонами нужно ОЧЕНЬ аккуратно обращаться, а программисты аппликейшена — к сожалению, нет.
firk
18.10.2017 14:08Там дело не в экране было а в баге приложения. Хотя насчёт покупок через мобильный я всё равно согласен.
Aingis
18.10.2017 15:33ЗоЗПП с вами не согласится. Покупались билеты на одну дату, а получены на другую. Можно с чистой совестью расторгать договор (без каких-либо комиссий, само собой) и требовать неустойку за каждый день просрочки (плюс стандартный моральный ущерб).
batja84
18.10.2017 15:38Я же не говорю, что Аэрофлот прав. Естественно они должны всё возместить, т.к. явно ошибка в приложении и покупатель в этом не виноват. Но это Аэрофлот и Россия, здесь у человека нет прав, а только обязанности. Буду очень удивлён, если автору удастся выбить возврат.
С ЗоЗПП вы явно страной ошиблись.firej
18.10.2017 18:08ЗоЗПП самый человечный закон в России. И не только в России. И один из немногих, которые реально работают.
mayorovp
19.10.2017 08:54+2Современные тенденции дизайна заключаются в том, что на своем большом мониторе при разрешении 1920x1080 на большинстве сайтов видно столько же информации сколько на экране телефона.
MaxALebedev
18.10.2017 14:26Андрей, а в этом номере бронирования вы все данные ввели фейковые? А то день рождения, email и телефон выглядят уж очень правдоподобными, в отличии от номера паспорта, как и номер участника аэрофлот бонус.
Zashibis Автор
18.10.2017 14:49Все реальное я закрыл квадратиками в видео и на скринах, номер паспорта конечно же фейковый. Если я где-то не закрыл — напишите мне в личку.
unStaiL
18.10.2017 16:17Сталкивался с подобной ошибкой в сервисе FlixBus. Там в разных интерфейсах сайта время отображалось в разных часовых поясах. Что довольно опасно особенно для времени отправки. В моем случае она смещалась на час назад. А учитывая что я ожидал автобус на промежуточной станции и он задерживался я уж было подумал что он уехал час назад :) Сообщал в поддержку но спустя месяц проблему так и не исправили.
Fagot63
18.10.2017 16:26Такое выносить только на публику. Тогда косяки правят чуть ли не на следующий день. Но если косяки связаны с банковскими приложениями(или там где «косяк» вызовет серьезные финансовые/репутационные потери), то стоит подстраховаться и сделать это анонимно.
random_username
18.10.2017 18:08Ошибка с датой бронирования была несколько дней на сайте Airbnb — даты в календаре были сдвинуты относительно дней недели на один день! Я бронировал на последние выходные месяца, поэтому можно было не заметить некорректные даты.
На сайте испанских авиалиний Vueling была проблема интерфейса: селектор избранных пассажиров оставался активным после выбора пассажира на рейс, поэтому после скролла страницы вниз к оплате, менялись выбранные пассажиры — а на дальнейших шагах фамилии пассажиров не отображаются, только их кол-во — поэтому даже перепроверить перед оплатой не получилось. Таким образом я купил билеты не на свою жену, а на отца. Претензию компания никак не удовлетворила, поведения селектора не исправили, пришлось платить по-моему 50 евро за смену пассажира.
Bo_K_S
18.10.2017 18:09вообще немного странно: аэрофлот достаточно крупная компания и что бы у них там ничего не валилось дата должна храниться с нулевым смещением и локально приводиться во время запроса. сложно представить как у них там так получилось, если не допускать, конечно, наличия эпических размеров костылей в коде и архитектуре приложения.
Kalobok
18.10.2017 18:26+1Размер и известность компании влияют на качество программных продуктов чуть менее, чем никак. Неправильная дата в билете — это мелочь. Мне вот на днях одна известная страховка прислала полный пакет чужих документов с адресом, телефоном, паспортом и данными на машину. Клиент при регистрации на сайте по ошибке указал неправильный емейл (фамилии похожи). И это отнюдь не первый такой случай.
Bo_K_S
18.10.2017 18:37дело не в том, что компания большая и из-за этого там всё должно быть норм, а в том, что компания имеющая крупную сеть распределённых по миру отделений, просто должна выработать надёжный инструмент для синхронизации времени и даты.
Kalobok
18.10.2017 18:50+1Ну да, а компания, работающая с большим количеством персональных данных, просто обязана выбрать специалистов, способных обеспечить нормальную защиту этих данных. Но это только теоретически, а на практике, увы…
Bo_K_S
18.10.2017 19:14а в той страховой компании, когда регистрируешься, как подтверждается регистрация? Просто в большинстве сайтов это как раз делается при помощи электронной почты. Если страховая, который вы платите деньги и которая очень много о вас знает, регистрирует вас без подтверждения адресов, куда потом может выслать всякие документы-не-для-чужих, то я бы пересмотрел свои с этой компанией взаимоотношения (свалил нафиг). Но при этом, если при оформлении документов, нужно отдельно указывать адрес почты, куда отправлять результаты, тот тут компания не виновата, я бы тоже не стал делать проверку вводимого адреса — это исключительно ответственность клиента.
Вы полностью уверены, что документы отправляются на адрес указанный при регистрации, без подтверждения этого адреса?Kalobok
18.10.2017 19:22+1Я сам ничего не оформлял, так что не в курсе. Я знаю только, что незнакомый мне человек оформил страховку (судя по всему, на сайте), указал неправильный емейл и на этот адрес без всяких проверок были высланы все документы и одноразовый пароль для входа в кабинет. Я, кстати, потом позвонил этому клиенту (телефон-то в данных был) и объяснил, что с адресом надо быть аккуратнее.
Правильность адреса надо проверять всегда, если речь идет о закрытой информации. Клиент может ошибиться, но это не повод отправлять его данные кому попало.
PS Если интересно, можете сами попробовать, как подтверждается регистрация в этой компании — это РосГосСтрах, страна должна знать имена своих героев.Bo_K_S
18.10.2017 19:51ну как… если клиента спросили, куда отправлять, а он и сказал, то как его проверить по вашему: сравнить с адресом из регистрации и спросить, не ошибся ли он, а потом спросить не ошибся ли он подтверждая первый раз… Если бы я был разрабом в этой конторе и мне бы поставили это в вину, я бы отмазался.
ЗЫ Как раз хотел похвалить вас за отсутствие адресной антирекламы, но не успел))Kalobok
18.10.2017 20:00+1Можно придумать много разных способов. Например, дать клиенту адрес компании и предложить отправить туда запрос на документы. Или предложить зарегистрироваться на сайте и запросить документы из личного кабинета. Или, да, сначала отправить ему письмо с просьбой подтвердить адрес какой-то не слишком личной, но известной только клиенту информацией. Например, номером полиса.
Мне, если честно, трудно представить себе ситуацию, когда все оформляется только на бумаге, а документы нужно отправить на емейл, вписанный от руки. Но даже если такое случилось, адрес подтверждать нужно.
Исключением могут быть случаи, когда адрес используется только для неприватной информации (новости, скидки и т.п.), хотя и это не слишком правильно — подписывать на всякий мусор непричастного человека.
Irker
18.10.2017 21:21Маленькая компания, большая компания, известная и неизестная. А вот на мой ИНН налоговая перезаписала другого человека. Я даже случайно оплатил его налоги, а уже после заметил. Причем в ЛК были полностью все его паспортные данные, адрес и пр. На компании можно хоть как-то повлиять. А в госучереджении я исправлял последствия их ошибки больше года. Да и до сих пор не все могут исправить.
andersong
19.10.2017 11:22Заказывал как-то в СБ подробную выписку по счету за год. Через месяц почтой выписка пришла. Но не моя.
aamonster
19.10.2017 11:27Размер влияет на вероятность того, что они с этим багом уже сталкивались. Грубо говоря, приложение лучше протестировано (пользователями), чем малоизвестные.
fireSparrow
19.10.2017 13:21То, что бага появлялась у пользователей, ещё не гарантирует, что с ней сталкивались разработчики. А то обычно пользователь нарывается на какую-то багу, обращается в компанию, а там его либо вообще игнорируют или бюрократят, либо проблему разгребают в ручном режиме менеджеры или техподдержка, а разрабы о данном инциденте вообще не узнают.
aamonster
19.10.2017 13:28Мы говорим о вероятностях.
Грубый пример: пусть вероятность словить баг 1%, вероятность того, что юзер баг зарепортит — 1%, что пробьётся через бюрократию — 1% (числа с потолка). Итого вероятность прохождения всей цепочки — один на миллион. Если у компании миллионы пользователей — есть шанс, что баг будет исправлен. Если тысячи — практически нет.
Конечно, есть ещё много других вещей, влияющих на вероятность исправления, но «количество запусков» всё же очень значимо.fireSparrow
19.10.2017 14:30+1Ну тут ещё накладываются то, что большой размер компании сильно коррелирует с уровнем забюрократизированности, длинной цепочки, размазыванием ответственности и переусложнённостью процедуры создания фикса.
В маленькой компании менеджер, которому пожаловался клиент, может просто упомянуть о проблеме разработчику, столкнувшись с ним в столовой.
В большой же компании путешествие багрепорта от недовольного клиента до разработчика — это целый квест. И если процессы выстроены не очень хорошо (а так обычно и бывает), то далеко не все баги пройдут этот квест до финальных титров.
В больших компаниях, ориентированных на обслуживание большого потока клиентов, на первой линии поддержки часто сидят люди не разбирающиеся в тонкостях приложения, которых работодатель отнюдь не стимулирует тщательно вникать в каждую отдельную проблему. Их заставляют чётко отрабатывать скрипт общения и не задумываться лишний раз, дабы не тратить драгоценного рабочего времени. Поэтому если скрипт общения с клиентом прописан не очень хорошо, то многие жалобы будут либо блокироваться на этом уровне, либо неправильно маршрутизироваться.
Valle
18.10.2017 18:42Чаще всего с этим и есть проблемы что даты локально приводятся — многие телефоны тупо не обновляют базу часовых поясов по несколько лет. Правильное поведение — телефон отправляет местоположение а сервер сам вычисляет локальные даты и их присылает на клиент для отображения.
marsdenden
18.10.2017 18:09последний раз пытался пользоваться мобильным приложением Аэрофлота 2 года назад. Вижу, что за два года мало что изменилось, все равно без глюков не могут
TyVik
18.10.2017 18:10Статья «Заблуждения программистов относительно времени» будет актуальна всегда. А теперь ещё и с полом надо быть осторожным.
alxt
18.10.2017 18:22Ага. Больная тема. Недавно бился над кодом на js, который в начале октября час в сутки падал на тестах.
При том, что я JS не знаю, а начало октября- не самое очевидное время для падения- было весело. Оказалось, что прокралась автралийская таймзона- там как раз на зиму переход уже был :Dmwambanatanga
19.10.2017 10:22в начале октября… прокралась автралийская таймзона… на зиму переход
Может, на лето?alxt
19.10.2017 10:37+1Да, спасибо. На лето! Но с точки зрения той баги было без разницы- там просто брался «2 недели назад» с помощью вычитания 14*24*… милисекунд и после перевода часов час в сутки дата оказывалась не та. Билд релиза в этот час не шёл, а нужен он был срочно.
Почитал про часовые пояса в Австралии- это ж вообще трэш и угар. Мало того, что они (что логично) переводят время в противоположную (относительно Европы) сторону, так ещё у них не вся страна часы переводит, есть UTC +9:30 и (а, что вы делаете) UTC +8:45.
artskep
18.10.2017 19:27Это фигня, в телевещании в NTSC кадры в секундах "високосные". А еще веселуха, когда время перевода стрелок меняют (сидел в CNN правя баги в новом продукте, а мимо чуваки с рациями и матюками в серверную пробегают. Оказалось уже ночь, а в этот год как раз сдвинули правила перехода на летнее время)
Вобщем, после подобных вещей я апплодировал стоя закону об отмене ежегодного насилования часов. Жаль, что не везде по миру
mayorovp
19.10.2017 08:59Жаль что этот закон приняли со второй попытки, причем между попытками закончилась поддержка Windows XP
Big-Boss
18.10.2017 19:58-1Так же влетал с «Победой», только не с датами а сменой направлений перелета.
С начала думал, что невнимателен, но еще 3-е знакомых влетели так же.
Причем последнего предупреждал, что подозрительно дешевые билеты, поэтому проверялось все тщательно до момента оплаты.
Билеты покупались в разных местах, на сайте «Победы» и в авиасейлс.
Вот так…Voenniy
18.10.2017 23:13В прошлом году летели из Геленджика Победой. Выбираю дату — показывпет цену. Покупаю. Оказалось купил из Краснодара.
Если у Победы нет билетов на это число — то они подставляют ближайший аэропорт. Изза невнимательности пришлось ехать до Краснодара и оттуда уже лететь.
aamonster
19.10.2017 08:35+4Тут вы из-за бага пострадали, а представьте себе ситуацию: вылет в 2:30, а в 3:00 переводят часы назад на 1 час (дата не меняется). Вылет в первые 2:30 или во вторые?
Drakoninarius
19.10.2017 18:38вылет в 23:30 UTC
aamonster
19.10.2017 19:51Если я правильно помню, в билетах время вылета и прилёта ставится по местному.
TheGodfather
20.10.2017 10:57Ну как раз пример же привели, когда "по местному" одно и то же время встречается дважды.
aamonster
20.10.2017 11:24Не совсем — билет в посте _может_ быть корректно и однозначно выдан с датами прилёта/вылета по времени аэропортов (время и вылета, и прилёта — однозначное). Я же говорил про ещё худшую проблему — когда дважды встречающееся местное время фигурирует в самом билете. И этого нельзя избежать при текущих правилах выдачи билетов, разве что переделать их, как предложил Drakoninarius.
VitalyNasennik
19.10.2017 13:44Я как-то раз разбирался со шкалами времени… Пришёл к выводу, что в компьютере время надо учитывать в шкале TAI или TT, а к ширпотребному времени UTC (да ещё с поясами!) и обратно приводить при помощи подпрограмм конверсии из библиотеки SOFA (Standard of Fundamental Astronomy). Я, правда, немножко покурочил библиотеку, добавив автоматическое вычисление leap seconds из файла с EOP (Earth Orientation Parameters), но это уже мелочи. Это единственный, известный мне, способ корректно работать со временем.
green_tree
19.10.2017 13:51Пару месяцев назад тоже покупал билет у Аэрофлота, решил не качать мобильное приложение и воспользоваться мобильной версией сайта. На поле «Дата Рождения» нельзя выбрать год, его можно только скролить и отсчёт идёт шел с 1900 =)
И под скролить я имею в виду по месяцам…
Писал им, ничего не ответили, пришлось качать приложение для покупки билета :|
ainoneko
21.10.2017 11:19А где-нибудь вообще что-нибудь нормально сделано?
Недавно пытался купить билет на сайте «Уральских авиалиний»: сайт упорно считал меня роботом на разных этапах, предлагал капчу и после правильного ввода отсылал на начало.
Купить удалось только зайдя туда с нетбука с Виндоуз: видимо, по их мнению, Линуксом пользуются только роботы и злые хакеры.
(Пару лет назад на сайте другой авиакомпании не было https.)
firuz1844
Удалено