Є кілька рівнів сіньйорності розробників – Junior, Middle, Senior, Team Lead. Чим вони відрізняються, за що кожен з них відповідає, і на яку роботу можна розраховувати на кожному рівні сіньйорності?
У багатьох випадках всі ці рівні малюються зі стелі, керівництвом або спеціально навченими людьми. Але при цьому існують якісь загальноприйняті стандарти галузі, давайте по ним пройдемося.
Що повинен уміти Junior?
Ні, відсутність контролю не скасовує звернення за допомогою до сіньйорним товаришам. Наприклад, якщо потрібно звернутися до якогось файлу, а він відсутній – що робити? Але все ж з найпростішими завданнями джуніор повинен справлятися самостійно, а не бігати радитися з кожним рядком. Тому що Junior Developer – теж девелопер. Програмувати треба вміти.
При цьому Джуніору не можна поставити задачу «Дізнайся, як тут краще побудувати архітектуру» або «Розберися, що хоче замовник». Це робота команди мідл.
Що повинен уміти Middle?
Що повинен уміти Senior?
Що повинен уміти Team Lead?
Дозвольте, – скажете ви, – але ж за це відповідає Прожект Менеджер! І так і ні. ПМ відповідає за реалізацію технічної сторони проекту. А ось тімлід відповідальний перед замовником за те, щоб розробка виконувала обумовлені функції і вирішувала зазначені бізнес-завдання.
Як же виходить, що людина не володіє цими навичками, але при цьому числиться Senior або Team Lead?
Дуже просто. Є таке поняття «маржинальність розробника». У сініорів і тім лідів вище зарплата, тому їх вигідніше продавати на аутстафі. Тому багато компаній правдами і неправдами прагнуть натягнути своїм розробникам грейд, щоб продати їх подорожче. Але так робити недобре, звичайно ж!