Как отличиться на рабочем месте

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

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

Посвящение своему ремеслу

В прошлом мне приходилось встречаться с некоторыми выдающимися людьми. Этих людей объединяла любовь к технологиям и своему ремеслу.

Один из них с большим энтузиазмом относится к MOOCS и имеет невероятный опыт прохождения онлайн-курсов. Он не только бывший коллега, он друг и наставник. У него были лучшие идеи, но, к сожалению, из-за непредвиденных обстоятельств сотрудничество закончилось. До сих пор жалею, что этого человека отпустили. Иногда трудно измерить влияние и мудрость, которые приносят люди.

Вы, наверное, заметили, что опытные люди часто пишут книги или статьи. Они возвращаются сообществу. Прочитав такие книги, как «Soft Skills: The Software Developer's Life Manual», «The Software Craftsman: Professionalism, Pragmatism, Pride» и другие, я пришел к выводу, что они действительно меняют то, как вы думаете о своей карьере разработчика программного обеспечения.

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

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

Большинство из нас тратит много времени на написание кода. Мы зависим от работы других. Лучшие разработчики программного обеспечения очень заботятся о том, как они пишут программное обеспечение. Они понимают, что код читают чаще, чем пишут. Разработчик понимает, что самая большая стоимость разработки - это не сама разработка, а сопровождение. Иногда лучше вообще не писать код (если он не приносит пользы). Разработчики должны не только измерять усилия. Вместо этого они должны ставить ценность на первое место (мелочи могут много значить для покупателя).

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

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

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

Коммуникация

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

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

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

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

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

Критически думает о вещах

Вы когда-нибудь работали с членами команды, которые никогда не решали никаких проблем? Как это сработало в долгосрочной перспективе? Похоже на идеальный проект, правда? Что ж, позвольте мне сказать вам, что такого идеального проекта не существует. Рано или поздно вы столкнетесь с проблемой.

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

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

И это сложно понять, например, как вы вообще замечаете, что кто-то перестает заботиться?

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

Если вы чувствуете, что не получаете много отзывов, вероятно, вы страдаете от этого. Потому что даже лучший программист время от времени делает крошечные ошибки. Без хороших отзывов они сразу попадают в разработку. И проблема в следующем: если вы не решите эту проблему, станет еще хуже!

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

А это очень важно мыслить критически. Не думайте, что все высечено в камне. Если вас что-то беспокоит, сообщите об этом. Если вы никогда не беспокоитесь о коде, вам следует посмотреть в зеркало. Задайте себе вопрос: перестал ли я заботиться? И не бойтесь быть честными с собой.

Найдите способ достичь целей друг друга. Не соглашайтесь, если знаете, что противоположная сторона ошибается. Задавать вопросы. Общайтесь, учитесь друг у друга и оставайтесь критичными (конструктивно) на протяжении всей карьеры. В тот день, когда вы перестанете быть критичным, вы станете еще хуже разработчиком.

Гордится тем, что они делают

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

Разработчик программного обеспечения гордится своим кодом. Спустя несколько месяцев тот же код все еще работает, как ожидалось. Они понимают важность работы в режиме тестирования. Когда весь код и все тесты выполняются быстро и стабильно, они знают, что сделали свою работу хорошо.

Узнав что-то во время своего путешествия, они делятся этим с сообществом. Они так горды, что рассказывают об этом другим.

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

Действует как профессионал

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

Разработчик программного обеспечения всегда профессионально решает проблемы. Они делают именно то, что говорят, и делают то, что обещали - не дают обещаний, которые вы не сможете сдержать. Для этого ремесленник общается. Будучи прозрачными и честными, они останутся заслуживающими доверия.

«Не давай обещаний, которые не сможешь сдержать» - Ана Джарвис

Будьте скромным советником своих коллег и клиента. Старайтесь объяснять вещи на понятном всем языке и избегайте сложных технических терминов. Будьте корректны и не высокомерны. Советуйте и убедительно излагайте свою точку зрения.

Иногда кто-то, например, менеджер, пытается нас во что-то уговорить. Ты не можешь закончить сегодня? Нам это действительно нужно. Если вы действуете непрофессионально, у вас проблемы. На карту поставлена ​​ваша надежность. Скажите им, что именно возможно, а что команда не может сделать. А если не знаешь, значит, не знаешь! Не давайте оценок, если не знаете точно, сколько времени это займет. Не торопитесь, качественная работа не строится на спешке.

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

Командный игрок

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

Рассмотрим следующие два сценария:

  • Ваш код привел к ошибке
  • Код члена команды привел к ошибке

Ну как бы ты поступил? Задумайтесь об этом на секунду.

Неважно, что говорится в истории Git; Git виноват нам не помогает. Клиента действительно не волнуют оправдания, он заботится о решениях.
Теперь легко выяснить, кто виноват, верно? Требуется определенное мужество, чтобы сказать клиенту, что команда допустила ошибку, и вы рассмотрите ее как можно скорее. У вас может возникнуть соблазн извиниться, но если вы это сделаете, сделайте это как команда. Потому что в следующий раз виноватым в проблеме может быть кто-то другой или, что еще хуже, вы!

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

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

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

Заключение

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

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