Полезные рекомендации, как организовать процесс разработки программного обеспечения так, чтобы показатели эффективности и продуктивности выросли.
Время — ценный ресурс.
Рост эффективности на 1 час в день экономит 1 месяц в год.
Давайте посчитаем вместе:
1 час в день × 5 дней в неделю × 52 недели = экономия 260 часов в год.
260 часов ÷ 8 часов в день = 32,5 рабочих дня в год.
Таким образом, вы на месяц приближаетесь к повышению, отдыху или любому другому занятию на своё усмотрение.
Я разработчик. Мне удалось так наладить свою ежедневную работу, что последние несколько лет в среднем я успеваю сделать 1–2 запроса pull каждый день. Не то чтобы это наилучший показатель, и необязательно стремиться именно к нему, но он позволяет получить общее представление об эффективности работы.
Сегодня я хочу поделиться с вами рекомендациями, благодаря которым мне это удалось.
💡 Главная мысль
Оптимизируйте задачи, которыми вы занимаетесь по несколько раз каждый день.
Исходя из расчётов в начале статьи, каждые две минуты, сэкономленные за рабочий день в результате автоматизации или оптимизации процесса, складываются в один рабочий день за год.
Можете свериться с табличкой ниже, чтобы решить, имеет ли смысл оптимизировать ту или иную задачу. Но я этого не делаю. Я просто оптимизирую повторяющиеся ежедневные задачи и надеюсь на лучшее 🤞
В статье я рассматриваю самые распространённые этапы рабочего процесса в программировании. В каждом разделе описываю, что я делаю для повышения эффективности. Если вы уже обогнали меня по продуктивности — это отлично. Делитесь своими успехами в комментариях — я всегда стремлюсь становиться ещё лучше.
💻 Рабочий процесс / терминал Git
Здесь можно сильно сэкономить время тремя способами:
Автодополнение по истории команд.
Алиасы для быстрого набора команд.
Упрощение управления файлами в Git.
Автодополнение по истории команд
Я пользуюсь такой настройкой терминала:
iTerm2 — терминал;
Oh My Zsh и Zsh (аналог Bash) — руководство по настройке;
Starship — настройка командной строки терминала (необязательно, но всё-таки это полезно знать).
Если вы уже настроили Oh My Zsh, добавьте эти «плагины» в файл .zshrc
.
# in ~/.zshrc
plugins=(
git
zsh-autosuggestions <--- we'll talk about this one now
zsh-syntax-highlighting
)
С помощью подсказок Zsh-плагин предлагает дописать каждую команду, которую вы вводите.
Вот как это работает:
Чтобы принять предложение из подсказки, нужно просто нажать стрелочку вправо на клавиатуре.
Алиасы
Я добавил этот плагин к .zshrc
.
# in ~/.zshrc
plugins=(
git <--- we'll talk about this one now
zsh-autosuggestions
zsh-syntax-highlighting
)
Плагин Git добавляет алиасы для быстрого набора команд Git. Вот для примера несколько алиасов, которые я использую:
ga => git add,
gc => git commit,
gd => git diff,
gs => git status,
gps => git push,
gpl => git pull.
Это экономит мне по крайней мере пару минут в день. А за год эти минуты складываются в часы.
Ещё я добавляю пользовательские алиасы в .zshrc
.
Вот два примера:
# in ~/.zshrc
alias addalias='code ~/.zshrc' <-- open up zshrc file to edit it
alias reload='source ~/.zshrc' <-- reload zshrc file to apply changes
Нумерованные сочетания клавиш для файлов Git
SCM Breeze упрощает работу с файлами в Git: он помогает создавать нумерованные шоткаты для путей к файлам.
Можно называть файлы git add 2-3
или git reset 1
.
Приведу пример:
🖥️ Написание кода
Вот как лучше всего оптимизировать работу в редакторе кода:
Поиск кода в стеке. Допустим, вы ищете вызов метода. Вам нужно посмотреть, что за код у него внутри. Не используйте глобальный поиск cmd + F по имени этой функции, выискивая определение.
Вот что я советую:Создание сочетаний клавиш для поиска переменной, метода, класса.
Клавиша быстрого доступа в VS Code:
F12
.Сочетание клавиш в JetBrains IDE:
cmd + B
.
Навигация между файлами. Бывает, работаешь сразу в 2–3 файлах и в каждом файле нужно вернуться в определённую точку. Нажимая nav в верхней части редактора, ищешь нужный из 15 открытых файлов. Или работаешь в большом файле и всё время прокручиваешь его то вверх, то вниз. Но и здесь можно организовать работу удобнее.
Вот что я советую:
Создание сочетания клавиш для перехода вперёд или назад по истории файлов. Так вы сможете удобно перемещаться и между редактируемыми файлами, и между конкретными разделами в файле.
Сочетание клавиш в VS Code:
Ctrl + -
иCtrl + Shift + -
.Сочетание клавиш в JetBrains IDE:
cmd + option + ⬅️
иcmd + option + ➡️
.
Написание кода. С тех пор как несколько месяцев назад я начал пользоваться GitHub Copilot, он уже сэкономил мне целые дни. Он предлагает автодополнение почти для каждой строки кода, который вы пишете, включая тесты. Удивительно умный инструмент 🤯
📓 Сохраняйте интересное
В Notion я сохраняю на потом всю полезную информацию.
Тьяго Форте популяризировал этот подход как «создание второго мозга». Его суть в том, чтобы сохранять всякие полезности там, где вы будете их использовать, а не там, где вы на них наткнулись.
Вот скриншот двух моих папок с заметками в Notion:
Каждая тема объединяет заметки из множества разных статей, видео, книг. Так мне гораздо проще найти их, когда они мне понадобятся.
Я планирую рано или поздно активнее делиться их содержимым. Но многие мои статьи и так представляют собой доработанные версии заметок.
✅ Не загружайте мозг идеями и задачами
Назначение вашего мозга — анализировать и решать творческие задачи, придумывать идеи, а не хранить всё это в памяти.
Я сохраняю идеи и задачи в Todoist, а также пользуюсь функцией «Сохранить на потом» (Save for later) в Slack — и сразу же выбрасываю их из головы.
Раньше я всё время загружал себе мозг. Метался от одной задачи к другой, стараясь ничего не забыть, и на их выполнение уходило в десять раз больше времени.
А вот как выглядит мой список задач в Todoist ↓ Но вы можете организовать всё по-своему.
Неважно, какую именно программу вы выбрали. Главное — использовать мозг для решения задач, а не для хранения всей той информации, с которой вы сталкиваетесь.
👀 Визуальная коммуникация
Вот несколько примеров, как визуальный сторителлинг и донесение идей с помощью визуальных эффектов улучшают общение и делают его более эффективным:
удобно описывать pull request;
легко объяснить PM’у через сообщения в Slack, какое изменение вы хотите внести;
начальнику проще утвердить или подписать скриншоты, показывающие созданный вами новый флоу.
CleanShot сэкономил мне немыслимое количество времени. Он заменяет инструмент для создания скриншотов для Mac. Кроме того, инструмент:
позволяет быстро и просто редактировать только что сделанный скриншот, который потом можно отправить куда угодно;
умеет делать GIF и запись экрана — именно с помощью этого универсального инструмента я сделал все изображения для этой статьи;
имеет массу других функций — например, запись прокрутки или размытие части изображения.
Признаюсь, пример ниже — немного притянутый за уши. На самом деле, я часто снабжаю аннотациями скриншоты запросов pull, и на утверждение таких запросов уходит меньше времени:
Часто возникает необходимость на скорую руку сделать запись экрана для презентации или сообщения в Slack, которое я отправляю дизайнеру или начальнику, чтобы согласовать работу той или иной функции.
🔑 Вход на сайт
Менеджер паролей — полезное решение по двум причинам:
Это удобно: вам не нужно всё время вводить адреса электронной почты или пароли, он сделает это за вас.
Это безопасно: он сам создаёт сложные уникальные пароли для каждого сайта.
Когда вы входите на сайт с помощью 1Password, это выглядит так:
🪟 Работа с окнами
Разработчикам часто приходится переключаться между окном браузера, терминалом, редактором и мессенджером.
Раньше я тратил уйму времени, вручную меняя размер окон. А потом начал пользоваться специальной программой — Rectangle. У неё есть бесплатная версия, а платная стоит около $10. С её помощью можно быстро разместить одно окно справа, другое слева, а третье открыть на полный экран. Rectangle экономит мне уйму времени.
Ко всем этим лайфхакам я пришёл за шесть лет. Да, я медленно осваиваю новые инструменты, иначе чувствую себя перегруженным.
Если вдруг вы не пользуетесь этими инструментами — это не означает, что с вами что-то не так. В своей статье я просто поделился тем, что хорошо сработало у меня и сделало мою жизнь легче. Возможно, вы тоже возьмёте что-то себе на вооружение.
Буду признателен, если поделитесь в комментариях, чем сами пользуетесь для повышения эффективности работы, что работает для вас 🙏
Чтобы расти, нужно выйти из привычной зоны и сделать шаг к переменам. Можно изучить новое, начав с бесплатных занятий:
Или открыть перспективы с профессиональным обучением и переподготовкой: