Как стать руководителем ИТ-команды за 5 лет

👨‍💻 Герой: Алек­сандр Шты­ков, 25 лет, Ива­но­во. Выпуск­ник МГТУ «СТАНКИН», факуль­тет инфор­ма­ци­он­ных тех­но­ло­гий.

🛠 Рабо­та: тех­ни­че­ский руко­во­ди­тель фронтенд-команд в «Дело­вой сре­де». Рабо­та­ет на уда­лён­ке, с 10 до 19–20 часов.

🧭 Рынок: тех­ни­че­ский руко­во­ди­тель в Москве — 237 вакан­сий

Алек­сандр Шты­ков за пять лет про­шёл путь от стар­то­вой пози­ции до уров­ня тех­ни­че­ско­го руко­во­ди­те­ля: в 2014 году устро­ил­ся в веб-студию контент-менеджером, а в 2019-м стал лидом фронтенд-команды в доч­ке Сбер­бан­ка. Алек­сандр рас­ска­зы­ва­ет о сво­ей карьер­ной лест­ни­це, навы­ках и тех­но­ло­ги­ях, кото­рые осва­и­вал по пути.

Уровень 1. Работа контент-менеджером и попытки верстать

Я учил­ся в Ива­но­ве в шко­ле с мате­ма­ти­че­ским укло­ном. У нас было мно­го инфор­ма­ти­ки, тогда у меня и появил­ся инте­рес к ИТ. В бака­лаври­ат я осо­знан­но посту­пил на факуль­тет инфор­ма­ци­он­ных тех­но­ло­гий в МГТУ «СТАНКИН».

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

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

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

У сту­дии был свой обра­зо­ва­тель­ный про­дукт, кото­рый рабо­тал по прин­ци­пу кар­то­чек: с одной сто­ро­ны вопрос, с дру­гой ответ, или с одной сто­ро­ны сло­во, с дру­гой пере­вод. Я эти кар­точ­ки запол­нял. Рабо­тал 20 часов в неде­лю, полу­чал 10 тысяч в месяц.

Как стать контент-менеджером (и зачем) →

Поми­мо кар­то­чек ещё помо­гал с дру­ги­ми зада­ча­ми, вёл соц­се­ти, зани­мал­ся SEO. Если наты­кал­ся в про­дук­те на баги, то заво­дил их в отдель­ную систе­му, так научил­ся делать баг-репорты: доно­сить до раз­ра­бот­чи­ков инфор­ма­цию как мож­но подроб­нее, что­бы им было про­ще всё почи­нить.

На рабо­те и в обща­ге вокруг меня было мно­го сту­ден­тов и моло­дых ребят, кото­рые что-то про­грам­ми­ро­ва­ли, так у меня появил­ся инте­рес к раз­ра­бот­ке. В ито­ге на вто­ром кур­се увлёк­ся сай­то­стро­е­ни­ем, начал учить HTML, CSS, PHP.

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

После это­го начал брать зака­зы на фри­лан­се по вёрст­ке маке­тов. В целом шло непло­хо, но не без шеро­хо­ва­то­стей. Напри­мер, из одной ком­па­нии, кото­рая зани­ма­ет­ся под­бо­ром ИТ-кадров, три меся­ца выби­вал 10 тысяч. В сту­дии тоже помо­гал с вёрст­кой, пра­вил неболь­шие бло­ки. Мне под­ня­ли зар­пла­ту до 15 тысяч, но я решил, что хочу боль­ше­го.

Уровень 2. Работа веб-мастером

В 2015 году я ушёл из сту­дии и попал в ком­па­нию, кото­рая зани­ма­лась eSIM — это сим-карта, кото­рая не при­вя­за­на к кон­крет­но­му опе­ра­то­ру, а под­клю­ча­ет­ся к локаль­но­му, когда поль­зо­ва­тель при­ез­жа­ет в новую стра­ну. Меня взя­ли туда веб-разработчиком.

Пер­вые впе­чат­ле­ния были пози­тив­ные. На про­шлом месте, в сту­дии, мы рабо­та­ли в полу­под­валь­ном поме­ще­нии жило­го дома в спаль­ном рай­оне, а тут — бизнес-центр А-класса. Зар­пла­ту пред­ло­жи­ли в два раза боль­ше, зада­чи — инте­рес­ные, слож­ные. Я вер­стал стра­ни­цы и настра­и­вал логи­ку рабо­ты с базой дан­ных, дора­ба­ты­вал стра­ни­цы сай­та. Собрал лич­ный каби­нет поль­зо­ва­те­ля, инте­гри­ро­вал CRM.

Работа веб-мастером: моё рабочее место в новой компании Моё рабо­чее место в новой ком­па­нии

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

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

В ито­ге изу­чал всё сам, искал реше­ния на Stackoverflow. Пом­ню, была такая про­бле­ма: надо было полу­чать дан­ные с сер­ве­ра, кото­рый жил на дру­гом домене. У него не был настро­ен CORS — поли­ти­ка сов­мест­но­го исполь­зо­ва­ния меж­ду раз­ны­ми источ­ни­ка­ми, — так что мои запро­сы не про­хо­ди­ли. На Stackoverflow уви­дел, что такое мож­но решить с помо­щью JSONP: оно предо­став­ля­ет спо­соб запро­сить дан­ные с сер­ве­ра не забо­тясь о кросс-доменных огра­ни­че­ни­ях. Я попро­бо­вал — сра­бо­та­ло. Таких задач было мно­го, при­хо­ди­лось во всём раз­би­рать­ся.

Моё резю­ме всё это вре­мя висе­ло в откры­том досту­пе, я его пери­о­ди­че­ски обнов­лял. И вот одна­жды мне позво­ни­ли и при­гла­си­ли на собе­се­до­ва­ние в дочер­нюю ком­па­нию Сбер­бан­ка — «Дело­вую сре­ду». Я схо­дил на встре­чу и в апре­ле 2016 года вышел туда вер­сталь­щи­ком.

Резю­ме Алек­сандра →

Уровень 3. Логика на JavaScript, фреймворки и препроцессоры. Рост от верстальщика до джуниор-фронтендера

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

В коман­де был опыт­ный раз­ра­бот­чик, кото­рый начал меня обу­чать. Мы с ним вме­сте про­грам­ми­ро­ва­ли, он объ­яс­нял мои ошиб­ки, пока­зы­вал новые инстру­мен­ты. Под его руко­вод­ством начал исполь­зо­вать gulp, пре­про­цес­со­ры CSS, вро­де SCSS. Учил­ся писать на чистом JS. Я быст­ро впи­ты­вал, закреп­лял дома по вече­рам и вско­ре дорос до пози­ции джуниор-фронтендера.

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

Руко­во­ди­тель решил, что на плат­фор­ме нуж­но исполь­зо­вать React — фрейм­ворк, кото­рый помо­га­ет соби­рать поль­зо­ва­тель­ские интер­фей­сы. Так что мне при­шлось быст­ро в него погру­жать­ся, что ока­за­лось неожи­дан­но слож­но. У меня был тех­ни­че­ский бэк­гра­унд, я учил­ся уже на чет­вёр­том кур­се, пони­мал осно­вы ООП, но здесь завис. Месяц смот­рел обу­ча­ю­щие видео, читал ста­тьи, пытал­ся вник­нуть в кон­цеп­цию. Посте­пен­но въе­хал. 

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

Логика на JavaScript, фреймворки и препроцессоры: в итоге в универе на конференции по современным веб-технологиям рассказывал про React В ито­ге в уни­ве­ре на кон­фе­рен­ции по совре­мен­ным веб-технологиям рас­ска­зы­вал про React

Как устро­ен React →

Уровень 4. Больше инструментов, код-ревью подрядчиков. Рост до мидла

В кон­це лета 2017 года появил­ся новый про­ект: Минэко­но­мраз­ви­тия и Сбер­банк реши­ли запу­стить обра­зо­ва­тель­ную плат­фор­му для мало­го биз­не­са.

Там пла­ни­ро­ва­лись отдель­ные моду­ли для ста­тей, видео, кур­сов, спец­про­ек­тов, каби­не­та поль­зо­ва­те­ля, адми­ни­стра­то­ров ком­па­ний, внут­рен­няя соци­аль­ная сеть и ещё мно­го все­го. Запу­стить­ся при этом нуж­но было до кон­ца года. В ито­ге коман­да раз­ра­бот­ки бук­валь­но за пару меся­цев вырос­ла до 40 чело­век, коман­да фрон­тов — до 8. Ещё око­ло сот­ни раз­ра­бот­чи­ков были в под­ряд­ных орга­ни­за­ци­ях.

👉 Когда не свя­зан­ные меж­ду собой коман­ды парал­лель­но раз­ра­ба­ты­ва­ют раз­ные части одной систе­мы, появ­ля­ет­ся риск того, что всё вме­сте про­сто не запу­стит­ся. Что­бы это­го избе­жать, наш тим­лид сде­лал опор­ную инфра­струк­ту­ру — биб­лио­те­ку для API и ком­по­нен­тов, кото­рую отда­ли под­ряд­чи­кам. В ито­ге все вход­ные и выход­ные дан­ные были регла­мен­ти­ро­ва­ны, сде­лать шаг вле­во или впра­во было невоз­мож­но.

Я к тому вре­ме­ни уже хоро­шо под­тя­нул навы­ки, разо­брал­ся с Реак­том, был на уровне мид­ла. Мне дове­ри­ли одну из команд под­ряд­чи­ков, что­бы я ревью­ил их код и при­ни­мал резуль­тат. Парал­лель­но я сам писал один модуль. Учил­ся ста­вить зада­чи, оце­ни­вать и при­ни­мать рабо­ту, делать код-ревью. 

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

Потом ока­за­лось, что запу­стить про­ект и сде­лать так, что­бы он был удоб­ным для поль­зо­ва­те­ля, — две раз­ные зада­чи. После запус­ка мы оста­лись рабо­тать толь­ко внут­рен­ней коман­дой и нача­ли раз­би­рать весь код и моду­ли, кото­рые у нас оста­лись. Фик­си­ли кри­тич­ные баги, дора­ба­ты­ва­ли клю­че­вые части систе­мы, настра­и­ва­ли про­цес­сы.

Во вре­мя рабо­ты над плат­фор­мой я общал­ся с опыт­ны­ми кол­ле­га­ми, решал слож­ные зада­чи, мно­го читал. С одной сто­ро­ны, погру­зил­ся в новые тех­но­ло­гии на фрон­те. Напри­мер, позна­ко­мил­ся с redux — биб­лио­те­кой для управ­ле­ния состо­я­ни­я­ми. С дру­гой, в целом стал силь­нее как про­грам­мист. Понял, что раз­ра­бот­ка — это не когда ты ком­ми­тишь в мастер, но и есть цик­лы QA, кон­ту­ры, CI/CD.

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

Уровень 5. Флоу разработки, больше ответственности. Рост до сеньора и тимлида

У плат­фор­мы, над кото­рой мы рабо­та­ли, мик­ро­сер­вис­ная архи­тек­ту­ра. Это зна­чит, что для раз­ных частей бизнес-логики был свой отдель­ный сер­вис. Напри­мер, сер­вис, кото­рый хра­нит инфор­ма­цию о кур­сах, или сер­вис, кото­рый рабо­та­ет с плат­ны­ми про­дук­та­ми. Всё это обща­ет­ся меж­ду собой и с фрон­том через REST API. Но из-за осо­бен­но­сти интер­фей­са исполь­зо­вать REST было не очень удоб­но.

Напри­мер, нам нуж­но пока­зать поль­зо­ва­те­лю кар­точ­ку видео­кур­са. Назва­ние и опи­са­ние лежат в одном мик­ро­сер­ви­се. Инфор­ма­ция об авто­ре в дру­гом. Рей­тинг — в тре­тьем. Дан­ные о том, доба­вил ли поль­зо­ва­тель курс себе в избран­ное, — в чет­вёр­том. Плат­ный ли курс — в пятом. То есть, что­бы отоб­ра­зить кар­точ­ку одно­го мате­ри­а­ла, нуж­но сде­лать мно­го запро­сов. А у нас раз­ные фор­ма­ты мате­ри­а­лов, кар­то­чек и несколь­ко плат­форм, кар­точ­ки на кото­рых отли­ча­ют­ся.

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

Я про­дол­жал осва­и­вать тех­но­ло­гии, в том чис­ле GraphQL, redux-saga, react native. К тому же глу­бо­ко погру­зил­ся в про­дукт, сво­и­ми рука­ми потро­гал уже почти все моду­ли плат­фор­мы. Это помо­га­ло общать­ся с биз­не­сом и под­дер­жи­вать дру­гих раз­ра­бот­чи­ков: я пони­мал воз­мож­но­сти и огра­ни­че­ния систе­мы, видел пути, кото­ры­ми луч­ше решать зада­чи.

В ито­ге я стал само­ход­ным: мог решать зада­чи, не под­клю­чая тим­ли­да. А он мог, в свою оче­редь, пере­клю­чить­ся на рабо­ту с менее опыт­ны­ми ребя­та­ми. Мне хва­та­ло ком­пе­тен­ций и ответ­ствен­но­сти брать на себя тех­ни­че­ские реше­ния. Зна­ние тех­но­ло­гий и спо­соб­ность само­сто­я­тель­но решать зада­чи при­ве­ли меня к уров­ню сеньо­ра. 

Напри­мер, вме­сте с одним бэкенд-разработчиком я пол­но­стью отве­чал за инте­гра­цию Apple Pay. Или была такая зада­ча: нуж­но было под­клю­чить к плат­фор­ме связ­ку с дру­гим про­дук­том — сер­ви­сом, на кото­ром пред­при­ни­ма­те­ли могут най­ти мен­то­ра или экс­пер­та. Я сам дого­ва­ри­вал­ся с раз­ра­бот­чи­ка­ми дру­гой ком­па­нии, как им нуж­но дора­бо­тать мето­ды, как и какие дан­ные мы будем отправ­лять.

Вес­ной 2019-го про­изо­шли внут­рен­ние изме­не­ния — почти всю коман­ду пере­ве­ли в дру­гую доч­ку Сбер­бан­ка, а я остал­ся: под­дер­жи­вать плат­фор­му и дру­гие про­ек­ты, соби­рать новую коман­ду. Быв­ший тим­лид тоже ушёл, и я занял его место — стал тех­ни­че­ским руко­во­ди­те­лем фрон­тен­да.

Уровень 6. Работа тимлида: меньше программирования, больше софт-скиллз

Сей­час у нас несколь­ко круп­ных про­ек­тов, в коман­де 15 чело­век, до кон­ца года пла­ни­ру­ем рас­ши­рить­ся до 20. Я стал намно­го мень­ше писать код, зато боль­ше — рабо­тать с людь­ми.

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

Напри­мер, бэкенд плат­фор­мы мож­но рас­смат­ри­вать как отдель­ный про­дукт и про­дви­гать по моде­ли BAAS — backend as a service. Для это­го мы гото­вим нашу про­слой­ку на GraphQL, что­бы ей тоже мог­ли поль­зо­вать­ся дру­гие ком­па­нии, пер­вый кли­ент уже есть. 

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

Кро­ме плат­фор­мы мы рабо­та­ем над неко­то­ры­ми дру­ги­ми про­ек­та­ми: сер­ви­сом уда­лён­ной реги­стра­ции биз­не­са, про­грам­мой для кор­по­ра­тив­ных парт­нё­ров Сбер­бан­ка, обра­зо­ва­тель­ным про­ек­том «Бизнес-класс» и дру­ги­ми, о кото­рых пока не могу рас­ска­зы­вать.

Как теперь: работа с командой

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

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

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

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

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

Как теперь: работа с бизнесом

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

Рань­ше с этим были слож­но­сти, зада­чи при­хо­ди­ли в абстракт­ном виде, без пол­но­цен­ных ввод­ных. Из-за это­го раз­ра­бот­ка рас­тя­ги­ва­лась: сна­ча­ла при­хо­ди­лось выяс­нять дета­ли, кото­рых потом всё рав­но мог­ло не хва­тить, и про­грам­мист делал не то, чего ждал заказ­чик.

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

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

Ещё отучился в Школе Менеджеров в Яндексе. Это тоже помогает находить общий язык с бизнесом Ещё отучил­ся в Шко­ле Мене­дже­ров в Яндек­се. Это тоже помо­га­ет нахо­дить общий язык с биз­не­сом

Как теперь: самоорганизация

Ещё при ста­рой коман­де отдел раз­ра­бот­ки нача­ли посте­пен­но пере­во­дить на уда­лён­ку. Сна­ча­ла мы рабо­та­ли из дома три дня в неде­лю, а потом и вовсе пере­ста­ли ходить в офис. Так что я рабо­таю пол­но­стью уда­лён­но уже два года, как и вся моя коман­да.

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

При этом соблю­сти баланс меж­ду рабо­той и лич­ной жиз­нью всё рав­но быва­ет слож­но, дома тяже­ло ото­рвать­ся от ком­пью­те­ра и поста­вить какую-то кон­крет­ную гра­ни­цу. Я начи­наю рабо­тать бли­же к деся­ти, закан­чи­ваю в 7–8. 

У раз­ра­бот­чи­ка резуль­тат рабо­ты виден — вот он писал код, вот гото­вый про­дукт. А у мене­дже­ра тако­го может не быть: вро­де рабо­та­ешь, а как понять, в чём твой вклад? Я посто­ян­но фик­си­рую, чем зани­мал­ся в тече­ние дня, это помо­га­ет видеть резуль­тат сво­их дей­ствий, визу­а­ли­зи­ро­вать рабо­ту. И не заси­жи­вать­ся лиш­ний раз, думая, что за день не сде­лал ниче­го полез­но­го.

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

Самоорганизация: по совету массажиста дома чередую фитбол и кресло По сове­ту мас­са­жи­ста дома чере­дую фит­бол и крес­ло
Самоорганизация: работаю с Бали Рабо­таю с Бали

Рекомендации для начинающих разработчиков

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

Тем, кто пла­ни­ру­ет раз­ви­вать­ся во фрон­тен­де, сове­тую не гнать­ся за фрейм­вор­ка­ми, а сна­ча­ла хоро­шо разо­брать­ся с чистым JavaScript. Я пони­маю моти­ва­цию мно­гих: за зна­ния мод­ных тех­но­ло­гий сего­дня пред­ла­га­ют хоро­шие зар­пла­ты, но если сра­зу изу­чать Vue или React, не разо­брав­шись с натив­ным язы­ком, то делать каче­ствен­ные и дол­го­игра­ю­щие реше­ния не полу­чит­ся.

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

Герой:
Алек­сандр Шты­ков

Текст:
Сла­ва Уфим­цев

Редак­тор:
Мак­сим Илья­хов

Кор­рек­тор:
Ира Михе­е­ва

Вёрст­ка:
Маша Дро­но­ва

Иллю­стра­ция:
Даня Бер­ков­ский

Соц­се­ти:
Олег Веш­кур­цев

Во имя и по зака­зу:
здра­во­го смыс­ла