Сразу хочу оговориться, что ничего не имею против Битрикс, считаю, что этот программный продукт имеет свою аудиторию и назначение, и от многих пользователей, которые работают с Битрикс, лично слышал положительные отзывы. Здесь буду излагать ситуацию, которая прилетает ко мне с определенной периодичностью, на протяжении нескольких лет, связанную с поиском работодателями специалистов по Битриксу. Пытался отдельно объяснять каждому HR, какую ошибку они допускают, но появляются через некоторое время новые ..., и всё повторяется.
Прежде всего надо понимать, почему работодатели контактируют со мной по этому поводу. Как я уже неоднократно указывал на этом канале (Антихрюня) - я занимаюсь WEB-программированием, с использованием, в том числе, и языка программирования PHP. Битрикс тоже написан на РНР, и чтобы вносить какие-либо правки, осуществлять доработки, надо как минимум знать этот язык. Приведу пример, одна недавняя встреча с работодателем, которая подвигла меня на написание этой Шпаргалки. На работном сайте появилась вакансия "РНР - программист" со следующими требованиями:
Вроде бы ничего не предвещало никакого подвоха, и мне показалось, что моих компетенцийй вполне достаточно, чтобы попытать судьбу :). Связался с HR и договорился о встрече.
Морально всегда готовлю себя к худшим вариантам развития событий, чтобы потом не расстраиваться, а то и в депрессию можно впасть - видел у многих друзей-знакомых такую проблему. Поэтому обратил внимание на отстутствие уровня оплаты, подумалось, что компания либо еще не определилась в цене на рынке (значит будут выпытывать сколько я хочу), либо не готова платить конкурентную зарплату и отлавливают тех, кто согласится на их заранее подготовленное предложение.
Но, подвох оказался в другом :)
При встрече на собеседовании девушка HR задавала мне много уточняющих вопросов связанных с моей трудовой биографией не отраженной в резюме (это и понятно, она ведь не специалист в ИТ, ей скорее надо понять адекватность кандидата), потом решила рассказать о вакансии, и ..., что тут же показалось мне странным, начала с конкретной з/п:
у нас заработная плата по это вакансии ... (много тыр.)
где подвох, стрельнуло у меня...
мы сейчас приняли от компании разработчика корпоративную систему Битрикс, разработанную для нас, и ее надо будет поддерживать и дорабатывать!!!
Вот и подвох, т.е. кто-то (какой-то разработчик) взял коробочный Битрикс, настроил стандартные функции, потом кто-то в компании все это дело принял (и вероятно хорошо оплатил), а теперь ищут на кого переложить ответственность за работу всего этого "чуда", плюс и устранять косяки дорабатывать - реализовывать нестандартные функции, которые не входят в коробочное решение. Сумма во "много тыр." сразу скукожилась в моем представлении, т.к. задача неадекватна сумме...
Естественно, что я отказался от такого "интересного" предложения. Правда HR рекомендовала, на всякий случай, пообщаться с их Директором IT, пообщался, и еще больше укрепился в своем мнении - нужен "козел отпущения" ответственный.
Подобную ситуацию с Битрикс наблюдаю довольно часто, можно сказать, что каждый год, а то и два раза в год, ко мне прилетает волна предложений по вакансиям Битрикс-разработчика. Причем сумма предлагаемой зарплаты раньше была неимоверно низкой, в последнее время, становится все более и более весомой. Хотя предварительные зарплатные предложения редко совпадают с реальностью, но тем не менее ситуация изменяется.
Вот наиболее типичная вакансия по Битрикс:
Когда в первый раз ко мне прилетела эта волна - каждое второе предложение было по Битриксу, я озадачился таким большим спросом и решил выяснить, что это за "зверь" такой :). Посмотрел пару видеороликов от разработчиков Битрикс. Они (видеоролики) мне показались настолько невнятными и туманными, что заключительные слова - "Если вам что-то не понятно, то обращайтесь к нам за консультациями", натолкнули на мысль - специально все "мутно", чтобы потом зарабатывать на консультациях.
Немного взглянул на ситуацию с кодом в Битрикс, и обнаружил, что идет рассогласование принятой стилистики и стандартов в Битрикс со стандартами продвигаемыми сообществом языка РНР.
Простой пример:
Cтандарт PSR (PHP Standards Recommendations или стандартные рекомендации PHP) предполагает несколько другой синтаксис подобной структуры кода:
Из этого простого примера видно, что разработчики в Битрикс не придерживаются стандартов языка PHP, и есть еще более значимые расхождения, чем приведенный здесь синтаксис (но это тема отдельной статьи).
К тому же, есть очень серьезные требования к серверным ресурсам у системы Битрикс:
получается очень интересная ситуация - большинство сайтов, которые создаются на Битрикс и занимают, как указано в рекомендациях, от 10 Гб, при создании на нативных языках могут занимать в 10-20 раз!!! меньше места. Также есть ограничения по применяемой СУБД, и много других дополнительных ограничений, которые создает эта система.
Встает вопрос, надо ли изучать все эти ограничения системы Битрикс, которые скорее мешают разработчику, а не помогают?
Одним из плюсов, который помог Битрикс продвинуть на отечественном рынке, является его возможность интегрироваться с 1С. Сейчас 1С фактически бухгалтерский стандарт в России и некоторых странах СНГ и включение в Битрикс функционала обмена данными с 1С, который не требует разработки/доработки, позволило захватить существенную долю рынка сайтостроения. Еще один важный момент сыгравший весомую роль в продвижении Битрикс на рынке - импортозамещение. Продукт отечественного производства, поэтому госструктуры более благосклонно воспринимают Битрикс для приобретения и использования, чтобы соответствовать требованиям законодательства.
Как я уже указывал в начале этой статьи, есть пользователи, которым Битрикс нравится и он их устраивает. У некоторых пользователей мне удавалось выведать уровень использования функционала Битрикса. Зачастую это были небольшие компании, которым сделали и установили Битрикс один раз, установили шаблонный макет, и он устроил их по дизайну и функционалу, наполнили некоторым содержимым о компании и бизнесе. Количество страниц на сайте этих компаний небольшое - около 30-50 страниц. Обработка данных в основном стандартная: получение заявок, загрузка/выгрузка в 1С.
Но на мой взгляд, использование функционала возможностей Битрикс реализовано на 5-10%, то есть эта система для таких компаний избыточна по своему функционалу, с таким же успехом можно было использовать и другие аналогичные системы, и здесь Битрикс ни в чем не выигрывает. Просто так удачно получилось, что разработчики убедили заказчика ставить именно Битрикс для решения бизнес-задач, и смогли настроить систему под заказчика приемлемым для него образом.
Теперь посмотрим с позиции разработчика. Как я уже указал, система накладывает определенные ограничения на использование ресурсов и функционала РНР, знакомство с этими ограничениями с одной стороны заставляет использовать только определенные функции языка, разрешенные в системе - сужает возможности программиста, не дает развиваться с учетом развития языка РНР, с другой стороны вводит свои понятия и сущности, которые в других системах не используются или используются в другом качестве/виде - это форматирует подходы к программированию у разработчика, локализует понимание внутри одной системы. В аналогию можно привести программистов 1С, которые пишут программы на встроенном языке 1С, с учетом требований системы 1С. Программистам 1С очень сложно работать с другими системами не только, да и не столько, из-за незнания других языков, сколько из-за подходов принятых в системе 1С - это особая среда и логика. Конечно что-то подобное можно сказать и о других фреймворках (Yii, Symfony, Laravel, Laminas, etc), здесь я хочу лишь поставить акцент на том, что система Битрикс имеет свои особенности и требует углубленного, а не поверхностного изучения, чтобы осуществлять в этой системе разработку и доработку.
Мне понравилось описание требований специалиста по Битрикс на одном из сайтов для разработчиков:
Что стоит выделить в этом описании:
- Битрикс-разработчик - программист с узким профилем деятельности, т.е. надо четко специализироваться на этой системе, углубленно изучать ее ограничения, и придерживаться стилистики программирования, которая, как было показано выше, отличается от стандарта PSR;
- Есть две группы программистов Битрикс, функционал которых кардинально отличается - собственно "разработчики" в среде фреймворка Битрикс, создающие новый (не стандартный) функционал, и "внедренцы", которые настраивают стандартные (коробочные) решения Битрикс под требования заказчика.
К сожалению, вакансии, за редким исключением, сваливают все требования воедино, хотят видеть отличное владение РНР и в тоже время отличное владение Битрикс, а это на практике все-таки не совсем одно и тоже - есть отличия. И еще один немаловажный нюанс - "один за всех!", т.е. специалист должен быть универсален, и "внедренец", и "разработчик", а таких людей скорее всего очень мало - отсюда и недостаток кандидатов (люди с опытом реально оценивают свои возможности) и рост зарплатных предложений в публикуемых вакансиях.
Мое пожелание HR-специалистам - четко формулировать потребности, подбирать для работы с Битрикс не просто программистов РНР, а тех, кто выбрал специализацию - изучение и работу именно с этой системой. Конечно, если вы столкнетесь с отсутствием откликов на объявленную низкую зарплату или слишком раздутый функционал, то будете вынуждены собирать всех, чтобы демонстрировать свою активность руководству, и возможно скрывать, что в компании стоит именно Битрикс, с которым надо работать программисту. Но это все вскрывается, и реальные, понимающие программисты, будут распространять не очень положительную информацию о вашей компании по сарафанному радио... Лучше, если информация компании будет прозрачной, а не закамуфлированной - это позволит не тратить время (а собеседования кандидатам не оплачиваются) и не будет формировать негатив вокруг вашей компании.