NEW IPHONE XS 202
Кар'єра, Новини, Розробникам, Студенту

Хто такий сеньйор-розробник та як ним стати

20 Травня, 2020

На якомусь етапі кар’єри багато хто з нас замислюється про те, яке це – бути сеньйором, і що потрібно, щоб ним стати. Розберімось, що ж робить сеньйора сеньйором.

Але для початку озвучимо, що точно не є визначальним фактором

Попри те, що ви бачите в 95% оголошень про вакансії, тайтл Senior Developer не має жорсткої прив’язки до стажу роботи.

Як правило, чим довше людина працює, тим більше у ньї досвіду. У багатьох компаніях при визначенні рівня спеціаліста орієнтуються на стаж. Але кількість відпрацьованих років це не єдине, що визначає сеньйора. (Тут пригадується приказка-анекдот: «Мудрість не завжди приходить з віком: іноді вік приходить один»).

Взагалі проблема зв’язку досвіду зі стажем досить поширена у сфері розробки та часто призводить до невідповідності між завищеними очікуваннями та низькими результатами. Також вона може призводити до конфліктів всередині команди, наприклад, коли ваш новий сеньйор з 15 роками досвіду відмовляється працювати з іншими розробниками.

Що ж робить розробника сеньйором?

Я проаналізував відмінні риси розробників-сеньйорів, з якими стикався за свою кар’єру, яких поважав і якими захоплювався. Можу сказати, що в кінцевому підсумку все зводиться до чотирьох основних характеристик:

  • досвід,
  • лідерські якості,
  • наставництво,
  • технічні знання і вміння.

Звичайно, всі люди різні, і якісь риси в окремо взятого розробника можуть проявлятися більшою мірою, ніж інші. Але всі разом вони визначають, наскільки ефективно цей розробник може допомогти команді рости.

Розгляньмо кожен пункт докладніше.

Досвід

Досвід роботи зазвичай обчислюється в роках стажу, але це не дуже точний метод.

Досвід розробників так само унікальний, як і вони самі. Один розробник міг провести п’ять років на позиції, де йому доводилося інтенсивно працювати та щодня вирішувати складні технічні завдання. А інший міг всі п’ять років валяти дурня в невеликій компанії, де його єдиним обов’язком було оновлювати сайт раз в тиждень.

І останній варіант абсолютно не поганий! Зрештою, всі ми вибираємо власний шлях і відповідний для нас баланс роботи та особистого життя. Але не можна говорити, що п’ять років стажу в першому і другому випадку рівнозначні.

Як же визначати досвід?

Розпізнавання шаблонів на основі досвіду

У вас, як і будь-якого розробника, напевно був випадок, коли ви зіткнулися з якоюсь дивною помилкою. Вона могла бути пов’язана з JavaScript, webpack або навіть операційною системою – це не важливо, головне, що вона була абсолютно незрозуміла.

Але потім за допомогою колег або Google вам вдалося вирішити проблему. А три місяці потому ви займалися вже іншим проєктом, і раптом зіткнулися з точно такою ж помилкою. І вам вже не довелося гуглити, щоб розібратися з нею (як варіант – ви вже точно знали, що саме потрібно гуглити). Ви просто вже були знайомі з цим завданням, тому швидко його вирішили та рушили далі.

Ось такого роду досвід і відрізняє розробників-сеньйорів. Здатність розпізнавати шаблони помилок або успіху дуже сильно допомагає нам в професійному плані. Саме цей досвід сприяє просуванню одних команд, в той час як в інших справа може застопоритися.

Розпізнавання незнайомих речей

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

Але це не повинно лякати. Навпаки, це повинно надихати, адже у вашій сфері діяльності стільки всяких крутих штук, які можна (і потрібно) вивчити!

Однак при цьому важливо розуміти, як ваше знання або незнання чого-небудь впливає на вашу роботу і роботу всієї команди. Візьмемо приклад. Розробник поводиться так, ніби все знає і розуміє. Разом з командою він проробляє великий обсяг роботи. Але насправді він розбирався в питанні не так вже й добре, і через це були прийняті та реалізовані хибні рішення. Результатом будуть розлючені колеги та клієнти.

Незалежно від стадії, на якій ви перебуваєте, не бійтеся попросити про допомогу. Зізнайтеся у своєму нерозумінні, навіть якщо в команді немає нікого досвідченіше вас. Те, що ви єдиний сеньйор, ще не означає, що ви нічого не зможете навчитися у джуніора.

Намагайтеся об’єктивно оцінювати своє становище і свої знання: це принесе багато користі.

Лідерство

У старших розробників схильність до лідерства з’являється природним чином. Це не означає, що ви повинні неодмінно бути техлідом або саме за вами буде останнє слово при прийнятті рішень. Просто ви повинні бути здатні (хоча б на базовому рівні) штовхати проєкт вперед.

Розуміння всієї картини

Якщо вам доводилося працювати над проєктами в команді, ви знаєте, що кожен проєкт або окремий функціонал зазвичай мають цілий список історій (stories), які потрібно обробити, щоб завершити цей проєкт. І кожна така історія – окремий крок на шляху до великої мети.

Але якщо ніхто в команді не розуміє, яким чином всі ці окремі маленькі кроки ведуть до великої мети, у команди з’являються проблеми. Розробник-сеньйор повинен вміти бачити, яке місце кожного шматочка в загальній картині. Він повинен розуміти, чому кожна окрема історія написана з певними критеріями приймання. І навіть якщо сеньйор цього не знає, він повинен знати, як знайти відповідь і як донести його до команди.

Якщо ви не впевнені в напрямку, спробуйте відступити на крок назад. Постарайтеся побачити, де в цій головоломці місце для вашого шматочка. Таким чином ви допоможете команді просунутися до кінцевої мети.

Пряма допомога менш досвідченим членам команди

Коли ви здатні допомогти початківцям або просто менш досвідченим членам команди, такий крок буде цілком природним. Розробникам властиво забувати великий план картини. Але, як уже зазначалося, сеньйор повинен вміти постійно уявляти собі проєкт в цілому і розуміти, яке місце в цьому проєкті займають різні історії.

Допомагайте колегам, направляйте їх у вірному напрямку. І це стосується не тільки бачення великого плану картини; часом допомогу з окремими завданнями буде теж доречна.

Намагайтеся навчитися розуміти, коли у колег виникають складнощі з чим-небудь. Заохочуйте їх ставити вам запитання і допомагайте намацати вірний шлях (наприклад, коли робите рев’ю їх коду).

Наставництво

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

Сприяйте розвитку товаришів по команді

Ви можете бути 10-кратним розробником, але якщо ви все робите самі та не допомагаєте іншим зростати, це лише уповільнює просування команди. Люди часто витрачають багато часу, намагаючись знайти помилку або придумати рішення самостійно, в той час як їм істотно допомогло б, якби хтось із колег теж глянув на їх код.

Егоїзм погано позначається і на моральному дусі команди. Нікому не подобається відчувати себе самотньо, а для джуніора це тим більш прикро. Сфера розробки це величезний лякаючий світ. Якщо ви будете хоч трохи направляти колег, це допоможе їм працювати куди більш продуктивно. Крім того, таким чином ви зробите свій внесок у становлення більш щасливого і менш стресового оточення.

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

Пам’ятайте, що команда це цілісний організм. Святкуйте разом великі та маленькі перемоги. А якщо комусь важко, намагайтеся допомогти.

Поширення знань

У багатьох командах виникають складнощі з обміном знаннями між колегами. Всі ми сподіваємося, що якимось чином цю проблему можна вирішити, але за фактом вона часто залишається невирішеною. Що ж робити?

Візьміть за правило (приватне) ділитися тим, що знаєте. Ви тільки що переробили бізнес-логіку? Приділіть 30 хвилин на те, щоб провести всіх за новим кодом. Якщо комусь складно в ньому розібратися, попрацюйте з цією людиною в парі, поділіться своїм екраном.

До таких дій слід заохочувати та всіх інших. Представляючи колегам свою роботу, ви природним чином покращуєте і власні знання. А це корисно і сеньйорам, і тим, хто вперше відкрив редактор коду.

Технічні знання і вміння

Я навмисно залишив цей пункт наостанок. Я зробив це тому, що хоча технічні знання важливі, в становленні розробника-сеньйора є багато речей важливіші, ніж бути дуже хорошим фахівцем з якоїсь технології.

Здатність швидко просуватися вперед

Будучи розробником-сеньйором, я очікую від іншого сеньйора, що він швидше почне ефективно працювати з будь-чим, ніж джуніор. Якщо це експерт по JavaScript, я очікую, що він розбирається в основних принципах і шаблонах цієї мови.

Але якщо згадати про те, як важливо вміти розпізнавати невідомі тобі речі, не дуже розумно очікувати, що кожен сеньйор неодмінно розбирається у всьому. Тобто, я не вважатиму експерта по Ruby менше гідним тайтла сеньйора, якщо він не знає JavaScript. Але я все ж буду чекати, що він вміє застосовувати свої знання для вивчення іншої мови та написання коду іншою мовою.

Просування шаблонів

Найчастіше шаблон коду, який ви тільки що придумали, вже не новий. І це нормально! При написанні хороших програм не ставиться мета писати унікальний код для кожного рішення.

Завдяки цьому ми можемо проаналізувати свої колишні роботи та побачити, які рішення були вдалими, а які – не дуже. В результаті ми можемо знайти робочі шаблони для себе і своєї команди.

Шаблони начебто MVC (Model View Controller) стали популярними не без причини. Розробники постійно вчаться на узагальненому досвіді минулого і на досвіді колег, яким траплялося вирішувати складні завдання. Отримані знання вони можуть застосовувати у своїй роботі. Адже завдання не в тому, щоб кожен раз заново винаходити велосипед, а в тому, щоб вирішити виниклі проблеми та створити хороший продукт.

У нас у всіх свій шлях

Хто б що не говорив, а у кожного свій шлях. Мета цієї статті – надихнути вас, спонукати стати кращим розробником і зрозуміти, як ваша робота впливає на колег.

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

Тому, яким би не був ваш шлях, намагайтеся не забувати ділитися досвідом і допомагати колегам.

Читайте «Український Спектр» у Facebook та підписуйтесь на канал у Telegram.

«Український Спектр» в Telegram – коротко про головне один раз на день
Підписатись на канал

Ми у соцмережах:

Слідкуйте за UAspectr у Facebook або ж читайте усе найцікавіше у нашому каналі в Telegram