Проверка соответствия адреса указанному почтовому индексу до оформления заказа
Несовпадение почтового индекса и города в форме заказа выглядит мелкой опечаткой, пока не превращается в доставку совсем в другую часть страны.
В инструменте для совместной работы удалённых команд было поле профиля для часового пояса, которое почти никто не заполнял правильно: при регистрации нужно было вручную выбрать свой часовой пояс из длинного выпадающего списка, а этот шаг легко пропустить или выполнить неверно, особенно если человек только что переехал или путешествовал, когда создавал аккаунт. В результате справочник команды был полон устаревших или отсутствующих данных о часовых поясах, которым никто не доверял настолько, чтобы реально опираться на них, решая, писать ли коллеге.
Компания заменила ручное поле автоматическим. Вместо того чтобы просить пользователя выбрать часовой пояс, приложение определяло его напрямую по соединению, с которого пришёл запрос. /v1/ip при входе получал IP-адрес пользователя и возвращал страну и координаты, а эти координаты передавались в /v1/timezone, который возвращал название часового пояса IANA для этого места. Данные поддерживались в актуальном состоянии за счёт периодического повторного определения, а не фиксировались по тому местоположению, где пользователь случайно оказался в тот единственный раз, когда заполнял форму.
Видимым результатом в продукте стало небольшое дополнение к профилю каждого участника команды: индикатор страны и текущее местное время, обновляющиеся автоматически, рядом с именем в справочнике команды и в любой личной переписке. Коллега, решающий, отправить ли сообщение сейчас или подождать до утра, мог с первого взгляда увидеть, подходящее ли сейчас время там, где находится собеседник, не вспоминая, в какой стране тот живёт, и не считая разницу во времени самостоятельно.
Компания оставила возможность настройки, а не сделала функцию полностью автоматической и неизменяемой, поскольку иногда пользователю действительно нужно было переопределить определённое местоположение: например, человек временно работал из другой страны, чем обычно, и предпочитал, чтобы профиль показывал его обычный часовой пояс, а не то место, откуда он сейчас подключался. Автоматическое определение задавало разумное значение по умолчанию, которое само обновлялось в обычном случае, а ручное переопределение оставалось доступным для исключений.
С точки зрения инженерных усилий это была действительно небольшая функция, по сути два последовательных запроса при входе и небольшое изменение отображения в справочнике команды, но она устранила препятствие, которое годами незаметно отнимало у команды понемногу времени на координацию: ту постоянную мелкую цену незнания, удобно ли сейчас связаться с человеком, не спрашивая заранее и не гадая.
Объём зависел от сессий входа, а не от каждого отдельного сообщения или просмотра страницы, поскольку данные о местоположении и часовом поясе обновлялись периодически, а не при каждом запросе. Благодаря этому нагрузка оставалась намного ниже бесплатного дневного лимита даже для инструмента совместной работы с действительно большой базой пользователей, входящих в систему в течение всего дня.
Такие небольшие незаметные настройки по умолчанию в сумме обычно значат больше, чем любая отдельная эффектная функция, поскольку они убирают крошечное препятствие из того, что происходит постоянно, а не решают проблему, которая возникает лишь изредка. Документация по обоим эндпоинтам находится на /docs/ipv4-lookup/ и /docs/timezone-lookup/.