От 996 к эффективной работе: Путь трансформации фокуса программиста
В октябре прошлого года меня чуть не уволили.
Не из-за недостатка технических навыков — у меня 8 лет опыта разработки на Java, и мой дизайн архитектуры солидный. Проблема была в том, что я никогда не мог закончить задачи вовремя. Я приходил в офис в 9 утра и уходил в 11 вечера, но мое действительно продуктивное рабочее время было, вероятно, меньше 3 часов.
В день, когда мой начальник говорил со мной, я помню это отчетливо: "Ты работаешь усердно, но твоя эффективность слишком низкая."
Той ночью в метро я наткнулся на статью об эффекте Струпа. Автор сказал, что внимание как мышца — его можно тренировать. Я подумал, может быть, стоит попробовать что угодно в этот момент.
В чем была моя проблема?
Позже я понял, что я не был ленивым — мое внимание было вне контроля.
Типичный день выглядел так: Открываю IDE, чтобы написать код, вижу сообщение в DingTalk, кликаю, чтобы ответить. После ответа вспоминаю, что вчерашний баг все еще нужно проверить, открываю JIRA. На полпути через чтение менеджер продукта приходит спросить о требованиях. После разговора уже 11 утра, и я не написал ни одной строки реального кода.
Звучит знакомо?
Я провел эксперимент, используя технику Помодоро, чтобы отследить, сколько раз меня прерывали за день. Результат шокировал меня: в среднем прерывание каждые 8 минут. И исследования показывают, что после прерывания программистам нужно в среднем 23 минуты, чтобы вернуться в состояние потока.
Неудивительно, что я никогда ничего не заканчивал — я никогда по-настоящему не "начинал."
Неожиданное открытие
Просто чтобы попробовать, я начал делать 10 минут тестирования Струпа каждое утро.
На первом тесте мое время реакции было 1,8 секунды с 22% ошибок. Сайт показал, что это уровень "сильно рассеянного внимания". Честно говоря, это был удар.
Но после того, как я придерживался этого неделю, произошло что-то волшебное.
В ту пятницу мне нужно было исправить сложный баг с конкурентностью. Раньше такая проблема заняла бы как минимум два дня, и я часто исправлял одно, только чтобы сломать другое. Но в тот день я писал код три часа подряд, не проверяя телефон ни разу. К 4 вечера баг был исправлен, и все тесты прошли.
Мой коллега Сяо Чжан сказал: "Цян-гэ, у тебя сегодня хорошая форма."
Я сам не мог в это поверить.
Трехмесячный план трансформации
Ободренный, я разработал систематический план тренировок. Не из серии "21 день изменит твою жизнь" мотивационной ерунды, а методы, основанные на когнитивной науке.
Месяц первый: Строительство фундамента
Каждое утро в 8:30 я делал 5 минут тестирования Струпа за своим столом. Сначала коллеги думали, что я сошел с ума, глядя на экран и говоря "красный, синий, зеленый."
Но эффект был очевидным. На первой неделе мое среднее время реакции снизилось с 1,8 до 1,5 секунды. Что более важно, я обнаружил, что 1-2 часа после теста были моими самыми сфокусированными часами дня.
Поэтому я скорректировал свой рабочий график, помещая самые сложные задачи между 9 и 11 утра. В это время я отключал все уведомления и переводил телефон в режим полета.
Однажды менеджер продукта пришел искать меня в 10 утра, увидел, что я в наушниках с шумоподавлением пишу код, и тихо ушел. Позже она сказала: "Ты выглядел таким сосредоточенным, я не хотела тебя беспокоить."
Месяц второй: Повышение тренировки
Просто делать тесты Струпа было недостаточно. Я начал пробовать "тренировку когнитивной нагрузки."
Что это значит? Намеренно работать в отвлекающей среде. Например, я писал код в кофейне или делал обзоры кода с включенной музыкой. Сначала было больно, но постепенно я обнаружил, что моя устойчивость к отвлечениям укрепилась.
Однажды днем в среду соседняя команда вела жаркую техническую дискуссию, очень громко. Старый я определенно не смог бы писать код, но в тот день я на самом деле закончил весь платежный модуль и даже рефакторил некоторый ранее беспорядочный код.
Я также открыл технику: использование разных языков программирования для разных типов задач. Java для бизнес-логики, Python для обработки данных, Go для конкурентности. Это переключение само по себе является своего рода когнитивной тренировкой, поддерживающей гибкость мозга.
Месяц третий: Формирование системы
К этому моменту мои результаты теста Струпа стабилизировались около 0,9 секунды с процентом ошибок ниже 5%. Но большее достижение заключалось в том, что я нашел свой собственный рабочий ритм.
Я разделил свой день на четыре временных блока:
Утро 9-11: Глубокая работа, написание основного кода Позднее утро 11-12: Обработка писем и сообщений День 2-4: Обзоры кода и парное программирование День 4-6: Изучение новых технологий или написание документов
Между каждым временным блоком я делал 2 минуты "когнитивного сброса" — может быть, несколько задач Струпа или простую медитацию.
Самое удивительное, что мне больше не нужно было работать сверхурочно. Функции, которые раньше требовали всенощных работ, я мог теперь закончить к полудню.
Некоторые практические советы
За эти три месяца я обобщил некоторые техники внимания, специфичные для программистов:
Метод двух мониторов: Основной экран для написания кода, вторичный экран только для документов. Никогда не открывайте программное обеспечение для чата на вторичном экране. Это уменьшает отвлечение как минимум на 50%.
Тренировка во время компиляции: Пока код компилируется, не листайте телефон — сделайте 10 задач теста Струпа. Ни времени не тратится, ни фокус не нарушается.
Метод фокуса отладки: Перед отладкой сделайте 30 секунд глубоких вдохов, затем напишите описание проблемы за один раз. Это помогает прояснить мышление и избежать случайных изменений.
Интервальный сброс при обзоре: Обзоры кода потребляют внимание. После обзора каждого PR встаньте и походите 2 минуты или посмотрите в окно. Мозгу нужны эти краткие моменты отключения.
Неожиданные выгоды
Улучшенный фокус принес больше, чем просто эффективность работы.
Я начал иметь время для упражнений. Ухожу в 6 вечера каждый день, иду в тренажерный зал компании внизу, чтобы побегать. Потерял 8 кг за три месяца, ментальное состояние намного лучше, чем раньше.
Я возобновил написание технических блогов. Раньше всегда говорил, что нет времени, теперь могу писать 1-2 поста в неделю. Статья о конкурентности Golang в прошлом месяце даже попала в горячий список Juejin.
Самое важное, я заново открыл радость кодирования. Когда вы можете сосредоточиться на решении проблем, это состояние потока действительно вызывает привыкание.
В прошлую пятницу я рефакторил весь модуль аутентификации за один раз, сократив код на 40% и улучшив производительность в 3 раза. CTO сказал в обзоре кода: "Это самая элегантная реализация, которую я видел."
Мой совет вам
Если у вас похожие проблемы, мой совет:
- Сначала проверьте свой базовый уровень. Неважно, насколько плохо, это просто отправная точка.
- Начните с 5 минут в день. Не будьте жадными, постоянство — ключ.
- Найдите свой золотой час. Я — утренний человек, вы можете быть совой.
- Создайте ритуалы. Я варю кофе перед началом глубокой работы — это сигнал моему мозгу.
- Отслеживайте прогресс. Я использую Excel для записи ежедневных результатов теста и результатов работы. Видеть кривую прогресса очень приятно.
Трехмесячный обзор
Вчера исполнилось ровно три месяца с тех пор, как я начал тренировки. Я сравнил данные:
Октябрь (до тренировки):
- Среднее ежедневное продуктивное рабочее время: 2,8 часа
- Завершенные story points: 13
- Процент багов: 8,2%
- Дни сверхурочной работы: 22
Январь (после тренировки):
- Среднее ежедневное продуктивное рабочее время: 5,5 часов
- Завершенные story points: 31
- Процент багов: 2,1%
- Дни сверхурочной работы: 2
На обзоре производительности в конце года я перешел с рейтинга C на A. Не только удвоился мой бонус в конце года, я получил возможность повышения.
Но для меня более важно улучшение качества жизни. У меня есть время смотреть фильмы с девушкой, могу ходить в походы по выходным, могу спать спокойно ночью вместо того, чтобы беспокоиться о завтрашнем дедлайне.
Оказывается, секрет эффективной работы не в том, чтобы работать усерднее, а в том, чтобы лучше сосредоточиться.
Заключительные мысли
В прошлом месяце тот начальник, который сказал, что моя эффективность была низкой, снова говорил со мной. На этот раз он сказал: "Можешь поделиться своим методом с командой?"
Я улыбнулся. Три месяца назад меня чуть не уволили, теперь я образец эффективности.
Изменение действительно не так сложно. Вам не нужен какой-то волшебный метод, просто научная тренировка плюс немного настойчивости.
Если вы хотите попробовать тоже, можете начать с этого теста Струпа. Помните, не важно, насколько вы плохи сейчас. Важно, насколько сильными вы будете через три месяца.
Как и код нуждается в постоянном рефакторинге, наш мозг нуждается в постоянной оптимизации. Единственное отличие в том, готовы ли вы начать.
Кстати, сегодня пятница. Я иду в тренажерный зал в 6. Вы? Все еще работаете сверхурочно?