воскресенье, 27 марта 2011 г.

What is your developer's position?

"I seek Senior Developer position" - something like this begins Objective section in most CVs. The point is not that a company is looking for a developer precisely on such position and that the developer appreciated not only themselves but also other developers of this company, when he wrote his CV. In today post we will describe how to make this assessment developers and recruiters.
Я ищу работу на позицию Старшего Разработчика – как то в таком духе начинается графа Цель в большинстве резюме. Дело тут не только в том, что компания ищет разработчика именно на эту должность, а скорее в том, что разработчик, со своей стороны, оценил не только себя, но и других разработчиков компании, когда составлял резюме. В сегодняшнем посте, я хотел бы рассмотреть то, как делают такую оценку разработчики и рекрутеры.

The first thing we'll do is to decide who's who:
Для начала, давайте определимся, кто есть кто:

  • Junior Developer – 75% of his work should be controlled by team lead;
    Младший Разработчик – 75% его работы должен контролировать Тимлид;
  • Intermediate Developer – 50% of his work should be controlled by team lead;
    Разработчик Среднего Уровня (Intermediate Developer) – 50% его работы контролирует Тимлид;
  • Senior Developer – 25% of his work should be controlled by team lead;
    Старший разработчик – 25% его работы контролирует Тимлид;
  • Team Lead – 0% of his work should be controlled by team lead (only by project manager).
    Тимлид – 0% его работы контролирует Тимлид (отчитывается только Менеджеру Проекта)

Why does developer's position depend? Many said it was determined the knowledge, skills, experience, certifications, ability to solve tasks quickly and qualitatively, etc. It is also important previous job because the developers are trying to take a step up. But there is another side - a common level compared with other developers.
От чего зависит должность разработчика? Многие определяют это знаниями, опытом, сертификациями, умением решать задачи быстро и качественно и т.д. Но, так же важна и предыдущее место работы, потому что разработчики пытаются подняться вверх в карьерном и материальном смыслах. Но, есть и другая сторона – общий уровень по сравнению с другими разработчиками.

Assume that the developer is working on the Intermediate Developer position in medium-sized company in non the largest city and has choices:
Предположим, что разработчик работает на позиции Intermediate Developer в компании среднего размера в не самом крупном городе, и у него есть выбор:

  • Be Team Lead;
    Стать Тимлидом;
  • Be Senior Developer;
    Стать Старшим Разработчиком;
  • Be Junior Developer.
    Стать Младшим Разработчиком

Version of "Think up a brilliant idea, start a startup and take over as Team Lead or Program Manager (often all at once)" we will not consider because a topic for another discussion.
Версию «Придумать гениальную идею, создать свой стартап и взять на себя обязанности Тимлида или Менеджера Проекта (или все сразу)»мы не будем рассматривать, поскольку это тема для отдельного разговора.

I think you are a bit surprised that Intermediate Developer can take virtually any position!
Я думаю, вы немного удивлены тем, что Intermediate Developer может занять практически любую должность!

The script for the Team Leader may be next : developer starts to work hard on their knowledge and skills. I.e. he examines the challenges, attend conferences at international level, responds to the forums, gets a professional blog, writes articles in journals, actively participates in user groups, passes certification, creates open source project. The developer becomes a famous person at the level of his country. After this chance to become a Team Leader in the current and similar companies are greatly increased.
Сценарий для Тимлида может быть следующим: разработчик начинает усиленно работать над своими знаниями и навыками. Он исследует различные проблемы, участвует в различных конференциях международного уровня, отвечает на форумах, ведет профессиональный блог, пишет статьи для журналов, активно участвует в собраниях пользовательских групп, проходит сертификации, создает проект с открытым исходным кодом. Разработчик становиться известным человеком на уровне своей страны. После этого, его шанс стать Тимлидом в текущей или аналогичной компании существенно увеличивается.

With the Senior Developer is much easier. If the developer is not lazy, he gradually grows to Senior Developer. It is only a matter of time and effort that makes this developer.
В случае со Старшим Разработчиком все значительно проще. Если разработчик не ленивый, то он постепенно вырастает до позиции Старшего Разработчика. Это лишь вопрос времени и усилий, которые прилагает разработчик.

We turn to the most interesting part - how to turn from a Intermediate Developer to Junior Developer! No, it does not need to do nothing at work. Then you just get fired (do not say that I did not warn you)... One of the possible ways to get back Junior Developer is to get a job at a big foreign company. If the above-mentioned developer does not live in the U.S. and wants to go to Microsoft, for example, the command to Phil Haack, then the chance that it will take on the Intermediate Developer position is very small.
Мы подошли к самой интересной части, о том, как Средний Разработчик (Intermediate Developer) может стать Младшим Разработчиком! Нет, для этого не нужно ничего делать на вашей работе! Иначе вас просто могут уволить (и потом не говорите, что я вас не предупреждал) … Один из способов вернуться на позицию Младшего Разработчика – это получить работу в большой иностранной компании. Если вышеупомянутый разработчик не проживает в США, и хочет перейти в Microsoft, например, в команду Фила Хаака, то вероятность того, что он будет претендовать на должность Intermediate Developer – очень мала.

Only one conclusion - you need to always correctly assess your level in relation to those developers with whom you have to work.
Вывод напрашивается один: вам необходимо всегда правильно оценивать свой уровень по отношению к тем разработчикам, с которыми вы будете работаете.

The obvious question is how to assess the level of future colleagues?
Очевидный вопрос: как оценить уровень будущих коллег?

In case the commands that produce a public product and have an active web life, it's easy enough. For private teams I recommend to explore a public web site or can download a trial version of the product.
В случае команд, которые создают общеизвестные продукты и ведут активный образ жизни в Сети – это достаточно просто. Для непубличных команд, я рекомендую исследовать веб-сайт их компании или, по возможности – скачать пробную версию их продукта.

So, you write a CV to a specific position. At this point, I'm sure you've done it more than comprehended. But, unfortunately, usually the company interviews several employees at one workplace. There are cases where developers have come to the position below. For example, Senior Developer has reached the Team Leader level but sends a CV to the Senior Developer position. For it there are many reasons:
Итак, вы пишете резюме на конкретную позицию. На данный момент, я уверен, что вы делаете это более осмысленно. Но, к сожалению, как правило, компании интервьюируют нескольких человек на одно рабочее место. Бывают случаи, когда приходят на должность ниже текущей. К примеру, Старший Разработчик достиг должности Тимлида, но отправляет резюме на должность Старшего Разработчика. И на это есть множество причин:

  • The company does not have the Team Leader position at the moment;
    В данный момент у компании нет вакантной должности Тимлида;
  • The developer is afraid of accountability in higher position;
    Разработчик боится ответственности на более высокой должности;
  • The applicant clearly underestimates himself.
    Кандидат четко недооценивает себя.

Bad recruiter immediately take the candidate on the current position. The motivation:
Плохой рекрутер немедленно примет кандидата на текущею позицию. Мотивация такая:

  • Potentially reduce the price / quality ratio;
    Возможность сократить соотношения цена / качество
  • To stimulate other team members to improve their knowledge;
    Стимулирует других членов команды на улучшение их знаний
  • Eliminates the need to listen to other candidates.
    Устраняет необходимость выслушивать других кандидатов

A good recruiter will try to find a suitable place for this candidate. Perhaps in a related team. He can even deny him the following reasons:
Хороший рекрутер постарается найти подходящее место для этого кандидата. Возможно и в другой команде. А может даже отказать кандидату, исходя из следующих причин:

  • The team must work as a harmonious mechanism. And if one wheel more than others it iss possible failure of this mechanism;
    Команда должна работать как слаженный механизм. И если одно колесо больше других, то это может быть причиной возможного сбоя всего механизма;
  • The man who takes his place sooner or later to change it. Well, if it is within the team. In our case, there will be a new project where he can try himself;
    Человек намерен рано или поздно сменить занимаемое место. Возможно, занять другое место в команде. В нашем случае, скоро откроется новый проект, где он может испытать свои силы;
  • Need to find the best from Senior Developers, but not a Team Leader from Senior Developers.
    Необходимо найти лучшего среди Старших Разработчиков, но не Тимлида среди Старших Разработчиков.

Of course, the division into good and bad recruiter is conditional and depends on the company's goals and current status.
Конечно же, разделение на «хорошего» и «плохого» рекрутера является условным и зависит от целей компании и текущей обстановки.

Most often, however come the developers who have not reached an expected level. What to do with them? Again, try to look at the situation in different eyes. Bad recruiter doesn't just hire candidate. Good one asks yourself the following questions:
Однако, чаще всего приходят разработчики, которые еще не достигли ожидаемого уровня. Что делать с ними? Опять же, взгляните на эту ситуацию с разных сторон. Плохой рекрутер просто не наймет кандидата. Хороший задаст себе следующие вопросы:

  • Can we teach him? Does the company time and money now is it? (definetly, it is an option for Junior Developer. In practice, staff were grown on their own is the best);
    Можем ли мы обучить его? Можно ли затратить время и деньги компании на это? (Безусловно, это вариант для Младшего Разработчика)
  • Can we retrain him? (for example, ASP.NET Intermediate Developer decided to try out for Silverlight Intermediate Developer. It is important that people do not have to completely relearn from scratch);
    Можем ли мы его переподготовить? (к примеру, ASP.NET Intermediate Developer, решил стать Silverlight Intermediate Developer. Важен тот факт, что человек уже владеет множеством навыков и нет необходимости готовить его с нуля)
  • Can we find someone better for a given time? (deadlines, no comments).
    Можем ли мы найти кого-нибудь лучшего в данный момент времени (подошел дедлайн для проекта, без комментариев)

See the difference? Bad recruiter solves the problem fast and straightforward, good recruiter solves the problem efficiently and in the future.
Чувствуете разницу? Плохой рекрутер решает проблему быстро и просто, хороший рекрутер – эффективно с взглядом на будущее.

I hope that convinced you that the developer's position is not always easily determined. But if you're the developer, please to define it for your next job more clearly.
Надеюсь, что я убедил вас в том, что позицию разработчика не всегда легко определить. Но, если вы разработчик, пожалуйста, определите ее для вашего следующего места работы более четко.


Автор текста: Oleg Smirnov
Оригинал текста: What is your developer's position?
Перевод: Дмитрий Жарий

2 комментария:

  1. Хороший проект
    Больше всего нравится выбор статей.
    бизнес и IT, как раз то, что надо

    ОтветитьУдалить
  2. Спасибо, Antonym, я перевожу то, что мне самому интересно. Значит, у нас схожие интересы ;)

    ОтветитьУдалить