24 December 2019

11 факторов и лайфхаков, которые повысят вашу эффективность

Development Management
В этой статье я рассмотрю устоявшиеся практики, которые помогают экономить такие ресурсы как время и энергию разработчика.

На исследование этого вопроса давно меня вдохновляла книга «Как Герман Греф учил слона танцевать», в которой описываются различные процессы оптимизации производства, такие как lean-менеджмент и кайдзен. В то время вобрав в себя большое количество функций и процессов, я столкнулся со своей 100%-й загруженностью, при которой ощутимо прослеживалось влияние различных факторов на мою производительность и приходилось выбирать и эксперементировать, чтобы выиграть время. Это было особенно интересно с точки зрения управления ресурсами, так как большая часть «произодства» находилось внутри одной головы.


Разберём факторы и лайфхаки, влияющие на производительность разрботчика:

1. Мощный компьютер

Основной необходимый фактор при работе.

В случае, если комп тормозит, например при отладке или переключении между IDE — суммарно, это может тратить в день очень много времени.
Надо учитывать, что при интенсивной разработке, у разработчика может быть открыто от 1 до 3 IDE, несколько браузеров (как правило тратят +2GB RAM) и в некоторых случаях SQL-сервер.

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

При TDD подходе приходится множество раз запускать отладку для тестирования реализаций — помножить каждый тест на зависание и получим значительную цифру времени вашего простоя из-за ожидания.

2. Вертикальная панель задач

Как правило, во время работы у .net разработчика может быть открыто несколько Visual Studio (1-2), PL/SQL Developer (1-3), Enterprise Architect (несколько диаграмм), Chrome (1-2), Outlook плюс к этому может быть открыто несколько писем и несколько документов (и часто нет времени это всё закрывать :) )

Если использовать горизонтальную панель, то скролл появляется уже при 5 открытых окнах, в случае вертикальной панели, можно уместить около 12 открытых окон, между которыми можно переключаться в 1 клик. (а это важно, когда у вас кураж или когда часто приходится переключаться между окнами)

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

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

3. Несколько мониторов (2+)

Сейчас уже сложно представить работу разработчика на одном мониторе. Один монитор для IDE, другой для браузера. Но это не предел. Если вы fullstack программист и выполняете разработку на нескольких слоях приложения одновременно — то вам хорошо может помочь 2+ монитора, например 4, чтобы развернуть на отдельных мониторах каждый слой, на котором приходится работать. Это упростит анализ кода и превратит переключения между окнами в повороты головы или глаз, что сэкономит энергию и сохранит концентрацию. Вы удивитесь от того, как вам проще и спокойнее станет выполнять масштабные изменения в проектах.

4. Системы хранения информации.

Под системами хранения информации я подразумеваю такие программы как One Note, Confluence или Enterprise Architect.

Такие системы помогут вам упростить накопление, хранение и структурирование информации, и доступ к нужной информации будет происходит намного быстрее, чем если бы вы хранили всё в виде файлов или например вкладок в Notepad++.

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

5. Скрипто-инструкции (Пользовательские скрипты)

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

Далеко не всегда существует качественная документация.

Сложно всё помнить наизусть, поэтому используйте такие шпаргалки, которые позволят вам незадумываясь выполнять необходимые действия, чтобы достич определённой цели. Например опубликовать сайт на linux хостинге, прменить миграции EF на windows хостинге, выполнить какой-то тест-кейс или настройку какой-то хитрой функциональности системы.

6. Логгирование работы с внешними ресурсами

Часто при разработке используются различные API, базы данных, которые находятся вне зоны ответственности разработчика, который выполняет задачу в своей системе. И нестабильность внешних сервисов может вызвать значительные ожидания. Делайте логгирование ошибок на контакте с внешними сервисами. Причём опирайтесь не только на то, что сервис будет возвращать исключения, но и на то, что он может не вернуть исключение, но вернуть некорректные данные. Такое обнаружение ошибок на самом низком уровне избавит вас от анализа и локализации ошибок на более высоких слоях приложения.

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

7. Task-трэкеры.

Разргрузите голову, не храните задачи в голове. Выпишите их в таск-менеджер. В крайнем случае это может быть обычный блокнот Notepad++. Если выбирать что-то специализированное, то самые популярные это Jira, Redmine, Asana. Из десктопных — MS Projects. Мобильные Trello или Todoist.
Некоторые команды организуют списки задач в Github через Issue.

8. Социальность

На перекор всеобщему мнению, наиболее успешные разработчики очень социальны и хорошо умеют задавать вопросы и излагать своё мнение.

Вообще теория о том, что существуют интровертные и экстравертные типы характера — это только гипотеза и более вероятно, что «интероверты» такие, потому что они просто более закрепощены и закомплексованы. Поэтому лучше не слушать психологов, а развивать свои социальные навыки и бороться с комплексами!

По крайней мере стеснительным разработчиком быть не выгодно. Слишком много времени вы будете тратить на то, чтобы самостоятельно разобраться.

Вы можете длительное время искать ответ на свой вопрос самостоятельно. А можете мнгновенно найти ответ обратившись к другому разработчику. Варианты разные:
— коллеги;
— друзья/знакомые;
— тематические форумы

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

Не бойтесь показать то, что вы чего-то не знаете.

Развивайте свою сеть профессиональных знакомств. В АйТи на удивление просто заводить знакомства благодаря большому количеству тем и вопросов, на которые можно общаться.

И не забывайте, задавая вопрос, про то, что вы используете чужую энергию, поэтому чувствуйте, когда человеку сложно найти ответ, а кого ответ «в кэше» :)

Помните, что человек, к которому вы обращаетесь, может бояться показать, что он чего-то не знает — почувствовав это просто переводите тему и ищите ответ в другом источнике, чтобы «закрыть гештальт».

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

9. TimeManagement. Делайте перерывы между непрерывной работой и отдыхом. Боритесь со стопорами. Pomodore

Вы наверняка уже замечали такой нонсенс, когда столкнулись с каким-то вопросом, с которым бьётесь и длительное время не можете найти решения. В таких ситуациях как правило возникает потеря во времени и вы можете просидеть так и не сдвинувшись несколько часов. Я такие ситуации называю стопорами и в них бессмысленно находиться больше часа, так как решение часто заключается в нахождении идеи, а идея приходит случайно. Поэтому делите свою работу на промежутки. У меня это 45 минут труда и 15 минут перерыва каждый час. Есть другая техника — Pomodore, она предлагает делать 5 минутные перерывы каждые 25 минут.

Для управления своим временем есть мобильное приложение InFocus

10. Отказ от наркотиков в особенности Алкоголя

Мозг — это основной актив программиста, поэтому разрушать его не выгодно. Голова от алкоголя может работать хуже ещё несколько дней, а вы этого даже можете не замечать, так как вам будет казаться это состояние нормальным.

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

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

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

11. Личная жизнь

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

Плохо и то и другое. Расскажу о минусе второй ситуации.

Вы будете обгонять коллектив и у вас слишком разовьется чувство значимости ваших рабочих моментов, которые могут стать не понятны большенству из-за того, что они не так значимы для всех. На этой почве между вами и коллективом может начать «искрить». В вашей голове начнётся возмущение из-за недопонимания и это будет отрицательно влиять на концентрацию внимания и будет сжигать вашу энергию.

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

В личное время должно быть минимум профессионального, даже посещение конференций и митапов под вопросом. Или хотя бы не больше 3х дней в неделю.

В остальное время обязательно спорт, йога, друзья, подруги, семья, дети.
Tags:околокомпьютерная темаоколожизненноепрактические советыметоды оптимизациилайфхакиоптимизация рабочего времени
Hubs: Development Management
-12
3.3k 29
Comments 54
Top of the last 24 hours