Я не мог не обратить внимание на интерес читателей этого блога к теме поиска работы, прохождения собеседований, карьерного роста и так далее. Ну а раз эти вопросы так актуальны, нет повода не написать еще одну заметку на смежную тему. Вы никогда не задумывались, почему мы хотим работать в одних компаниях и не хотим работать в других? Почему из одних хочется свалить уже в первую неделю, а из других нас ни за какие коврижки никуда не переманишь? Здесь я поделюсь своим субъективным мнением по этому поводу.
Начну с самого очевидного, с зарплаты. Зарплата должна быть достойной. Обратите внимание, не супер огроменной, а именно достойной, похожей на среднюю по рынку. Если программист видит на HeadHunter вакансию с требованиями, похожие на требования на его текущей работе, и зарплатой в полтора-два раза больше, не сомневайтесь, он найдет время сходить на собеседование. А это уже немалая вероятность, что сотрудника вы потеряли. И наоборот, если на жизнь хватает и зарплата достойная, никто не пойдет в незнакомую контору ради лишней десятки. Всех денег все равно не заработать.
Зарплата должна выплачиваться регулярно, без задержек, и периодически пересматриваться. Даже если сотрудник не занимается саморазвитием, не проявляет инициативы и так далее, то как минимум он заслуживает надбавки из-за инфляции. А здесь , например, приводятся вполне убедительные доводы в пользу надбавок даже просто «за выслугу лет». В любом случае, критерии повышения зарплаты должны быть прозрачными, чтобы все все понимали.
Соцпакет. ДМС, оплачиваемое питание, кофе, печеньки, спортзал, парковка, бесплатное посещение конференций и все такое. По моим представлениям, является довольно важным фактором. Допустим, вас зовут в другую компанию, где вы будете получать на целых 20к рублей больше. Но здесь вы имеете ДМС и хавчик, а там нет. Получается, придется платить самому, а это уже как минимум минус 10к. Остается десятка и страх неизвестности. К тому же, уже через несколько месяцев вам эти 10к надбавят здесь. Вывод — валить не имеет смысла. Вообще, я не специалист, но мне всегда казалось, что намного дешевле сделать ДМС и другие необходимые всем вещи в компании на всех сотрудников (потому что оптом), чем давать сотрудникам денег на покупку этих услуг. Сотрудники получают то, на что они и так скорее всего хотят потратить деньги, компания экономит. Win-win.
Довольно важным фактором может быть возможность посещать уроки английского языка прямо в офисе компании. Однако, по моим наблюдениям, со временем важность этого фактора ослабевает. Дело в том, что в какой-то момент КПД от занятий в группе сильно падает. Прокачавшись до определенного уровня начинает казаться, что, посещая занятия по английскому, вы тратите свое время впустую, и рано или поздно забиваете на них.
Офис. Те, кому однажды доводилось работать в шумном душном опенспейсе, вряд ли захотят когда-нибудь вернутся к таким условиям. Программисты ненавидят опенспейсы , а также вариации на тему опенспейс с высокими перегородками, типа почти как комнаты, и так далее. Потому что большинству из нас нравится чувствовать себя продуктивными, а работать в таких условиях невозможно. Соответственно, если у вас в офисе шумно и душно, используются дешевые китайские кресла, узкие столы и древние компьютеры, сотрудники будут от вас валить. Если тихо, есть нормальный кондиционер и так далее, то валить не будут. Комфортные условия работы — это очень важный фактор. Именно поэтому в заметке Какие вопросы должен задавать программист своему потенциальному работодателю я рекомендовал вопрос «А могу я взглянуть, где у вас работают программисты?» Еще один важный фактор — удаленность от метро. Переться летом полчаса по жаре, как несложно догадаться, удовольствие ниже среднего.
Уровень кровавости энтерпрайза. По моим наблюдениям, чем больше звонков по ночам, работы в выходные, идиотских ежедневных планерок, клепания говнокода, потому что «ааа, нам это нужно было вчера», тем больше текучка. И наоборот, если разработка идет спокойно и размеренно, никто не стоит над душой, спрашивая каждые пять минут «ну когда будет готово?», график работы довольно гибок, есть реальная возможность нормально переписать легаси говнокод, время от времени поработать удаленно и так далее, то программисты у вас будут работать долго и счастливо, получая удовольствие от работы, создавая хороший продукт и не теряя все волосы на голове к тридцати годам. Только не говорите, что так не бывает. Бывает, сам видел.
Коллектив. Никому не хочется работать с толпой идиотов, которых понабрали, потому что девять женщин, как известно, вынашивают ребенка за один месяц. И наоборот, если коллеги в большинстве своем нормальные люди, да при этом еще и хорошие специалисты, у которых всегда есть чему поучиться, то из такого коллектива и валить не хочется. Это, кстати, еще одна причина, почему программистов должны собеседовать другие программисты , а не приводить рекрутеры, типа «это %name%, теперь он(а) пишет код вместе с вами».
Нормальная инфраструктура. Имеется в виду, что если проект катится в продакшн по FTP , в качестве систем контроля версий используется в зависимости от проекта CVS, Subversion , Mercurial или Git , в боевом окружении зоопарк из Ubuntu, RHEL, Gentoo и OpenBSD, часть документации лежит в Google Docs, часть в MediaWiki, часть в чертогах разума, все программисты обязаны сидеть под Windows, писать код в Eclipse и для взаимодействия друг с другом использовать Mail.ru Agent, это очень, очень плохо. И наоборот, если весь код — в Git, на всех серверах — Ubuntu, все проекты собираются Jenkins’ом и катятся в бой при помощи deb-пакетов , программисты могут безболезненно выбирать ОС и текстовые редакторы по своему вкусу (соответственно, в компании не используется какой-то проприетарный VPN , у которого есть клиент только под Windows), тестирование автоматизировано и так далее, значит в компании все делают правильно.
А теперь пара слов о факторах, значимость которых сильно преувеличена.
Про интересные задачи я уже писал, их нужно уметь находить в текущем проекте, а не увольняться, потому что их якобы нет. Потому что на новом месте при таком подходе очень скоро тоже станет не интересно. Попробуйте лучше для разнообразия, например, взяться за «геморройную» задачу, которой больше никто не хочет заниматься, и начать думать над тем, как ее правильно решать. В любом серьезном проекте таких задач всегда с избытком.
Возможность поиграться с новыми технологиями. На работе нужно использовать стабильные, проверенные временем решения , а не пробовать новые игрушки за чужие деньги. Играйтесь дома, а на работе думайте лучше о том, как сделать, чтобы внезапно все не сломалось в продакте. Очевидное исключение, понятное дело, если вы видите, что стабильные и проверенные решения не справляются. Например, если вы уперлись на запись в PostgreSQL , возможно, часть данных можно переложить в Riak . То есть, возможность в случае необходимости использовать новые инструменты должна быть, но не нужно этой возможностью злоупотреблять.
Цвет зарплаты, хайлоад или не хайлоад, написано у тебя в трудовой «младший программист» или «ведущий инженер», существует компания год или десять лет, тысяча строк кода в проекте или миллион — не так уж важно, если подумать. Во всех этих случаях есть как сильные, так и слабые стороны. Главное — уметь видеть сильные.