Персональные инструменты
 

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

Материал из CustisWiki

Перейти к: навигация, поиск
В статье, размещенной в корпоративном блоге на «Хабрахабре», Вячеслав Муравлев, наш ведущий Java-разработчик, поделился своим опытом планирования деятельности в целом и рабочего процесса в частности. В материале «О личной эффективности программиста, или Как сосредоточиться на самом главном, не забыв обо всем остальном» он рассказал, какими методиками по самоорганизации и планированию вдохновлялся, какие подходы и инструменты использует на практике, а также дал несколько советов тем, кто только начинает знакомиться с методикой GTD.

Введение

До определенного момента своей жизни я ни о какой самоорганизации не задумывался. Все небольшое количество студенческих (аспирантских, junior-developer’ских) дел помещалось в голове, в нужный момент вспоминалось, а что не вспоминалось — тому не повезло ☺. Женитьба, ремонт в квартире, рождение первенца, смена трех мест работы — все это удавалось худо-бедно удерживать в памяти. Но, как говорится, чем дальше в магазин, тем выше ставка по кредиту ☺. В какой-то момент у меня появилось ощущение, что я постоянно занимаюсь «тушением пожаров» на работе, дома, в аспирантуре: провалил срок по рабочей задаче, не вспомнил о поездке к врачу с ребенком, дотянул до последнего с заказом билетов-отелей на летний отдых… О каких-нибудь хобби и получении удовольствия от жизни речи и вовсе не шло.

Рабочий процесс тоже походил на жонглирование горящими котятами: пишу код — всплывает уведомление Outlook — срочно бросаюсь читать и заниматься пришедшим письмом — звонит руководитель с напоминанием о поручении — все отложил, лихорадочно ищу письмо среди сотен похожих в папке «Входящие». Нашел — сделал, вернулся к коду с мыслью «Блин, чем же я тут занимался-то!?!?». О глубоком погружении в задачи можно забыть. И это притом, что в силу специфики компании, где я тогда трудился, у меня не было доступа в Интернет на рабочем месте ☺. Иначе, думаю, к коду я и не возвращался бы.

Однажды мироздание сжалилось надо мной, и в гостях у знакомых я наткнулся на книгу «Тайм-драйв» Глеба Архангельского. С первых страниц залип на ней, понимая — вот ответы на мои вопросы к самому себе из серии «Куда бежать и что делать?». С этого момента в моей жизни началась эпоха самоорганизации (очень пафосно звучит, но это так ☺).

Выстроить систему на основе «Тайм-драйва» у меня не получилось. На мой взгляд, потому, что Архангельский в этой книге обзорно описывает тему самоорганизации, не вдаваясь в конкретику: дескать, вот есть списки дел, вот мотивационные приемы, вот правила поведения. В итоге вычленить единую систему класса «делай раз — делай два» я не смог. После напряженного поиска материалов, чтения и попыток адаптации прочитанного к своей жизни, больше всего мне понравилась методика Getting Things Done (GTD) Дэвида Аллена.

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

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

Для начала расскажу о том, что из GTD прижилось у меня и в каком виде.

Входящие/Корзинки

Создание правильных корзинок здорово разгружает голову. Моя самая любимая фича — это окно Quick Entry в Doit.im или MyLifeOrganized.

Рис. 1. Quick Entry в MyLifeOrganized
Рис. 2. Quick Entry в Doit.im

Не стоит надеяться, что идея, пришедшая вам в голову во время написания кода, проживет там дольше пяти минут. Шорткат — быстрая запись — возврат к работе. Состояние потока нарушено минимально.

Электронная почта раскладывается по папкам. Я ничего не оставляю в Inbox к концу дня. Сделал несложную иерархию папок по проектам, плюс папки для писем, которые содержат материалы к задачам, и писем, ожидающих ответа. Несколько раз в день проверяю почту, раскладываю все по папкам. Никаких уведомлений и всплывающих окон.

Во многих сервисах (Doit.im, Wunderlist, Evernote) есть возможность отправлять письма на определенный почтовый адрес, после чего они появляются в Inbox. Это отличная штука для того, чтобы включать e-mail’ы в свою систему. Переслал письмо — и в процессе разборки Inbox принимаешь по нему решение, например, преобразуешь его в задачу, при этом сопутствующая информация уже перенесена в задачу из письма. Я так отслеживаю письма, на которые жду ответа: при отправке ставлю в BCC свой адрес, а потом в системе дел помечаю задачу по этому письму как «Ожидаемое».

Бумаги я собираю в отдельный лоток на столе, а для всяких квитанций и счетов держу отдельную папку. Зашел в банк (или в интернет-банк) — и оплатил все одним batch’ем.

Занести в календарь назначенную встречу — это азбука. Еще хорошо записывать в календарь триггеры начала проектов, например, за неделю до окончания страховки на машину поставить событие на весь день «Заняться страховкой». При просмотре календаря на этот день заводится проект «Страховка на машину» и какие-то действия по нему. Очень помогают общие (shared) календари с женой: туда заносятся различные семейные события, школьные экскурсии, спортивные соревнования, поездки к врачам и все такое. При обзоре календаря на неделю или на месяц хорошо видно, где есть свободные слоты.

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

Проекты и Next Actions

Выстроить для себя систему у меня получилось только после второго (или третьего) вдумчивого прочтения книги по GTD и осознания того, что же Аллен имеет в виду под проектом и зачем нужен список проектов. После этого дело пошло намного легче.

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

Мне нравится заносить в проекты многоходовые задачи по разработке. Посидеть с карандашом и бумагой, проработать задачу и составить mindmap, а потом преобразовать его в цепочку конкретных действий (настроить стенд, доработать такой-то функционал, внести изменения в БД и т. д.).

Someday/Maybe

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

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

Дополнительные списки

Аллен рекомендует составлять списки по любому удобному (а еще лучше — неудобному ☺) поводу. И не зря, ведь это способно перевести даже творческие задачи во вполне себе рутинную работу. Перечислю некоторые из списков, которые я веду для себя.

  • Фильмы, музыка, книги. Прочитал рецензию на фильм, если рекомендуют — занес в списочек. Перед выходными заглянул в него, выбрал, скачал — семейный досуг обеспечен ☺. Аналогично с музыкой и книгами.
  • Для выезда на фазенду активно используется список «Взять на дачу». Он приобретает особую актуальность в летний период, когда семья переезжает на дачу, и в течение всей недели поступают запросы типа «привези синюю курточку», «когда поедешь — захвати зеленую машинку» или «купи нам стотыщпятьсот вещей на выходные».
  • Несрочные покупки. Если уж тратить выходной на Ашан/IKEA/OBI — то с максимальной пользой.
  • Регулярные платежи: квартплата, телефон, курсы и секции для детей, отправка показаний счетчиков и т. д. — оформлены как регулярно повторяющиеся задачи. Вспоминаешь про них только тогда, когда нужно оплатить.
  • Списки для сбора вещей. В течение этого года я несколько раз посещал выездные корпоративные тренинги, и заранее составленный список (который пополнялся во время первой поездки) помогал не вспоминать лихорадочно, что же еще нужно взять. Аналогичная ситуация со списками вещей для отпуска.

Регулярный обзор

Полный регулярный обзор всего накопленного за неделю (текстовых и диктофонных записей, фоток, заметок в блокноте, бумаг в лотке) у меня получилось провести раза два за все время практики GTD. Это очень долго и утомительно. Поэтому я разбираюсь со всем поэтапно. Раз в неделю (в понедельник с утра) на полчаса сажусь и прочищаю текущие задачи, составляя план на неделю. Даже такой краткий обзор позволяет держать на виду общую картину текущей жизни и балансировать усилия. Все остальное разбирается, честно говоря, от случая к случаю.

Области фокуса

На текущий момент это для меня самый полезный инструмент. Когда составляешь список того, чему хочешь уделить внимание в течение года, и регулярно на него смотришь — это здорово подталкивает к тому, чтобы все-таки заняться этими вещами. При этом необязательно, чтобы формулировки были результативными, помечать просто что-то вроде «2 раза в неделю заниматься спортом», «чаще звонить родителям» может быть вполне достаточно. Составление такого списка New Year Resolutions — отличное занятие для новогодних каникул ☺.

Результаты внедрения

Сразу отмечу такой момент (и, насколько я помню, Аллен упоминает его в своей книге): один из главных бонусов (если не самый главный ☺) от внедрения системы состоит в том, что вы перестаете беспокоиться по поводу несделанных дел, поскольку не пытаетесь судорожно вспомнить, что вам надо делать. Все, что я могу сделать, но не делаю, вынесено на внешний носитель, и к этому можно вернуться в любой момент — это осознание успокаивает и придает уверенности. То, что дела при этом могут и не делаться, — это уже другая песня (они и раньше не все делались, и никто от этого не умер).

Очень полезно время от времени смотреть на всю картину своей жизни, своих дел. Во-первых, это придает уверенность в том, что ничего не упущено. Во-вторых, это мотивирует к перераспределению усилий между разными сферами (работа, спорт, семья). В рабочей гонке фокус с других областей может сбиться: при интенсивном режиме работы я неоднократно начинал пропускать тренировки, меньше времени проводить с семьей, и в результате через полтора-два месяца начиналась легкая депрессия. Такой регулярный обзор позволяет опомниться и отвлечься от безумия рабочих будней.

Что не надо делать

В завершение описания своего опыта GTD поделюсь рецептами how-NOT-to для тех, кто решится внедрять методику.

  • Не надо хвататься за мощные инструменты (типа OmniFocus или MyLifeOrganized). Лучший инструмент для начинающего — тот, что у него сейчас под рукой. И чем проще, тем лучше. Лишь обкатав методику на простых инструментах, можно понять, что тебе нужно и что лучше всего подходит, и уже затем осознанно выбирать более сложный инструмент. На выбор инструментов и миграцию данных между ними я потратил кучу времени. В какой-то момент мне даже начало казаться, что лучше бы я выполнил сколько-то дел в старой системе, чем потратил время на их перенос в новую.
  • Не надо скрупулезно следовать процедуре. Не надо втискивать себя в прокрустово ложе описанных процедур. GTD — не догма, это спецификация, набор базовых принципов. Имплементацию определяет каждый индивидуально. Вроде бы звучит как реплика Капитана Очевидность, но я несколько раз загонял себя в ловушку детального выполнения процедуры в ущерб здравому смыслу. Выполнение полного регулярного обзора до двух часов ночи явно должно уступать в приоритете здоровому сну ☺.
  • Меньше перфекционизма. Не надо пытаться выстроить единую стройную систему, все части которой будут прозрачно связаны между собой (например, вести все списки в одном приложении, которое интегрировалось бы с календарем и т. д.). На это я тоже потратил немало времени и сил. В итоге все дело закончилось тем, что часть списков ведется в одном приложении, часть — в другом и что-то еще существует на бумаге. Главное, что должно выполняться, — эти списки не должны пересекаться, у каждой записи должно быть четко определенное место.

Что дальше

Как я уже писал выше, после установки системы «на рельсы» наступило достаточно спокойное (местами расслабленное) состояние. Оно привело к тому, что я делал только те задачи из списка Next Actions, у которых подходил срок выполнения, или которые мне больше нравились на текущий момент. Все остальные задачи так и висели в этом списке неделями.

Автофокус

Разгребать такие завалы у меня получается с помощью системы Марка Форстера «Автофокус». Форстер выпустил несколько версий этих систем, мне больше всего пришлась по душе (как самая простая) последняя версия, которая так и называется — Final Version. Алгоритм следующий.

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

За несколько таких проходов внимание получают все задачи в списке, и в результате список прочищается.

Фокус и поток

В какой-то момент я понял, что, несмотря на все свои записи и отлаженные корзинки, мне не удается сосредоточиться на работе. Помимо внутренних отвлечений (идей, воспоминаний, желания проверить почту, Facebook, новости и т. д.), постоянно что-то извне отрывает от работы: вопросы коллег, телефонные звонки, новые письма. После отвлечения восстановить в голове контекст того, что ты делал, достаточно сложно.

Выход был найден в использовании Pomodoro Technique (свое название эта методика получила благодаря кухонному таймеру в виде помидора). Это довольно простой способ организации работы по интервалам: 25 минут непрерывной работы, 5 минут перерыва. Через четыре таких цикла делается перерыв на 15 минут. В ходе выполнения «помидора» нельзя отвлекаться на постороннее, иначе «помидор» прерывается и не засчитывается.

That one really rocks. Я работаю по этой схеме уже где-то четыре года, и она стала ежедневным инструментом. Положительные эффекты налицо.

  • За время одного интервала втягиваешься в задачу и попадаешь в то самое заветное состояние «потока»: полностью фокусируешься на выполняемой работе, все остальное отходит на задний план, время летит незаметно. Заметил за собой такую вещь: даже если вокруг творится бедлам (звонки, разговоры), то все равно при должном усилии фокус появляется и все внешние шумы отфильтровываются.
  • Схема удачно комбинирует работу и отдых. Во время коротких перерывов можно сделать разминку, а контекст выполняемой задачи еще остается в голове. Во время долгого перерыва можно заняться какой-нибудь нерабочей задачей (что-то найти в Интернете, позвонить) или просто пообщаться.
  • К внешним «входящим» появляется здравое отношение: почта проверяется в свободное время, уведомления отключены; звонки и вопросы отбиваются встречным предложением «давай обсудим это через … минут, если это не срочно». Главное — не забывать возвращаться к этому ☺.
  • Появляется какая-то оценка дня (сколько «помидоров» наработано), и это тоже мотивирует сосредоточиться на рабочих задачах, срабатывает соревновательный момент.

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

И в том, и в другом случае хороший способ вернуть себя в рабочий режим — это заняться какой-нибудь мелочевкой: разобрать бумаги на столе, расчистить файлы в папках, найти что-нибудь нужное в Интернете (не по работе) и т. д. После двух-трех таких задач входишь в рабочее состояние и можно браться за что-то посерьезнее.

Инструменты

Я разделяю инструментарий для организации на два типа: для оперативной информации и для архивной. Соответственно, и требования к ним разные: оперативный инструмент должен быть быстрым, легким, синхронизироваться с телефоном и работать как часы. Архивному инструменту можно прощать тормоза, медленную синхронизацию и неудобный интерфейс — главное, чтобы не терялись данные и работал поиск.

Календарь

Поскольку я плотно сижу на iPhone, то использую Apple iCloud и календарь в нем. Меня все устраивает, особенно радует возможность поделиться календарем. Как я уже упоминал, это очень помогает при семейном планировании. Какое-то время пользовался Google Calendar — тоже хорошо. В том объеме функционала, который мне нужен от календаря, эти два сервиса идентичны.

Какое-то время я довольно успешно использовал все те же Apple iCloud Reminders. Просто списки и ничего больше. Но аппетит приходит во время еды, и с приобретением опыта появилась потребность в различных группировках задач, создании их иерархии, указании зависимостей и т. д.

Мне больше всего понравились два сервиса: Doit.im и MyLifeOrganized.

Doit.im — это китайская копия отличной программы Things, которая существует, к сожалению, только для Mac и iOS. В ней достаточно прямолинейно реализована GTD (отражены все артефакты: входящие, проекты, список следующих действий, отложенные задачи) и добавлено все, чего не хватало Things: привязка задач ко времени, подзадачи, клиенты для различных платформ и веб-интерфейс.

Рис. 3. Веб-интерфейс сервиса Doit.im

На текущий момент я пользуюсь MyLifeOrganized. Это весьма продвинутый outliner. Задачи можно выстроить в иерархию с практически бесконечным уровнем вложенности, есть поддержка проектов, контекстов, папок. Поддержка контекстов имеет одну очень классную фичу: контексты можно включать друг в друга. Например, у меня есть контекст «Компьютер» (для задач, которые все равно за каким компом делать) и различные контексты «ДомКомпьютер» и «ОфисКомпьютер». Контекст «Компьютер» включен в оба этих контекста, и задачи из него я вижу и дома, и в офисе.

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

Рис. 4. Desktop-клиент MyLifeOrganized

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

Справочная система

Материалы по текущим проектам я ношу с собой на флешке, которая умеет раздавать себя по Wi-Fi (Kingston Wi-Drive, этот выбор обусловлен использованием iPad).

Как архивную систему я использую Evernote. Я несколько раз пытался обустроить его как систему для оперативной информации (и создатели Evernote его именно так и позиционируют), но каждый раз после пары дней возвращался обратно к проверенному Doit.im. Тормоза, небыстрая синхронизация, не слишком удобный интерфейс. Это прекрасное средство для архивного хранения информации, но не оперативный инструмент.

Работа с Pomodoro Technique

На рабочем месте на машине с Windows я использую Focus Booster — красивый и с минимально необходимым функционалом.

Рис. 5. Мини-таймер Focus Booster

В последней версии Focus Booster появился и для MacOS.

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

План дня

Еще один отличный инструмент для сохранения фокуса и обзора цельной картины дня для меня — это дневной план. Составление оного с утра — уже целый ритуал: налить кофейку и в тишине набросать задачи на день. Очень хорошо задает рабочее настроение. Я долго искал инструмент, который позволил бы мне интегрировать мои задачи и календарь, вывести все на один экран и еще дать место для заметок в течение дня. Такого чуда мне найти не удалось, и я сделал его себе сам из обычного Excel, немного поколдовав над условным форматированием ячеек. Данные в него переносятся руками (как-то не по-программистски), но Ctrl+C–Ctrl+V работает быстро и это не раздражает.

Рис. 6. Таблица ежедневного планирования в начале дня


Рис. 7. Таблица ежедневного планирования в конце дня

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

Заключение

В заключение хочу сказать, что GTD — это не «серебряная пуля», и не надо рассчитывать, что, внедрив методику, вы сможете найти в сутках 48 часов или работать по 100 часов в неделю, не опустошая холодильник с энергетиками. Это инструмент, эффективность использования которого — дело рук самих утопающих ☺. Описанные техники и методики — всего лишь ступеньки для выхода на другой уровень отношения к каждому дню своей жизни. Решив с помощью GTD один круг вопросов, я тут же столкнулся со множеством новых, более высокого порядка и гораздо более интересных. Чего желаю и всем дочитавшим пост до конца ☺.


Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».

Репликация: База Знаний «Заказных Информ Систем» → «О личной эффективности программиста, или Как сосредоточиться на самом главном, не забыв обо всем остальном»