Привет, дзен!
Все мы знаем, что разработка проекта на бумаге - очень структурированный процесс. На самом же деле разработка - сущий хаос: новые стеки, уведомления из соцсетей, звонки, костыли и велосипеды, затекшие плечи и руки, лень... Разработчику очень важно сохранять продуктивность, находясь в этом месиве. Это нужно как ему самому, так и заказчику.
1. Постарайтесь избавиться от отвлечений во время работы.
Чаты и Slack
Slack - удобный корпоративный мессенджер, если вы вдруг не знали.
Деррик Реймер пишет, что Slack не способствует вашей продуктивности:
Проблема в том, что сегодня инструменты чата усиливают негативные стороны человеческой природы, а не сводят ее к минимуму.
Мы нетерпеливы.
Мы чувствуем тревогу из-за значков «не прочитано».
Мы зависим от push-уведомлений.
Мы считаем вещи более срочными, чем они на самом деле есть.
Мы заботимся о том, как нас воспринимает наша команда, и не хотим выглядеть так, будто мы расслабляемся.
Разумеется, это не очень хорошо, так что вот несколько советов для исправления:
- Используйте в Slack режиме «Не беспокоить»
- Всегда используйте прямой обмен сообщениями для диалогов.
- Призывайте коллег придерживаться темы в выделенных каналах, ограничивать их нажатия клавиш, использовать @-упоминания для людей, кого обсуждение касается напрямую.
- Используйте асинхронную коммуникацию где только возможно (комментарии/заметки в инструментах управления проектом или в инструментах поддержки). Intercom для этого отлично подходит!
Соцсети и Email
Очевидно, что если вы постоянно проверяете почту, то много времени тратите впустую. Еще вы себе же внушаете ложное ощущение срочности.
Постарайтесь выделить себе несколько часов в неделю на проверку почты, чтобы люди не думали, что вы - центр поддержки 24/7 и писали в определенное время. С одной стороны, с вами все еще можно быстро связаться, а с другой - вы можете продуктивнее работать.
Чтобы на время забыть о соцсетях вы можете выйти из аккаунтов, отключить мобильные данные на смартфоне, создать отдельную сессию в браузере.
Инструменты:
• Приложение Missive – элегантный гибрид электронной почты, чата и поддержки.
• Расширение Chrome StayFocusd
• Расширение браузера WasteNoTime
• Приложение для тайм-менеджмента RescueTime
2. Постарайтесь заботиться о своем умственном здоровье
Очередной баг в продакшне, от которого волосы седеют, наносит нам серьезный урон.
Мне кажется, что это самая полезная привычка, потому что плохое состояние вашего мозга максимально сильно убивает вашу производительность. Такие вещи очень легко не заметить, хотя они критически важны как разработчику, так и простому человеку.
Жизненная гигиена
Выполняйте больше физических упражнений
Важно: это не то же самое, что и заниматься спортом. Отсутствие нагрузки очень опасно для нашего организма. Активность положительно сказывается на увеличении обучаемости, улучшении памяти, повышении выносливости мозга, росте креативности.
Хорошо питайтесь и пейте воду
Вредная пища плохо влияет на ваше состояние, а следовательно, и на вашу продуктивность. Старайтесь питаться здорово и пить больше воды ведь она помогает выводить токсины.
Высыпайтесь
Серьезно, это очень важно. Если вы не будете спать одну ночь, то ничего страшного не случится, но если не спать несколько ночей подряд, то вы будете находиться в состоянии овоща, что, разумеется, негативно скажется на продуктивности любого человека.
Стремитесь к балансу
«Без отдыха и конь не скачет». А также пребывает в вечном стрессе, нервозности и плохом настроении. Бедный конь (разработчик).
Работать много не всегда хорошо. Из-за работы многие перестают общаться с близкими, в результате чего могут даже семьи разрушаться. Да, трудоголики высоко ценятся компаниями, но когда все идет под откос они рискуют сорваться и бросить любимое дело.
Не надо пинать, но выходить в люди, в кино, на шоппинг, на экскурсию (кстати, если вы живете в Москве, то сходите на экскурсию в МоскваХод). Отдых крайне важен.
3. Создайте собственное строгое расписание
Плюс программирования в том, что вы можете заниматься им почти в любое время. Как ни странно, это же и минус, ведь вы можете начать откладывать дела на потом.
Чтобы составить расписание вам нужно ответить себе на некоторые вопросы:
Когда я могу работать? Очевидно, вы не можете работать во время встреч, сна. Это должно помочь вам выделить потенциально рабочие часы.
Когда я продуктивнее всего? Например, я могу работать только когда меня не теребят - то есть, ночью и утром. Днем вообще никак.
Где я более продуктивен? Работает только если у вас есть возможность выбора места работы. Мне вот дома привычно, а многие любят в кафе или кофейнях работать. Извращенцы.
Четко определяйте задачи, которые вы сделаете сегодня.
В моем понимании сегодня это не до 00.00 следующего дня, а до утра следующего дня, так что очень часто я совсем не сплю ночью, зато работа сделана. Не надо так.
Инструменты продуктивности для расписаний и списков задач
• Google календарь
• Pivotal Tracker / Jira / Trello (в зависимости от размера вашего проекта)
• Todoist
• Расширение Chrome Momentum
• Toggl – особенно хочу отметить их прекрасный блог.
• Приложения для приема «Помидор»
• Post-its!
4. Пишите понятный, легкотестируемый и легкочитаемый код
Обязательно разбивайте своей проект на маленькие подзадачи, которые легко выполняются и соединяются в одно большое целое. Модульность - наше все.
Вы должны понимать, что любой код когда-то придется улучшать. Непонятность станет огромной проблемой для нового программиста или даже вас самих.
Также старайтесь проводить тестирование как можно активнее, потому что в будущем это сэкономит вам же время.
Вот несколько советов:
- Обдумайте вариант разработки через тестирование (TDD) — это экономит время! Изначальное написание тестов для своего кода заставит вас думать о проверке edge cases, что сразу вскроет неожиданные проблемы.
- Используйте component mocking и поддельные данные. Это вообще используется в модульном тестировании, но для TDD критически важно, поскольку реализация зависимостей UUT (Unit Under Test) скорее всего еще не существует.
- Фокусируйтесь на малом количестве компонентов кода за раз. Это сделает каждый из них более надежным/поддерживаемым. Плюс, это заставит вас логически организовывать взаимодействующие модули и изготавливать компоненты с единственной ответственностью. Результат? Более простые в поддержке проекты!
Инструменты продуктивности для тестирования кода
Это инструменты, которые должны быть у каждого программиста и, конечно, мастера своего дела.
5. Никогда не бойтесь просить о помощи других людей
Основная суть open-Source разработки в том, что любой может вам помочь. Очень вероятно, что подобную проблему уже решали до вас. Это значит, что вы можете сэкономить свое время и увеличить багаж знаний просто спросив других людей. Тем не менее, нельзя бездумно копипастить.
Инструменты продуктивности для сотрудничества разработчиков
→ StackOverflow
→ GitHub
→ Slack
→ Функция комментирования в инструментах для управления проектами
→ Специфические инструменты технической поддержки и документации
Заключительные размышления
Итак, товарищи разработчики, позвольте мне подвести итоги и покинуть вас. Чтобы оптимизировать производительность, вам определенно необходимо:
- Составить строгое персонализированное расписание и придерживаться его.
- Писать легко проверяемые и тестируемый код.
- Использовать инструменты для сокращения отвлекающих факторов (чат, электронная почта, соцсети).
- При необходимости обращаться за помощью к другим разработчикам.
- Приобретать привычки, которые будут поддерживать здоровье вашего мозга!
Я надеюсь, это руководство поможет вам на пути к здоровой продуктивности разработчика. Я очень старался, когда писал эту статью. Если она вам понравилась, то поставьте лайк, чтобы ее прочитало больше людей.