Какие вопросы задать менеджеру при добавлении поисковой строки на экран со списком элементов
Что проверяют
Умеете ли вы увидеть за «добавьте поиск» десяток решений, которые менеджер не описал, и выяснить их до начала работы. Здесь проверяют и технику, и умение разговаривать с продуктом. Следом часто спрашивают, как вы сделаете поиск, чтобы он не тормозил при вводе.
Как отвечать
Сгруппируйте вопросы так, чтобы каждый ответ влиял на реализацию:
- где ищем: по уже загруженному списку, по локальной базе или на сервере. От этого зависит всё остальное: фильтрация в памяти, запрос к Room (для полнотекстового поиска есть таблицы
@Fts4) или новый эндпоинт с постраничной загрузкой через Paging 3; - по каким полям и как: только название или ещё описание и теги, учитывать ли регистр, «е» и «ё», опечатки, неверную раскладку. Нужна ли подсветка совпадений;
- когда запускать поиск: на каждый символ или по кнопке, с какой минимальной длины запроса. Поиск на лету это
debounceнаFlowплюсflatMapLatest, чтобы ответ на старый запрос не перетёр новый; - связь с экраном: сочетается ли поиск с текущими фильтрами и сортировкой, в каком порядке показывать результаты;
- состояния: что показывать до ввода, при загрузке, при пустом результате, при ошибке и без сети;
- поведение: сохранять ли запрос, когда пользователь ушёл с экрана и вернулся, нужны ли история и подсказки, что делает кнопка «Назад»;
- дизайн: строка видна всегда или раскрывается из тулбара, есть ли макеты под
SearchBarиз Material 3; - сроки: можно ли выпустить первую версию с локальным поиском, а серверный сделать позже, какие события отправлять в аналитику.
Задавайте вопросы на языке продукта: не «нужен ли FTS», а «должен ли товар находиться по слову из описания».
Где спотыкаются
Молча делают фильтрацию в памяти, а через неделю выясняется, что список грузится страницами и искать нужно на сервере.
Забывают про пустой результат и ошибку, и дизайнер рисует эти состояния уже после релиза.
Спрашивают менеджера о технических деталях вроде формата JSON или алгоритма поиска. Это решает команда, а у менеджера нужно выяснить поведение, которое увидит пользователь.