Антон
Анфиса, что-то мне страшно: я приду на работу, а там ничего не понятно, что как делать.
Анфиса
Так бывает.
Антон
Ну спасибо, утешила!
Анфиса
Хочешь знать, что делать в таких случаях?
Антон
ГОУ
Анфиса
Ответь на вопрос: «Что должно получиться в результате?». Не бросайся сразу выполнять задачу, разберись, что делать, а не как делать.
Антон
А что тут может пойти не так?
Анфиса
Задача может быть сформулирована не полностью или неправильно понята. Уточни, что будет наилучшим результатом выполнения задачи. И запиши свои идеи: буквы конкретнее мыслей.
Антон
Готово. Получилось на два листа.
Анфиса
Нет, так не пойдёт. Выбрасывай, начнём с начала. Сформулируй задачу в одном или двух предложениях. Это непросто. Если не получается — раздели задачу на несколько.
Антон
Ничего не понимаю. Давай пример.
Анфиса
К разработчику приходит тимлидер и рассказывает:
Мы обновили код проекта, но пользователи видят старую версию: их браузеры закешировали старый код. Техподдержку рвут на части звонками, и они каждому объясняют, как почистить кеш. Нужно решить эту проблему!
Антон
Что же мне, бежать в поддержку и вместе с ними отвечать на звонки? Или отключить телефоны?
Анфиса
Реши, что нужно сделать. Твоя задача — проблема с кешированием. Сформулируй её.
Антон
Если вручную обновить файлы в CDN — наверное, это снизит количество звонков в колл-центр. Браузер видит, что запрашиваются файлы, которые уже скачаны, поэтому он берёт их не из сети, а из локального хранилища, и в связи с этим начинаются проблемы и конфликты, ведь с сервера приходит код, который ожидает обновлённые, а не закешированные файлы, значит, нужно добавить уникальные ID для обновляемых файлов, потому что обзвонить всех клиентов и объяснить им, как чистить кеш, мы не можем. Но проблема не решится, пока не обновятся приложения в App Store и Google Play.
Анфиса
Это не похоже на формулировку задачи: с таким алгоритмом даже квантовый компьютер не справится. Попробуй ещё раз: опиши задачу в одном или двух предложениях, при необходимости разбей её на несколько отдельных задач.
Антон
Добавлять к именам файлов уникальный идентификатор, чтобы при обновлении файлов браузер скачивал их, а не брал из кеша.
Отправить сообщение об обновлении в CDN.
Обновить приложения в App Store и Google Play.
Анфиса
Тест на простоту пройден, так гораздо лучше!
Антон
Ура! Формулировать задачи умею. Что дальше теперь?
Анфиса
Определи, какую существующую проблему реального мира ты пытаешься решить.
Антон
Делаешь-делаешь, а кому это нужно? С задачей про кеш разобрались: там нужно было помочь клиентам. Но будут другие задачи и другие «зачем это делать?»
Анфиса
Не стесняйся каждый раз разбираться, зачем ты это делаешь. Так ты лучше поймёшь продукт, и качество твоей работы возрастёт.
Антон
Но делать-то всё равно надо, так что можно и безо всяких «зачем»!
Анфиса
Если ты поймёшь «зачем делать» — то сможешь осознанно выбрать лучший вариант среди возможных «как сделать» и заодно избежишь пустой траты времени и сил.
Тимлид написал тебе: «Срочно исправь на сайте ошибку 404 при логине, пользователи жалуются!»
4 из 4 правильно и 0 неправильно
Антон
Но в чём вопрос? Ведь тут всё правильно!
Анфиса
Каждый из ответов может оказаться правильным. Но правильный ответ — лишь один. И чтобы не попасть в неудобную ситуацию, спрашивай и уточняй все аспекты задачи, не бойся этого. Твой тимлидер мог просто забыть или не успеть детализировать задание.