Тренинг: Вам следует вести журнал разработчика
Журнал разработчика — это место, где можно определить проблему, которую вы решаете, и записать, что вы пробовали и что сработало.
Письмо — фантастический инструмент для обработки и передачи абстрактных идей. А разработчики погрязли в абстрактных идеях! От проектирования системы до мельчайших деталей реализации — мы храним в голове огромное количество информации.
На уровне проекта небольшая армия менеджеров проектов, менеджеров по продуктам, технических менеджеров и скрам-мастеров (иногда одного и того же перегруженного работой человека) помогает нам понять, что строить дальше. Мы обращаемся к инструментам управления проектами, таким как Jira, чтобы отслеживать наш прогресс. Но на уровне кода легко заблудиться.
К счастью, есть способ систематизировать ваши мысли вокруг самых мельчайших деталей: журнал разработчика. Журнал разработчиков — это инструмент для отслеживания того, что вы делаете и почему. Хотя поначалу это может показаться рутинной работой, ведение дневника сэкономит вам массу времени и избавит от многих головных болей во время работы. Это также может способствовать повышению вас по службе.
Автоматическая озвучка
Зачем беспокоиться?
Меня раздражает, когда в книгах по самопомощи целые главы рассказывают вам об этой идее, а не о том, что делать. Итак, вот мой совет для журналов разработчиков: вы напишете лучший код, если сможете сосредоточить 100% своего внимания на решении одной четко определенной проблемы за раз, и вы будете расти как разработчик, размышляя о том, что работаете и с чем вы боретесь.
Журнал разработчика — это место, где можно определить проблему, которую вы решаете, и записать, что вы пробовали и что сработало. Вот и все. В оставшейся части этой статьи будут предложены методы и стратегии для достижения этой цели.
Вот что ваш журнал поможет вам сделать.
1. Определите, что вы делаете
Хотя функция продукта, над которой вы работаете, может быть четко определена, ваша задача — выяснить ее реализацию, и в двусмысленности легко заблудиться. Некоторые программисты начинают работу с написания списка дел прямо в текстовом редакторе. Используйте свой журнал разработки, чтобы обозначить все, что вам нужно для выполнения вашего билета или задачи. Определите конкретное действие, которое необходимо предпринять дальше. Это будет полезно, если вы заблудитесь в дальнейшем.
2. Уменьшите двусмысленность
Это нормально — чувствовать неуверенность в том, что вам следует делать дальше или как решить проблему, над которой вы работаете. Не пытайтесь преодолеть путаницу, написав кучу кода, это может занять несколько часов. Вместо этого потратьте пять минут на то, чтобы изложить на бумаге свои сомнения и гипотезу. Чего именно ты не знаешь? Как вы это узнаете? Как вы думаете, что произойдет? Как однажды сказал один мудрый человек : «Хорошо поставленная проблема — это наполовину решенная проблема».
3. Учитесь на своем опыте
Выполнив часть работы (заявку, функцию или проект), вы можете просмотреть ее и извлечь уроки из того, что было сложно, а что вы сделали хорошо. Вы также можете поделиться своими знаниями с товарищами по команде и менеджером. Вместо двусмысленного «повышения уровня» вы можете точно прочитать, что вы сделали и как вы к этому подошли.
4. Не отвлекайтесь
Когда вы начинаете работать над четко определенной инженерной задачей, вполне естественно отвлечься. Ситуация усугубляется для разработчиков с СДВГ (подождите, пока не читайте эту статью). Вы можете наткнуться на некачественный код и захотеть его реорганизовать, обнаружить, что работаете с той частью кодовой базы, которую вы не ожидали затронуть, или вам нужно изучить какую-то базовую техническую концепцию. Вскоре наступает дневной спад, и вы не уверены, чем занимались весь день.
Хотя иногда вы можете внести небольшие изменения или просмотреть информацию по ходу дела, не прерывая состояние потока, постоянное переключение контекста затрудняет выполнение глубокой работы. Выбросьте мысли и вопросы из головы, записав их в дневник, а затем обратитесь к ним позже.
5. Выбросьте заботы из головы
Вы также можете использовать журнал разработчиков, чтобы отслеживать свои эмоции. Утренние страницы — популярный метод очистки «беспорядка» в голове в начале каждого дня. Вы можете попробовать этот подход в своем журнале разработчиков. Вы нервничаете, тревожитесь, взволнованы? Запишите эти чувства на бумаге, чтобы очистить голову и уделить все свое внимание техническим проблемам.
Как вести журнал разработчика
Я рад, что ты все еще с нами. Теперь, когда вы, надеюсь, рады вести журнал разработки, вот как вы организуете и используете свой новый инструмент.
1. Настройте свой журнал
Выберите место, чтобы написать
Любой популярный текстовый редактор подойдет. Вы даже можете использовать свой редактор кода и просто создать новый текстовый файл или файл уценки (только не забудьте . gitignore файла). Что может быть быстрее, чем смена вкладок?
Не попадайтесь в ловушку, часами настраивая систему только для того, чтобы отказаться от нее, как только начнете работать, как, например, покупать лучший журнал только для того, чтобы понять, что вы не хотите писать регулярно. У вас есть место, где можно быстро напечатать? Хороший. Ты готов!
Хотя вы также можете использовать физический ноутбук, это, вероятно, не лучшая идея. Вы потеряете возможность связывать что-то и вставлять фрагменты кода, что может быть полезно. Переключение между экраном и ноутбуком также может нарушить ваш рабочий процесс.
Настройтесь на правильное мышление
Ваш журнал разработки — это ваш личный документ, в котором можно систематизировать и обработать ваши мысли. Текст должен быть ясным и читабельным для вас, но он не обязательно должен быть «хорошим» по чьим-либо стандартам. Стремитесь к составлению «списка дел по холодильнику», а не к «эссе по английскому для средней школы».
Если заметки имеют для вас смысл, вам должно быть удобно писать быстро. Не зацикливайтесь на форматировании, организации или формулировке. Вы можете обнаружить, что выбрасываете в свой журнал фрагменты кода или ссылки; могут быть опечатки, разные неопределённые идеи. Пока вы все еще можете ориентироваться в нем, это нормально! В любом случае эти вещи происходят у вас в голове; запишите их на бумаге, чтобы вы могли подумать.
Настраивайте по мере необходимости!
Для начала рассмотрите возможность разделения письма по дням. Каждый день записывайте свою цель (можно разбить ее на задачи) и краткое резюме. Вскоре мы обсудим, как с ними справиться.
Кроме того, не существует жестких правил организации журнала. У вас могут быть разделы для заметок 1:1, вещи, которые можно найти позже, умные названия для вашего будущего деревообрабатывающего бизнеса и так далее.
Главный вывод здесь заключается в том, что ваш журнал можно настраивать. Обязательно проверяйте, работает ли он у вас по ходу дела!
2. Прежде чем начать программировать
В начале каждого рабочего сеанса (это может быть дневной сеанс, сеанс по билетам или сеанс «помидора») определите цель сеанса, даже если она кажется действительно очевидной. Чего вы хотите достичь сегодня? Есть ли у вас ясная и четко определенная задача по написанию кода, которую необходимо выполнить? Вам нужно что-то изучить в кодовой базе? Вы занимаетесь прототипированием? Вам нужно проверить гипотезу? Как вы уменьшите двусмысленность?
В некоторые дни это покажется простым. В другие дни вы будете чувствовать растерянность, неуверенность или желание начать. Если вы чувствуете дискомфорт при формулировании своих мыслей, возможно, вы недостаточно ясно представляете свое решение. Хороший! Именно поэтому вы ведете дневник разработчиков.
Как и в случае с «резиновым уклонением», лучше продумать двусмысленность до того, как вы начнете программировать, а не пока вы находитесь в гуще событий. Вы можете думать об этом как о разделении задач или как о том, что вы надеваете шляпу архитектора перед тем, как надеть шляпу инженера. Когда вы пишете код или разбираетесь в коде, вы хотите иметь возможность сосредоточить 100% своего внимания на задаче, стоящей перед вами.
3. Пока вы кодируете
Напиши, когда застрянешь
Если вы обнаружите, что обдумываете проблему дольше минуты, запишите свои мысли в дневник. Если вы застряли в утомительном сеансе отладки, запишите все, что вы пробовали до сих пор. Так вам будет легче организовать свои мысли и обратиться за помощью, если она вам понадобится.
«Как, черт возьми, мне разделить этот компонент? Я попробовал, и возникли все эти побочные эффекты».
«Я сталкиваюсь со странной ошибкой TS. Я проверил импортированный интерфейс. Я попробовал использовать необязательную цепочку. Я пробовал использовать слово «любой» для всего».
Напиши, когда разберешься
Когда вы не застряли, запишите решение или логику, которая вас туда привела. Помните: не судите себя; просто напишите как дела. Это будет очень полезно для определения того, что сработает для вас в долгосрочной перспективе. «
ОЙ! Я могу переместить состояние в глобальное хранилище и просто получить к нему доступ из всех этих различных компонентов; была очень полезная статья от React Person I Like».
— Опять забыл про возврат , тьфу.
«Оказывается, у нас есть целый модуль для этого в app/src/etc, и он все время был в документации».
Выбросьте идеи, вопросы и задачи из головы
Работая над кодом, вы естественным образом будете генерировать идеи и вопросы. В большинстве случаев не стоит прерывать работу, чтобы заняться этим. Записывание этих задач поможет разгрузить ваш мозг и сосредоточиться на коде. Если задача четко определена, вы можете даже написать TODO прямо в коде . Но большинство идей не настолько детализированы, поэтому вам следует записать их в свой журнал разработки. Вы можете объединить их в отдельные разделы «Вопросы» или «Идеи» , чтобы просмотреть их позже.
Конечно, иногда вам нужно будет продолжить мысль — проверить другой файл, изучить новую концепцию или поискать синтаксис — чтобы выполнить текущую задачу. Но в большинстве случаев вы можете поискать информацию или даже добавить заявку на реализацию/прототипирование новой идеи.
4. Когда вы закончите свою задачу
В конце сеанса кодирования запишите, как все прошло без осуждения. Помните, это только для ваших глаз. Будьте откровенны.
Смогли ли вы выполнить поставленную задачу? Было ли что-то более сложным, чем вы ожидали? Вы неправильно оценили сложность задачи? Можете ли вы определить, что вас расстраивало или бросало вызов? Хотели бы вы сделать что-нибудь по-другому, когда вернетесь к этому завтра? Вас что-нибудь заблокировали? Сделал ли ты что-нибудь, чем гордишься? Короче говоря, сделайте свою собственную ретроспективу своего дня.
Советы для достижения успеха
Сделайте ведение дневника привычкой
Возьмите за привычку писать в начале и в конце каждого сеанса кодирования. Держите дневник поблизости; это всегда должно быть на расстоянии одной вкладки. У вас должна быть возможность проверить свои заметки или сразу сделать дополнительные заметки.
Иногда у вас может возникнуть соблазн пропустить документирование очевидного, но я призываю вас придерживаться этого. Вы не просто пишете больше; вы становитесь более внимательными к своему коду.
Ваш журнал разработки становится все более ценным, чем дольше вы его храните, поскольку начинают проявляться закономерности.
Будьте прямыми
Вам не нужно набирать количество слов. Скажите, что вы думаете, словами, которые приходят на ум, как можно короче. Не беспокойтесь о том, чтобы показаться умным или аккуратным. Никто не ставит тебе оценок. Это не стендап ; вам не нужно никого впечатлять (хотя это значительно облегчит стендап, поскольку вы сможете просто проверить свои записи).
Поскольку запись своих рассуждений заставляет вас раньше или позже столкнуться с двусмысленностью, формулирование своих мыслей может оказаться трудным. Но вам в любом случае придется с этим иметь дело, и вы не хотите отвлекаться от своего драгоценного внимания к кодированию, чтобы подумать о том, какую проблему вы решаете.
«Я не уверен, какой алгоритм поиска пути является лучшим и как их сравнивать. Собираюсь изучить лучшие из них, чтобы понять компромиссы».
«Ответ JSON имеет атрибут сеанса, но я не понимаю разницы между экспресс-сеансом, объектом сеанса сервера, а также концепцией сеанса и тем, что мы кэшируем во внешнем хранилище данных».
Подумайте о своих потребностях
Как я уже говорил ранее, ваш журнал разработки должен включать в себя все, что вам нужно для эффективной работы. Например, поэкспериментировав с «Утренними страницами» в личной жизни, я обнаружил, что полезно озвучивать свои тревоги и негативные разговоры с самим собой.
Я писал что-то вроде: «О боже, я не могу поверить, что уже третий день занимаюсь этой проблемой» или «клиент платит мне кучу денег, и я чувствую себя самозванцем», и я Я почувствую себя лучше после того, как сниму это с груди.
Это не гламурные мысли, но если они у вас все равно возникают, запишите их на бумаге, чтобы вы могли сосредоточиться, а не зацикливаться и размышлять во время работы.
Учитесь на своем опыте
В конце спринта, месяца или квартала выделите немного времени для просмотра своего журнала разработчиков. Вам не нужно читать мелкие детали того, что вы делали каждый день. Обратите внимание на то, где вы боролись и что вам помогло, и чего вы достигли каждый день.
Эти идеи очень полезны для:
- Понимание того, какой объем работы вы способны выполнить
- Ваши встречи 1:1 с вашим менеджером
- Ваши размышления о процессе оценки эффективности
- Командные ретро
- Чтобы поделиться с коллегами и руководителем, чтобы помочь повысить уровень вашей команды.
- Написание будущих постов в блоге или длинных статей.
- Ваш хвастливый документ для будущих разговоров о карьерном росте
Подумайте о том, чтобы записать свои выводы, полученные в результате размышлений, в том же журнале; вы можете назвать его «Выводы/уроки этого спринта/проекта/квартала». И снова это заставит вас задуматься о том, что вы делаете. Эти выводы сделают стендапы, ретроспективы и беседы один на один намного проще.
Подумайте о том, чтобы поделиться своими знаниями со своей командой и руководителем. Если у вас возникли проблемы с концепцией/инструментом/частью кодовой базы, скорее всего, ваши коллеги (особенно новые члены команды) тоже.
Будьте внимательны
Написание текста параллельно с вашей обычной работой по программированию может показаться совершенно другой работой, но если вы будете придерживаться этого, это станет вашей второй натурой и сэкономит вам массу времени. Гораздо лучше запутаться в одном файле в начале проекта, чем когда вы в середине проекта напишете кучу кода в нескольких файлах. Потратьте пять минут, чтобы спланировать свой день сейчас, вместо того, чтобы бегать по кругу позже.
Хороший журнал разработчика должен делать три вещи:
- Подтолкните вас к обдумыванию своих идей и планированию каждого дня, прежде чем вы начнете программировать.
- Заставьте вас более внимательно относиться к своим успехам и трудностям, чтобы вы могли повысить свой уровень.
- Очистите свой разум от всего, что мешает кодированию.
Попробуйте вести журнал разработки для вашего следующего проекта или спринта. Вы можете быть удивлены тем, насколько вы эффективнее!