Вчера со мной произошла забавная ситуация. На одном из проектов меня попросили добавить REST API метод. Ничтоже сумнящеся я нафигачил его, отдал фронтенд разработчикам сигнатуру и пошел заниматься своими делами.

Через некоторое время мне пишет в личку разработчик, который пилит свою функциональность на базе моего API, говорит “не работает” и прикладывает скриншот из постмана где написано 404. Я быстро смотрю и вижу что там неверный хост, указываю на это. Разработчик исправляет и опять показывает 404. Я смотрю что там уже неверно прописан путь к ресурсу и говорю уже об этом. Он опять присылает скриншот постмана где опять 404, но уже на метод OPTIONS. Я этого не замечаю, даю ему полный урл еще раз и говорю “пробуй”, он тут уже мне говорит что дело в CORS, но так как я сфокусировался на 404, то почему-то продолжал думать что дело в неверном урле или неверном хосте и слал собеседнику курлы и скриншоты своего постмана где все работает.

Так мы тупили полчаса пока я не сообразил что в чем дело и не обратил внимание на то, что именно мне пытались донести.

Такие ситуации встречались и постоянно встречаются я думаю у каждого. Гораздо проще пойти к нужному тебе человеку в личку и сказать “вот, не работает” и приложить скриншот с ошибкой. Так все привыкли работать. Мне такой подход не нравится—во-первых, синхронное общение (даже если прямо сейчас нет времени) предполагает быстроту ответов и не дает включаться Системе 2 по Канеману, и детально вникнуть в проблему, во-вторых знание, полученное в результате общения остается в чате и недоступно для остальных. Если завтра ко мне придет другой разработчик с похожей проблемой, то нам придется повторять всю итерацию.

Какое может быть решение? Конечно же, заводить тикеты!

  • создание тикета предполагает какой-то предварительный труд, потому что нужно нормально описать проблему и шаги воспроизведения. У меня часто оказывается так, что во время подготовки я более тщательно смотрю на все и исправляю ошибку без тикета. Просто включил больше внимательности и всё.
  • для исполнителя будет гораздо более полезно когда ему дадут контекст и конкретные шаги, а не просто скинут скриншот “не работает”, и он не будет делать работу по расшифровке сообщений а будет работать уже с подготовленными данными
  • история сообщений останется доступной для поиска. Готов поспорить, у вас были ситуации, когда решение вы находили в закрытом тикете на гитхабе? Кто-то написал проблему, другой написал +1, третий предложил воркэраунд, четвертый подтвердил что он работает, пятый поблагодарил третьего и эта информация остается актуальной годами. А теперь представьте что человек бы вместо тикета писал бы в личку автору? Глупо? Безусловно! Но это то, чем мы занимаемся каждый день.

Все команды, в которых я работал, были завязаны на синхронный метод работы и adhoc решение проблем. Даже там, где я пробовал внедрить культуру асинхронного общения через тикеты, это не получалось совершенно. Люди сопротивляются, не хотят думать, не хотят включать Систему 2, вместо этого предпочитая кидать стектрейсы и ошибки в чаты.

И это печально.