Вот бы HR использовали SOLID...

Сейчас говорил с одним уважаемым человеком... Говорили вобщем-то о другом, но затронули SOLID. К слову, это развитие одной идеи - раньше мне в голову не приходило так сформулировать концепцию. Но речь не про идеи в голове, а о вполне конкретном и у многих - наболевшем.

Итак...

SOLID - для тех, кто не в курсе, это пять принципов для написания хорошего кода. Их знают разработчики. Их не знают HR-ы. И это - проблема, потому что принципы - 100% рабочие! И рабочие они не только в IT, если рассмотреть их поближе.

Смотрите:

Принцип единственной ответственности (S)

Код должен делать одну вещь. И делать её хорошо.

Резюме должно рассказывать об опыте. Собеседование - проверять навыки. Тестовое задание - показывать мышление.

Но у HR это всё смешано в одну кашу. Резюме - это и опыт, и ожидания, и семейное положение, и наличие прав, и хобби, и "есть ли загранпаспорт". Собеседование - это и проверка знаний, и оценка личности, и тест на лояльность, и попытка угадать, не уйдёт ли он через месяц после того, как его наймут.

Как на кухне, где в одной кастрюле варят борщ, суп и компот одновременно. Вроде всё съедобно, но ни одно блюдо не узнать.

Принцип открытости/закрытости (O)

Код должен быть открыт для расширения, но закрыт для изменения.

Вакансия должна быть открыта для разных кандидатов, но закрыта для субъективных изменений.

Но HR часто пишет вакансию под "идеального кандидата", который существует только в их голове. Идеальный возраст. Идеальный вуз. Идеальный цвет волос. А потом удивляются, что такого нет. Или есть, но не откликается, потому что он не ищет работу.

Как будто кто-то ищет девушку с параметрами 90-60-90 и в придачу чтобы она ещё и "Дом-2" не смотрела.

Принцип подстановки Барбары Лисков (L)

Наследующий класс должен заменять базовый без изменения логики.

В найме это означает: если вы ищете "Senior PHP-разработчика", то любой кандидат с этим опытом должен рассматриваться одинаково.

Но HR отсеивают по косвенным признакам. Возраст, пол, город, название вуза, наличие загранпаспорта, а также "непонятное чувство" после разговора. Это нарушает логику. И отсеивает тех, кто мог бы стать лучшим сотрудником за последние несколько лет.

Как в том анекдоте, где на собеседовании спрашивают: "А вы умеете играть на тромбоне?" - "Нет" - "Тогда вы нам не подходите".

Принцип разделения интерфейса (I)

Код не должен зависеть от того, что ему не нужно.

Кандидат не должен проходить шесть этапов собеседований, если его можно проверить за два. Тестовое задание не должно занимать неделю, если нужен час. Но HR создают длинные цепочки. Скрининг, интервью с HR, техсобеседование, тестовое задание, интервью с тимлидом, интервью с CTO, финальное интервью с CEO, а иногда ещё и психологический тест, который составил стажёр из отдела кадров. А потом - тишина.

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

Принцип инверсии зависимостей (D)

Код должен зависеть от абстракций, а не от конкретных реализаций.

В найме это означает: решение о найме должно зависеть от требований к навыкам, а не от личности интервьюера.

Но HR нанимают "похожих на себя". Думаете нет? А как тогда отсев после первичного скриннига происходит? Кто-то умный, но некомфортный для HR - отсеивается. Кто-то удобный, но некомпетентный - проходит дальше. Потому что он "кажется впишется в корпоративную культуру".

Как в детстве, когда во дворе выбирали в футбол не того, кто лучше играет, а того, кто свой.

Согласитесь, было бы всем проще, если бы:

Переписать HR-процессы как код. По SOLID. Одна ответственность у каждого этапа. Вакансия открыта для разных, но закрыта для субъективных изменений. Одинаковые требования - одинаковое рассмотрение. Минимум этапов, максимум информации. Решение о найме - по навыкам, а не по личности интервьюера. Это не сложно. Это просто требует отказа от привычного хаоса.

Если бы HR использовали SOLID, найм стал бы быстрее, честнее и эффективнее. Но они используют водопад. И удивляются, почему он не работает.