Ниже приведено широко распространённое в интернете изображение об эффективности работы программиста:

Гомер Симпсон мог бы сказать: Это смешно, потому что это правда.

Я ещё не разгадал секрет сохранения продуктивности, главным образом потому, что никогда не был стабильно продуктивным. Джоэл Спольски однажды сказал в одном из своих постов в блоге:

Иногда я вообще ничего не могу сделать.

Конечно, я прихожу в офис, брожу туда-сюда, проверяю почту каждые десять секунд, брожу по интернету и даже занимаюсь бессмысленными вещами вроде оплаты счёта American Express. Но я просто не могу вернуться в поток написания кода.

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

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

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

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

  • Открытая планировка офиса
  • Программисты, спорящие о том, что лучше — Django или .NET
  • Программисты, спорящие обо всём
  • Коллега подходит и спрашивает: "Эй, ты получил моё письмо?"
  • Звук жевания. По-видимому, у меня мизофония.
  • Непонимание задачи, над которой я работаю
  • Сомнения в этом проекте
  • Несколько задач, которые нужно выполнить, и все они крайне срочные
  • Когда что-то крайне срочно, ничего другого не делается
  • Звуки уведомлений Weibo на моём телефоне
  • Всплывающие уведомления электронной почты
  • Любые всплывающие окна
  • Программы для обмена мгновенными сообщениями
  • Жена спрашивает: «Слушай, можешь уделить минуту и помочь мне с кое-чем?»
  • Долгое время сборки
  • Шум
  • Люди, постоянно проходящие мимо моего стола
  • Групповые мероприятия компании
  • Википедия (я серьёзно, не нажимайте ни на какие ссылки)
  • Hacker News
  • В целом интернет влияет на производительность

Раньше эти вещи помогали мне работать эффективно:

  • Тихая обстановка
  • Тихий офис (отдельные кабинеты слишком редки)
  • Понимание того, что мне следует делать дальше в проекте
  • Доскональное понимание проблемы
  • Никаких отвлечений
  • Я серьёзно: никаких отвлечений
  • Держаться подальше от Weibo
  • Держаться подальше от Hacker News
  • Железо работает без проблем
  • Мне нравится проект, над которым я работаю
  • Сборка и отладка занимают немного времени
  • Не спорьте о политике в интернете

Очевидно, половина факторов неэффективности создана нами самими, но некоторые — нет, например, планировка офиса открытого типа.

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

  • Отключаю уведомления на своём iPhone (бонус — увеличенное время работы батареи в режиме ожидания)
  • После 3 часов подряд программирования даю себе награду (обычно в виде «времени в интернете» — просмотра Hacker News или Weibo)
  • Работаю из дома только тогда, когда действительно, действительно есть что-то, что нужно сделать
  • Вложиться в недорогие наушники с шумоподавлением
  • Запланируйте в календаре время без встреч, показывая другим, что в это время вы заняты. Это моё рабочее время.
  • Не ввязывайтесь в офисные споры программистов; у людей есть сильные личные мнения, а программисты по своей природе спорщики. Если действительно есть бизнес-проблема, которую нужно решить, давайте пойдём в переговорную и распишем плюсы и минусы каждого подхода. Пусть говорят данные, а не просто спорьте.
  • Разместите свой рабочий стол там, где вас не будут беспокоить прохожие.
  • Сначала ознакомьтесь с задачей, затем попросите другого программиста подробно объяснить её мне, чтобы я лучше понимал предстоящую работу. Это даёт две вещи: во-первых, позволяет мне понять ситуацию, давая мне хотя бы базовое понимание ключевых моментов работы. Во-вторых, это позволяет мне задавать более разумные вопросы, когда я обращаюсь за помощью.

Ссылка на оригинальную статью: George Stocker

Ссылка на перевод: http://blog.jobbole.com/73383/