5 привычек и инструментов для продуктивности

0
3661
views

Перевод статьи Франсуа Лантье Наду“A Guide to Developer Productivity: 5 Healthy Habits & Tools”.

Привычки и инструменты продуктивности разработчика

На бумаге разработка программ и веб-разработка это структурированные, упорядоченные процессы.

Но как насчет разработки в реальной жизни? По большей части это хаос:

Технические решения, новые стеки, социальные уведомления, затекшие плечи, звонки, собрания, семейные обязанности, GIF-ки… ЛЕНЬ!

[javascript]try{
Work();
}
catch(ChaosOverloadException ex){
Logger.LogFatal("(╯°□°)╯︵ ┻━┻ ", ex);
Tables.FlipAllOfThem();
}

[/javascript]

Нет сомнений, что поддержание продуктивности разработчика это ежедневная борьба.

Поверьте мне, я знаю: это ежедневная головная боль в наших командах по разработке.

Поэтому я решил попытаться сделать написать что-нибудь об этом.

Надеюсь, это что-то – давайте по-модному назовем это “Руководством по повышению продуктивности разработчика” – поможет нам и другим разработчикам в стремлении к здоровой производительности.

В этом посте мы рассмотрим 5 привычек разработчика, ведущих к повышению продуктивности, а также подходящие инструменты, которые помогут придерживаться этих привычек.

То, что вы прочтете далее, может сэкономить ваши деньги, силы и, возможно, слезы. Приступим?

5 привычек разработчика + полезные инструменты

Повышение продуктивности
Наш дизайнер был занят, поэтому я сделал эту картинку сам.

Непродуктивное время разработки дорого обходится 1) вам и 2) вашим клиентам.

Если слишком много времени тратится непродуктивно, это может поставить под угрозу вашу самооценку, мотивацию, профессиональные отношения и даже ваши собственные деньги. Как же это исправить?

1. Создайте свое собственное, строгое расписание (по возможности)

Красота программирования в том, что им можно заниматься практически где угодно и в любое время. Распорядок работы с 9 до 5 в наши дни становится все более устаревшим.

Есть ли у этой монеты другая сторона? Очень легко скатиться до установки «Я могу это сделать позже/когда-нибудь». Постановка положительных ограничений поможет вам структурировать и оптимизировать время разработки.

Прежде чем застолбить произвольные отрезки времени в своем Google Календаре, притормозите на секунду и спросите себя:

Когда я МОГУ работать?

Возьмем, к примеру, меня. Я не могу работать в ночную смену. Я не могу работать до 8 утра. Я не могу работать во время личных встреч. Это уже проясняет вопрос моего расписания и подчеркивает потенциальные рабочие часы.

Когда я продуктивнее всего?

Я знаю, что в моем случае полдня уединенной, сосредоточенной работы в выходные (во время работы кофеен) творят чудеса. Я также знаю, что после 8 вечера я просто не могу сосредоточиться.

Где я наиболее продуктивен?

Если, как и большинство разработчиков, вы можете себе позволить роскошь работы где угодно, вопрос выбора места является ключевым. Для ночных авралов я предпочитаю свою квартиру и включенную музыку. Выходные? Суматошные кофейни. Но каждое утро? Офис подходит лучше всего.

Определив, когда вы можете работать, когда вы наиболее продуктивны и где, вы сможете создать хорошее, подогнанное под себя расписание.

Имейте в виду, что все люди разные, и ваши пиковые часы могут не совпадать с графиками ваших коллег. Некоторые программисты – настоящие ранние пташки, которые могут подняться еще до рассвета и успеть отладить кучу всего, пока большинство людей еще только тащатся за своим утренним кофе. А совы могут хорошо писать код по ночам, когда все остальные уже счастливо забрались под одеяло.

А если вы не знаете? Ну, экспериментируйте + повторяйте. Есть несколько очень простых приемов, позволяющих понять, в какое время дня ваш мозг больше всего готов производить, просматривать и тестировать код.

Еще одно положительное ограничение это заполнение всего оставшегося времени деятельностью, которой вам нравится заниматься (спорт, развлечения, сторонние проекты, поездки и т. п.). Необходимость пропускать или отменять эти дела будет мотивировать вас продуктивно проводить рабочее время.

1.1 Четкое определение задач на день

Когда вы определили временные рамки вашей работы, составьте реалистичный список задач. Я это делаю ежедневно, поскольку быстрая перестройка стартапа часто означает «дерьмо случается». Но вы можете успешно делать это еженедельно.

Начинать день с записи того, что я хочу сделать, и заканчивать записью того, что я на самом деле сделал, помогает мне выверять, насколько реалистичны мои планы на день. Таким образом, благодаря лучшему пониманию своих возможностей, можно постепенно избавиться от недовольства собой.

Инструменты продуктивности для расписаний и списков задач

→ Google календарь

→ Pivotal Tracker / Jira / Trello (в зависимости от размера вашего проекта)

Todoist

→ Расширение Chrome Momentum

Toggl – особенно хочу отметить их прекрасный блог.

Приложения для приема «Помидор»

→ Post-its!

2. Пишите понятный, легко тестируемый код

Даже простые сайты/приложения могут казаться настоящими мамонтами.

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

Имейте в виду, что над вашим кодом, скорее всего, в какой-то момент придется еще поработать или возникнет необходимость его улучшить. Поэтому, ради себя в будущем или ради коллег, пишите код с понятной, легко поддающейся расшифровке структурой. Я клянусь, что полное тестирование сохранит в дальнейшем бесценное время – ваше собственное, вашей команды и ваших клиентов.

Несколько советов от нашей команды:

  • Обдумайте вариант разработки через тестирование (TDD) — это экономит время! Изначальное написание тестов для своего кода заставит вас думать о проверке edge cases, что сразу вскроет неожиданные проблемы.
  • Используйте component mocking и поддельные данные. Это вообще используется в модульном тестировании, но для TDD критически важно, поскольку реализация зависимостей UUT (Unit Under Test) скорее всего еще не существует.
  • Фокусируйтесь на малом количестве компонентов кода за раз. Это сделает каждый из них более надежным/поддерживаемым. Плюс, это заставит вас логически организовывать взаимодействующие модули и изготавливать компоненты с единственной ответственностью. Результат? Более простые в поддержке проекты!

Инструменты продуктивности для тестирования кода

  • Инструменты непрерывного тестирования для расширений (например, как NCrunch для .NET)
  • Решения непрерывной интеграции (такие как Travis CI, AppVeyor, Jenkins)
  • Тестовые фреймворки JavaScript (например, Mocha, Chai, Jest)

Это инструменты, которые должны быть у каждого программиста и, конечно, мастера своего дела.

3. Избавьтесь от отвлечений в стиле «пора и перекурить»

Slack и чат

Давайте начнем со слона в комнате, со Slack.

Для большинства это может оказаться новостью, но Slack не способствует повышению вашей продуктивности, ребята!

Деррик Реймер, автор манифеста по ссылке сверху, сказал об этом лучше всего:

Проблема в том, что сегодня инструменты чата усиливают негативные стороны человеческой природы, а не сводят ее к минимуму.

  • Мы нетерпеливы.
  • Мы чувствуем тревогу из-за значков «не прочитано».
  • Мы зависим от push-уведомлений.
  • Мы считаем вещи более срочными, чем они на самом деле есть.
  • Мы заботимся о том, как нас воспринимает наша команда, и не хотим выглядеть так, будто мы расслабляемся.

Как это исправить? Единого ответа нет. Но есть несколько советов:

  • Используйте в Slack режиме «Не беспокоить» в то время, когда вам нужно хорошо сосредоточиться.
  • Всегда используйте прямой обмен сообщениями для диалогов.
  • Призывайте коллег 1) строго придерживаться темы в выделенных каналах, 2) ограничивать их нажатия клавиш, 3) использовать @-упоминания для людей, кого обсуждение касается напрямую.
  • Используйте асинхронную коммуникацию где только возможно (комментарии/заметки в инструментах управления проектом или в инструментах поддержки). Intercom для этого отлично подходит!

Email и социальные сети

Постоянная проверка почты вредит производительности. Как и чаты, это создает ложное ощущение срочности и взаимодействия.

Поэтому, возвращаясь к теме строгого графика: просто отведите 2-3 разумных отрезка времени в неделю для проверки почты. Со временем это приучит ваших корреспондентов, что вы – не центр поддержки 24/7. Их ожидания приспособятся к более здоровому асинхронному ритму связи. То же самое, кстати, касается и чатов!

Следить, чтобы уведомления соцсетей держались в каких-то берегах, довольно просто:

  • Для работы создайте в Chrome отдельную сессию, в которой выйдите из всех социальных сетей.
  • Выключите мобильный или переведите в беззвучный режим, чтобы получать вызовы только с самых важных номеров (в Android/iOS — режим «Не беспокоить»). Если возможно, положите телефон вне зоны досягаемости.
  • Подумайте над использованием блокировщиков сайтов (см. ниже).

Инструменты продуктивности для уменьшения отвлекающих факторов

→Приложение Missive – элегантный гибрид электронной почты, чата и поддержки.

→ Расширение Chrome StayFocusd

→ Расширение браузера WasteNoTime

→ Приложение для тайм-менеджмента RescueTime

4. Не бойтесь попросить о помощи

Основная суть открытого исходного кода – сотрудничество и прозрачность. Работа в изоляции будет стоить вам драгоценного времени.

Плюс, какой бы сложной ни была ваша проблема, есть шансы, что кто-то ее с ней уже сталкивался и исправлял. Безусловно, это не значит, что вам стоит бездумно копипастить код. Однако отведение времени на изучение вопроса, анализ и внедрение чужого решения подходящим образом полностью себя оправдает.

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

→ Google

→ StackOverflow

→ GitHub

→ Slack

→ Функция комментирования в инструментах для управления проектами

→ Специфические инструменты технической поддержки и документации

5. Позаботьтесь о своем умственном здоровье

С течением времени пропущенные дедлайны, баги на проде, недовольные клиенты, споры… могут нанести тяжелый урон.

Не говоря уже о мировых новостях, личных проблемах и теориях заговора.

Шутки в сторону. Как по мне, это самая полезная из привычек. В прошлом году у меня были тяжелые периоды, и стало ясно, что как только с умственным здоровьем что-то не ладится, ничего хорошего не выходит, ни в профессиональном, ни в личном плане. И, да, это УБИВАЕТ производительность.

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

Следование этим советам будет полезно для вашей жизни в целом, а не только как разработчика.

Жизненная гигиена

1. Выполняйте больше физических упражнений

Согласно некоторым медицинским авторитетам, отсутствие упражнений для вашего здоровья столь же опасно, как курение табака. Физическая активность положительно сказывается на:

  • Увеличении обучаемости
  • Улучшении памяти
  • Росте креативности
  • Повышении выносливости мозга
2. Хорошо питайтесь и все время пейте воду (серьезно, делайте это)

Как и в случае с физическими упражнениями, большинство работающих взрослых людей редко хорошо питаются, и это также очень сильно влияет на их производительность. Жирная, насыщенная углеводами пища может серьезно повлиять на то, сколько работы вы выполните.

Помните о структурированном графике с ежедневным списком дел? Почему бы не забронировать там время для планирования вашего стола, приготовления еды и приемов пищи?

Что касается воды, она 1) выводит токсины, 2) облегчает головные боли и снимает усталость, 3) заряжает вас энергией и укрепляет иммунную систему. Пейте воду!

3. Высыпайтесь

«После смерти отосплюсь» – дурацкий девиз.

Мой друг-дизайнер Тони из Осмо хорошо сказал об этом в своем посте на Фейсбуке, подводя итоги прекрасной серии подкаста:

Ключевые выводы:

  • Недостаток сна тесно связан и болезнью Альцгеймера и другими распространенными проблемами со здоровьем, такими как синдром дефицита внимания и гиперактивности, рак, ожирение и т. д.
  • Когда вы бодрствуете, это приводит к небольшому количеству повреждений мозга, что вызывает болезнь Альцгеймера. Эти повреждения лечатся во время сна.
  • 7 часов сна это абсолютный минимум. Одна ночь сна меньше 7 часов у 99% населения приводит к повреждению мозга.
  • Люди, утверждающие, подобно Илону Маску, что могут обходиться менее чем 7 часами сна, бредят, вредят себе и увеличивают риск для своего здоровья.
  • Ваше тело не может запасаться сном, как запасется энергией/калориями. Например, нельзя в течение недели спать подольше, чтобы компенсировать недосып в выходные.
  • Аналогично, дремота снимает симптомы нехватки сна, но не восстанавливает повреждения мозга.
  • Мужчинам недостаток сна обойдется в старение на десять лет, если смотреть по уровню тестостерона.
4. Стремитесь к балансу во всем

«Без отдыха и конь не скачет». А также пребывает в вечном стрессе, нервозности и плохом настроении. Бедный конь разработчик.

Трудоголизм реален. По факту, люди, у которых проявляются симптомы трудоголизма, хотя и высоко ценятся компаниями, зачастую теряют близких друзей. Их семейная жизнь также может пойти под откос, и даже некогда любимая работа перестает их радовать.

Поэтому выходите в люди, на обед, на прогулку, в кино. Встречайтесь с любимыми людьми. Качественные отношения с людьми находятся близко к вершине человеческого счастья!

Борьба с тревожностью и фрустрациями

Привычки жизненной гигиены, упомянутые выше, помогут вам лучше управлять своими эмоциями. Но я также хочу подкинуть вам еще три важные идеи:

1. Медитация

Забудьте о чакрах, йоге, мычании и гуру.

Медитация это вполне мирская практика, которая, как доказала нейробиология, уменьшает стресс/тревожность и улучшает концентрацию, креативность, способность сопереживать и память.

Я медитирую ежедневно уже два года. Это мне настолько помогает, что я превратился в того надоедливого парня, который всегда пристает с этой темой ко всем, кого бы ни встретил.

Дыхание это мощный и доступный инструмент — пользуйтесь им!

2. Умственное развитие

Это сложная задача, но сводится она к укрощению вашего эго.

Ваш ум развивается путем учебы на ошибках, а не за счет наслаждения успехом. Исходя из этого факта, смиренное принятие ошибок и неудач неразрывно связано с личностным и профессиональным ростом.

3. Стоицизм

Философия стоицизма насчитывает уже сотни веков, но актуальна и сегодня. Она учит вас принимать вещи, которые вы не можете изменить, и быть благодарным за то, что есть, хорошо оно или плохо.

Я мог бы написать об этом целый пост, но я буду краток и сошлюсь на «The Obstacle is the Way» Райана Холидея. В блоге Тима Ферриса также есть подборка полезных источников по теме стоицизма.

Инструменты продуктивности для умственного здоровья

→ Приложение для медитации Headspace (как его не похвали, все равно будет мало)

→ Приложение для управления стрессом Calm

Заключительные размышления

Итак, товарищи разработчики, позвольте мне подвести итоги и покинуть вас. Чтобы оптимизировать производительность, вам определенно необходимо:

  • Составить строгое персонализированное расписание и придерживаться его.
  • Писать легко проверяемые и тестируемый код.
  • Использовать инструменты для сокращения отвлекающих факторов (чат, электронная почта, соцсети).
  • При необходимости обращаться за помощью к другим разработчикам.
  • Приобретать привычки, которые будут поддерживать здоровье вашего мозга!

Я надеюсь, это руководство поможет вам на пути к здоровой продуктивности разработчика.



ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here