Как стать эффективным разработчиком

Перевод статьи Луиса Сантьяго «How to become an effective software engineer».

Как стать эффективным разработчиком

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

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

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

Нужно знать, что имеет значение

Моим источником сведений были наставники – люди, занятые в индустрии технологий. Отдельной строкой идут книги таких авторов как Гари Вайнерчук, Кол Ньюпорт и Эдмунд Лау.

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

«Принимайте свои недостатки и стремитесь всё лучше осознавать, кто вы на самом деле»,

– Гари Вайнерчук.

Отдача

В книге «The Effective Engineer» Эдмунд Лау предлагает использовать в качестве мерила эффективности отдачу. Отдача это то, что вы получаете в результате вложенных усилий. Я считал это основным определением данного понятия. Формула Эдмунда Лау позволила мне взглянуть на это определение совершенно по-новому.

Формула для определения отдачи

Увидев это равенство, я понял, какие параметры влияют на отдачу.

До того как я начинаю разрабатывать код, я в целом имею представление, как реализация этого продукта повлияет на бизнес. Уже после реализации я могу измерить это влияние, отслеживая логи и показатели использования. То есть числитель в указанной формуле – осуществленное воздействие – непрямым образом нам дается.

Знаменатель это параметр, который мы больше всего отслеживаем. Время, потраченное на разработку. Мы можем измерить его до, в процессе и после выполнения задачи. Чем меньше значение этого параметра, тем больше отдача. Это означает более высокую рентабельность (ROI).

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

Чтобы этого достичь, мы должны научиться делать все эффективно.

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

В книге «High Output Management» бывший CEO Intel Эндрю Гроув поделился тремя способами повысить отдачу:

  1. Уменьшить время, необходимое для выполнения определенной задачи.
  2. Увеличить результативность действий.
  3. Переключиться на действия с более высокой отдачей.

А Эдмунд Лау дополнил это тремя вопросами:

  1. Как я могу совершить эти действия за более короткое время?
  2. Как я могу повысить стоимость того, что создается в ходе этих действий?
  3. Есть ли что-то другое, на что я могу потратить свое время, чтобы произвести нечто более ценное?

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

Установки

Установка на развитие

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

Идея принятия установки на развитие затронула меня больше всего. Главным образом, потому что это эффективный способ построения уверенности в себе. Бывают времена, когда мы чувствуем, как к нам подползает печально известный синдром самозванца. В такие периоды мы думаем, что наши навыки не соответствуют тому, что «они» ищут.

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

Развитие связано с постоянным обучением, а обучение имеет сходство с денежными инвестициями.

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

Ограничение количества работ «in progress»

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

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

Любые отвлекающие факторы, включая работу над несколькими задачами одновременно, уменьшают эффективность труда. Когда это возможно, я практикую «погружение в работу» – навык, который я почерпнул из книги Кола Ньюпорта «Deep Work» (русск. перевод – «В работу с головой»). Занимаясь разработкой, я делаю сознательное усилие для отключения всех отвлекающих факторов.

Вот как Кол Ньюпорт определяет погружение в работу:

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

Заключение

Применение установки на развитие относительно новых навыков позволяет нам лучше учиться и подталкивает к выходу из зоны комфорта.

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

Но с установкой на развитие я понимаю, что я должен вырваться из этого порочного круга обдумываний. Я понимаю, что я учусь постоянно. Я как продукт в бете – всегда «in progress». И я продолжаю двигаться по пути к эффективности.


[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх