В компании, где я удалённо трудился разработчиком, в те времена для управления задачами использовался Trello. Хотя, для сути истории это неважно, вместо Trello могла быть Jira, Redmine, и что там ещё бывает … Всё общение по задаче, вопросы, уточнения, надо было писать в карточке задачи.
В качестве корпоративного мессенджера тогда ещё использовлся Skype, но компания была уже достаточно большой, чтобы уместить всех в одной группе. Так что нередко невозможно было напрямую уточнить у автора задачи - "а что ты имел ввиду?". Даже узнать - кто автор задачи - иногда было сложно. Потому что карточку мог создать руководитель автора задачи. Или тех.директор, с чьих-то слов. Да! Тогда ещё не было проект-менеджеров. Да и всё равно, в компании была идеология - "обсуждение по задаче - в карточке задачи".
Конечно я изменил здесь имена, и дизайн формы тоже
Надеюсь я подготовил вас к дальнейшему звездецу. Готовы?
Часть 1. Поиск проблемы.
Открываю очередную карточку задачи. Там всего одно предложение и одна картинка:
Убрать фамилию![]()
"Обожаю" когда дают такие скриншоты. Вырезают малюсенький кусочек с какого-то места какой-то неизвестной страницы. И что мне делать с этой картинкой? Просматривать сотни страниц сайта, пролистывая каждую? Так и это не поможет - у нас есть формы, которые выглядят одинаково, но сформированы в разных местах кода, и делают разные действия. Пишу в карточке задачи:
Где эта форма? На какой странице?
Беру следующую карточку, эту откладываю. На следующий день вижу ответ в карточке:
Это в блоге
Блин! Очень помогли! На всякий случай прохожусь по блогу, тыкаю в разные статьи, пролистываю, ничего похожего на картинку из задачи не нахожу. Пишу опять вопрос:
Где именно в блоге? На главной странице блога? В какой-то из статей? В какой именно? Дайте адрес страницы.
Через какое-то время получаю ещё один бесполезный ответ:
В статье
Да блин!
В какой именно статье? Дайте адрес страницы
В любой статье
Да с...ка!!! Ещё один мой "любимый" шаблон - "на любой странице" / "хоть где" / "везде". Просто! Дайте! Адрес!!!
Для полноты картины уточню... У страницы статьи блога была куча разных настроек. В админке можно связать статью с каким-то платным курсом, которые продавались у нас (мы - образовательная организация). Или можно было связать её с бесплатным открытым занятием. Или не связывать ни с чем.
Можно было помещать формы на боковую панель, или под статью. Сама форма могла быть для подписки на рассылку. Или для записи на бесплатное занятие, связанное со статьёй. Или для записи на курс, связанный со статьёй, если набор на этот курс был ещё актуален. Или для записи на курс, связанный с открытым занятием, с которым связана статья.
Т.е. в статье блога могло быть от нуля до двух форм, расположенных в разных местах. Разные виды форм формировались в разных местах кода, а выглядеть могли одинаково. А мне тут пишут "в любой статье". Ага!
Не в любой. Вот здесь например (указываю ссылку на одну из статей) нет формы. Я не могу найти страницу, с формой со скриншота. Дайте адрес страницы.
После этого моего сообщения несколько дней была тишина. Видимо искали адрес "любой страницы блога"
И вот наконец происходит чудо - в очередном сообщении мне дают адрес страницы! Не прошло и недели! А хотя погодите ... прошло даже больше недели!
Часть 2. Делаю задачу.
Иду по ссылке, нахожу наконец форму со скриншота. Лезу в настройки статьи. Вижу что отправка формы приводит к записи на один из наших "больших" платных курсов. Нахожу место в коде, где формируется эта форма. Надо всего лишь убрать фамилию, плёвое дело, да?
Не совсем. Код, который делает запись на курс, требует обязательно фамилию. Тут я вспоминаю... Совсем недавно в организации, по каким-то "юридически - дипломным" соображениям, приняли решение требовать фамилию при записи на платный курс. Мы добавили валидацию на фамилию в код, который делает запись на курс. В формах на лендах курсов отметили фамилию как обязательное поле. А вот формы на страницах статей блога визуально не поменяли. А ведут эти формы на один обработчик.
Описываю в картоке задачи эту ситуацию с обязательной фамилией, и заканчиваю вопросом:
Точно надо убрать фамилию, и удалить валидацию на её обязательность?
Да, удаляй
Ну что-ж, подтверждение получено. Наверное, думаю, менеджеры решили что зря сделали фамилию обязательной. Удаляю валидацию, которую недавно вкручивали в кстати довольно запутанный код, который обрабатывал запись вообще на все образовательные сущности, и с течением времени стал гигантским клубком неочевидной логики. Убраю фамилию в той форме для блога. Тестирую. Деплою. Тестирую на проде. Всё норм.
Передвигаю карточку задачи в колонку с завершёнными задачами. Ура! Задача закрыта. Хеппи энд! … Или нет?
Часть 3. Антизадача
Проходит несколько дней, может неделя. Работаю спокойно, делаю разные задачи. Открываю очередную карточку задачи, и там вот такое:
Исчезла фамилия![]()
Ну думаю - исчезла и исчезла, а что нужно-то? И чёрт побери, откуда этот скриншот, про что вообще речь?
Тут я вспоминаю, что видел недавно похожую форму, вспоминаю задачу с удалением фамилии, и закрадываются подозрения. Нахожу карточку с закрытой задачей, беру оттуда адрес страницы с формой, и пишу в карточку с новой задачей:
Откуда этот скриншот? Случайно не с этой страницы: <указываю адрес>?
Да, оттуда
Алилуйа! Хорошо что я вспомнил ту задачу! Боюсь представить сколько дней мы бы опять выясняли адрес страницы с проблемой. Пишу:
Вот в этой задаче: <указываю адрес карточки с закрытой задачей> я специально удалял фамилию. Что в итоге нужно сделать в этой задаче?
Надо вернуть фамилию
Ох… Думаю - наверное менеджеры потестировали, решили что всё-таки фамилия нужна. Уточняю ещё про возврат валидации. Всё возвращаю. Тестирую, деплою, тестирую. Закрываю задачу.
Часть 4. Взрыв мозга
Проходит ещё примерно неделя, может больше. Открываю очередную карточку задачи, и вижу:
Убрать фамилию![]()
На этот раз мгновенно вспоминаю эту форму и две задачи, связанные с ней. Мозг закипает. Но может на этот раз речь идёт про другую, похожую форму?
С какой страницы этот скриншот? Отсюда указываю адрес тот злосчастной статьи?
Да
Они что, издеваются? Что у них происходит? Договориться не могут?
В этой задаче <адрес карточки первой задачи> я уже убирал фамилию. Потом пришла задача <адрес карточки второй задачи>, в которой надо было вернуть фамилию. Теперь опять её надо убрать? Определитесь уже что нужно. Мне точно надо опять убрать фамилию?
На несколько дней воцаряется тишина. И конечно это ещё не конец истории.
Часть 5. Смена парадигмы
Наконец в карточке задачи появляется новое сообщение:
В поле имени имя написано вместе с фамилией. Надо убрать фамилию
Что??? Так вот что они хотели!? Каким образом я мог догадаться? Никого не смутили мои уточняющие вопросы про валидацию? А я-то сам! Как я не заметил при тестах что фамилия вместе с именем в одно поле попадает? Развёл тут переписку на несколько недель.
Лезу в код. Да вроде нормально там. Лезу тестировать. Под залогиненным пользователем смотрю - всё норм. В поле с именем - только имя. В поле с фамилией - только фамилия. Проверю запись под неавторизованным пользователем. Тоже всё нормально сохраняется, раздельно. Пробую по всякому извратиться, но форма работает корректно. Ну, думаю, я всё-таки ещё не сошёл с ума.
Не сумел воспроизвести проблему. Имя и фамилия записываются и указываются в форме раздельно, всё работает как надо. Описываю разные сценарии, которые проверял
Опять тишина по задаче несколько дней.
Часть 6. Так вот какой ты, северный олень
Появляется новое сообщение в карточке задачи. Там скриншот:
Замечательно! Спустя несколько недель переписок мне наконец показали проблему. Лезу в базу данных, и точно - конкретно у этого одного пользователя каким-то образом в поле с именем записались имя-фамилия. И сама эта форма не при чём. Для этого пользователя та-же самая картина и в других формах с именем, на других страницах.
Т.е. тут вообще не нужна была задача для разработчиков. Можно было зайти в админку, исправить имя человека, и указать фамилию.
Мораль сей басни такова
В описанной ситуации менеджер увидел проблему. И видимо неосознанно предположил, что эта проблема есть у всех людей. На всех формах. На любых страницах блога. И вместо описания требуемого результата, указал что надо сделать по его мнению. Причём указал некорректно.
Описывайте проблему максимально просто - "захожу сюда, делаю это, вижу вот это, а хочу вот это". Не делайте обобщений.