Блогер та розробник Джозеф Круз поділився цікавою звичкою, яка зможе допомогти розробнику в його роботі та розвитку. Як не дивно, ця звичка — ведення щоденника. Й він детально розповідає, чому це так важливо.
Пропонуємо вам переклад його його авторського блогу від нашої редакції. Далі — слово автору.
Я хочу розповісти вам про корисну робочу практику, яка дуже допомагає мені вже кілька років. Як не дивно, далеко не всі розробники нею користуються. Більшості це просто ніколи не спадало на думку. Давайте заповнимо цю прогалину і проведемо експрес-курс.
Ідея робочого щоденника проста. Коли я починаю працювати над новим завданням, я створюю новий текстовий файл у спеціальній папці. Туди я записую всі думки, які приходять в голову під час роботи над цим завданням:
Загалом, я зберігаю все, що є більш-менш корисним.
Розвантажити голову! Чим більше думок вам потрібно тримати в голові одночасно, тим менше у вас залишається ресурсів для мислення. Записування всіх планів і завдань – це основний принцип техніки GTD.
Це особливо актуально для розробників: зазвичай нам доводиться мати справу з дуже складними завданнями, які важко завантажити в голову повністю. Занотовуючи думки та ідеї в щоденник, ми звільняємо голову для роздумів.
Легше запам’ятовувати деталі вирішення проблеми. Для багатьох програмістів (і працівників сфери знань загалом) найпродуктивнішим режимом роботи є «потік» — повне занурення в одну задачу, тривала концентрація уваги на одній меті без перемикання на інші.
Однак рано чи пізно доводиться робити перерву і займатися чимось іншим (навіть домашніми справами), а через деякий час повертатися до поточного завдання. За допомогою щоденника можна швидко згадати, де ви зупинилися минулого разу і куди потрібно рухатися далі. Це економить час і сили при поверненні в потік.
Також іноді доводиться повертатися до старих завдань через місяці і роки, щоб повторити їх або хоча б дізнатися деталі зробленого. Через такий період голова вже не зможе втримати всі нюанси завдання. А з нотатками нічого не станеться. Зберігайте дрібні, цінні речі.
Наприклад, посилання, знайдені під час роботи. Або корисні фрагменти коду. Наступного разу, коли вам знадобиться подібний фрагмент коду, вам не доведеться відновлювати його з пам’яті. Ви можете знайти його в щоденнику, скориставшись пошуком.
Формалізуйте незрозумілу проблему — її легше вирішити. Багатьом відомий «метод каченяти», який допомагає вирішувати незрозумілі питання. Ви детально розповідаєте слухачеві про свою проблему (це може бути навіть проста іграшка), і часто виявляється, що мозок знаходить рішення, поки ви формулюєте проблему.
Цей підхід чудово працює і без слухача! Вам просто потрібно записати свою проблему в щоденнику; чим детальніше, тим краще. І це чудово, особливо для інтроверта: ти спокійно щось собі пишеш і сам знаходиш рішення. Не потрібно ні з ким розмовляти – це чудово!
Вирішення складної технічної проблеми часто нагадує блукання лабіринтом. Рухаєшся в одному напрямку — впираєшся в стіну, йдеш в іншому напрямку — натрапляєш на прірву. Дорогою знаходиш скарб у бічному тунелі, але не можеш одразу його взяти. Робочий щоденник – це карта лабіринту з усіма його поворотами, пастками та смаколиками.
Неважко помітити недоліки такого підходу. Однак вони не такі вже й погані!
Так, ведення щоденника займає досить багато часу. Не кожен може дозволити собі таку розкіш. Чи припустимо записувати свої плани в щоденник, коли вам терміново потрібно викотити фікс для розробки, що впала?
З іншого боку, для працівника розумової праці екстрений режим роботи є досить неприродним. У такому режимі складно робити все добре, а ризик припуститися помилки значно зростає. Помилки призводять до нових аварійних ситуацій, а звідти і до смертельного штопора недалеко!
У такі моменти краще пригальмувати, трохи подумати, чітко усвідомити причини проблеми і зробити все правильно. Не так вже й рідко буває, що перше рішення, яке спадає на думку, виявляється зовсім не правильним. Думаю, ви вже зрозуміли, до чого я веду: сповільнення при вирішенні проблем може бути не тільки нешкідливим, але й корисним. А щоденник в цьому тільки допоможе!
Впевнена, у багатьох читачів вже виникало це питання: «У нас вже є трекер командних завдань, хіба цього недостатньо для ведення журналу?».
У мене немає однозначної відповіді на це питання. Обставини у всіх різні, і застосовувати до всіх одне і те ж мірило було б неправильно. Я можу говорити лише за себе. Я дозволяю собі записувати в щоденник абсолютно все. Найнезначніші нагадування для себе, питання на кшталт «Я зробив це, що робити далі?», ключову фразу «Я веду себе як дурень» і так далі. Іноді таких записів буває десятки на день! Якщо я напишу все це в таск-трекері, мої колеги завиють від обсягу спаму і забанять мене назавжди.
Тому в трекер потрапляють тільки відфільтровані записи. Копіювати і вставляти, копіювати і вставляти. Дублювання зусиль є, але не таке вже й велике. Загальна користь від щоденника все одно переважує.
Мабуть, найсуттєвіший і найсерйозніший недолік. Звичайно, робота зі щоденником вимагає значних зусиль і уваги. Мозок опирається цьому з усіх сил. Якщо він щось і любить, то це економити енергію, хоча і не завжди робить це в правильних місцях.
У мене також були періоди, коли я здавався і тимчасово відступав від ведення щоденника. Але я все одно незмінно поверталася до цієї практики знову і знову, надто вже велика її користь!
Як зробити так, щоб лінь не заважала вам? У мене є кілька порад. Найголовніше — постаратися зробити ведення щоденника максимально зручним і приємним. Використовуйте улюблений текстовий редактор, скоротіть кількість допоміжних ручних дій, мінімізуйте незручності і зосередьтеся на головному — фіксації важливих моментів.
Досить добре допомагає і формальний підхід. Мозок чинить максимальний опір, коли ще немає жодних нотаток щодо завдання, але вже є в голові багато ідей, і хочеться швидко перевірити їх усі в дії. Дуже важливо в цей момент — на самому початку роботи над завданням — застосувати силу волі і нагадати собі: «У мене є правило — вести щоденник». Створіть файл і записуйте туди всі свої ідеї. Тоді решта нотаток буде набагато простішою.
Я також згадаю кілька додаткових прийомів, які допоможуть вам у роботі над щоденником.
Простого тексту не завжди достатньо, коли ми працюємо з кодом. Я сам використовую Markdown і цілком задоволений: синтаксис підтримується всіма популярними редакторами, зручно візуально виділяти заголовки, код, цитати тощо. Але я б остерігався нав’язувати Markdown читачеві. У цього формату є альтернативи, такі як Restructured Text, Wiki та Orgmode. Головне, що вимагається від формату — не дратувати при читанні і написанні — інакше щоденник довго не протримається!
Деякі операції при роботі зі щоденником відбуваються частіше, ніж інші. Наприклад, я звик починати кожен запис з позначки часу, щоб потім було легше орієнтуватися. Цілком очевидно, що вводити дату вручну щоразу (іноді десятки разів на день!) занадто виснажливо. Тут варто звернутися до можливостей текстового редактора, щоб полегшити собі роботу. Я звик працювати у Vim, і для нього є чудовий плагін під назвою Snipmate. Тепер мені потрібно написати слово time, натиснути Tab — і мітка часу генерується автоматично! Напевно, кожен просунутий текстовий редактор має подібні функції.
Чим довше ви ведете щоденник, тим ціннішою стає інформація, що зберігається в ньому. Не завадило б подбати про її збереження! Я налаштував автофіксацію в git’і та резервне копіювання в голий репозиторій всередині Dropbox за допомогою cron-u. Тепер ви можете спати спокійно і не боятися, що ваш щоденник зникне разом зі здохлим диском.
Це неочевидний, але дуже важливий пункт! Під час роботи над завданням багато речей здаються очевидними, тому вони можуть не потрапити в щоденник. Але проходить якийсь час, і весь контекст витісняється з пам’яті. Ми знову відкриваємо щоденник, бачимо уривчасті записи, але нічого не можемо згадати. Ми зможемо відновити лише те, що було записано.
Уявімо, що ми працюємо над веб-додатком і стикаємося з помилкою в ньому. Наскільки корисним буде такий щоденник? Було б набагато корисніше, якби запис містив конкретну сторінку додатку, проблемну кнопку на ній і текст помилки.
Я не претендую на першовідкривача цього методу. Досвідчені товариші успішно використовують його вже сотні років. Єдиною несподіванкою може бути думка про те, що робочий щоденник буде корисним для досвідченого винахідника і скромного, працьовитого програміста. Але це саме так.
Щоденник — це один з інструментів, який полегшує шлях до професійної майстерності. Кожен вільний вирішувати, чи використовувати його у своїй роботі. Буду радий, якщо моя стаття хоча б трохи збільшить кількість тих, хто готовий спробувати.
Блогер та розробник Джозеф Круз розповів, чому не варто писати ідеальний код та чому це…
Днями я завзято нила про щось ChatGPT (експериментую між сеансами з живим терапевтом). І от…
«Крутіть колесо, щоб отримати знижку до 50%!» «Натисніть тут, щоб відкрити таємничу пропозицію!» «Зареєструйтесь зараз,…
Дуже хочеться робити якісь десктопні апки. Сумую за часами коли всі програми були offline-first, і…
Надсилаючи криптовалюту, багато новачків ставлять запитання: як працюють комісії та чому вони відрізняються в різних…
Нова афера набирає обертів — ось детальний розбір того, як фальшиві потенційні роботодавці намагаються вкрасти…