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

Я разработчик программного обеспечения.

С конца 1990-х я научился программировать. (Сначала HTML, затем CSS. Я создал несколько веб-страниц, затем изучил PHP и MySQL. Я сделал несколько отличных веб-приложений, затем изучил Javascript. Затем Ruby, затем Rails.) К середине 2000-х я был полностью фрилансером. -time, создание веб-приложений для финансовых учреждений, автосалонов, журналов и производителей обуви. (Наконец, я научился программировать Mac, а затем и iOS.) Примерно с 2010 года я не оглядываюсь назад: теперь я полный рабочий день разработчик iOS. Я поставлял приложения для десятков клиентов, в том числе несколько в App Store.

Но до 2016 года я делал все в одиночку. Я был одиноким умником. Думай обо мне как о Железном человеке. Технологические ноу-хау Тони Старка - его суперсила, и хотя я не герой комиксов, мои навыки Xcode - следующая лучшая вещь.

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

Я больше не был супергероем-одиночкой. Я присоединился к Мстителям.

Как магазин-ботаник, я мог делать со своей работой все, что хотел. Конечно, проектов было меньше, так что я мог держать все в своей голове. Мой процесс рассмотрения компонентов работы был больше похож на внутренний монолог. Мой клиент почти всегда был одним человеком, и ему было легко показать отдельные части для одобрения или поправки. Если бы у меня можно было сказать, что у меня есть система управления проектами, это было бы не более чем чек-лист в Медведе. Если вы посмотрите на мои коммиты на GitHub, то увидите, что сообщения были бы примерно такими, как полный вздор и улучшенный пользовательский интерфейс, настройки модели данных, улучшенная синхронизация… с 85 обновленными файлами за последние несколько недель.

Такой образ жизни резко оборвался в январе 2016 года. И все это было связано с тем, чтобы набраться некоторой дисциплины в руках команды действительно профессиональных разработчиков, чей опыт и практика сделали меня похожим на рядового любителя; больше Feta Man, чем Iron Man.

Все началось с управления проектами. Мы использовали Pivotal, а позже перешли на Jira (увы!), Где работа была разрезана на части менеджерами проектов, которые поручили нам высокосегментированные фрагменты работы. Каждый тикет в системе - это ветка в нашем репозитории GitHub, где мы завершили свою работу перед отправкой запроса на вытягивание (PR) для основной ветки. Затем мои пиарщики внимательно изучили мои коллеги-разработчики. Все ошибки или проблемные места были зафиксированы, и я буду выкладывать обновления, чтобы исправить их.

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

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

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

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

Это те чувства, с которыми мне приходилось справляться в первые дни моей работы в этой новой команде. Больше всего я боялся, что один или несколько членов команды будут настоящими персонажами типа Линус Торвальдс: значительно превосходящие навыки программирования и совершенно не время для моих клоунских туфель. Но мне невероятно повезло, так как моя команда всегда поддерживала меня, терпеливо и щедро делилась своими знаниями. Они действительно хотели, чтобы я добился успеха.

Работая на них, я извлек несколько действительно важных уроков:

Имейте сочувствие

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

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

Простота побеждает

Во-вторых, я понял, что мне не нужно производить впечатление на товарищей по команде блестящим кодом. Простота побеждает. Я пишу код не только для себя и не только для своего будущего себя, но и для своей будущей команды и разработчиков, которых еще даже не наняли. Я работал над кодом с заголовками, содержащими имена кодеров, ушедших из компании год назад или дольше. И теперь, когда меня не было больше года, у меня на лице появляется улыбка, когда я думаю, что файл вроде AssociatedValues.swift с заголовком «Создан Аароном Вегом в 2016–02– 19 », может использоваться и сегодня. Я хочу, чтобы мой код был чистым и простым, чтобы другие могли сохранить его и работать с ним.

Иметь профессиональные стандарты

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

Отношение имеет значение

И, наконец, я понял, что отношение имеет значение. Я определенно не Тони Старк, но я осознал важность демонстрации уверенности и, что еще более важно, рвения, чтобы браться за работу, которую другие разработчики не хотят выполнять. У вас есть множество функций для аналитики? Я возьму это. Реализуете сложный, многоуровневый набор представлений прокрутки внутри вложенного настраиваемого элемента управления вкладками? Дай мне. Выслеживает неуловимую ошибку, которая вызывает наибольшее сбой, и никто не знает почему? Пойдем в окопы.

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

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

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