Пока я работал на заводах, мир 1С сильно изменился. А мне ничего не сказали. Поэтому я, вернувшись в мир 1С, продолжил пользоваться старой терминологией и, в частности, устаревшим классификатором профессий.
Я считал, что главный в мире 1С – программист. Позже в жёлтый мир пришли новые профессии, из большой разработки – аналитики, архитекторы, разработчики, даже тестировщики. Но я, как упрямый баран, называл эти профессии ненужными, вынужденными. Это просто неудавшиеся программисты, говорил я. Не можешь программировать – иди в аналитики. Боишься разговаривать с директором – иди в разработчики. Вообще ничего не умеешь – иди в тестировщики.
Но даже такая картина мира 1С не могла до конца объяснить происходящего. Аналитиков, архитекторов, разработчиков, сервис-инженеров и даже программистов в нашей отрасли – мало. А людей – много. Кто они?
За два с лишним года наблюдений, исследований и выращивания 1Сников я понял, что подходящего названия их профессии сейчас просто нет. Оттого постоянно возникает путаница, завышенные ожидания, неверные направления подготовки. Поэтому пришлось придумать название профессии самостоятельно.
Разрешите представить: Слесарь 1С. Без стёба. Статья – абсолютно серьёзная.
Кто такой Слесарь 1С?
Слесарь 1С – это человек, который обслуживает базу 1С клиента. Больше всего он похож на деревенского сисадмина – знает немного обо всём на свете, но ничего в деталях.
Что в Слесаре от сервис-инженера: установка и обновление 1С, подключение онлайн-сервисов, вроде проверки контрагентов, загрузка классификаторов, перенос баз, публикация на веб-сервере и т.д.
Что в Слесаре от консультанта: запоминает, как делать основные типовые операции в 1С, и обучает пользователей клиентов. Не может провести обучение по целому контуру, только конкретной, достаточно узкой функциональности.
Что в Слесаре от аналитика: тут надо уточнить. У вас, в большом мире, аналитик – это серьёзный, умный, уважаемый человек. У нас, в мире 1С, аналитик – человек, который поговорил с клиентом, внимательно записал требования, добавил к ним шапку и подвал, и получилось ТЗ. Второй вид деятельности аналитика – искать в интернете ответы на вопросы по 1С.
Так вот, Слесарь 1С занимается второй частью – ищет в интернете ответы на вопросы. Благо, этого добра в интернетах сейчас навалом.
Что в Слесаре 1С от программиста: может выполнять несложные доработки, в том числе – делать заплатки (подробнее – ниже по тексту).
Профессия Слесарь 1С – собирательная, но не искусственная. Это – результат эволюции рынка 1С, его детище. Квинтэссенция самых востребованных компетенций.
Я не шучу. Самый востребованный человек на рынке 1С – Слесарь. Ибо 1С сама того хотела.
Изменения в 1С
Сразу скажу – ни я, ни кто другой за пределами фирмы 1С не знает, чего они там задумали. Закрытость – давно известная, понятная и всеми уже принятая черта вендора. Они до сих пор ЗАО.
Судить о намерениях можно только по результатам их реализации. Видишь, что происходит, и понимаешь – а, так вот чего они сделать-то хотели. Судить по планам, которые 1С иногда озвучивает, смысла нет – точность реализации очень низкая. Единственный чуть более достоверный метод понять, что изменится в 1С – инверсия отказов. Если кто-то из 1С говорит, что того-то и того-то НЕ будет, то с высокой вероятностью оно появится.
Итак, судим только по тому, что видим в реальности.
Главное: продукты 1С теперь – не фреймворки для адаптации по месту, а законченные решения. Законченные – это не более качественные, а более завершённые, цельные. Это не набор кубиков, из которых можно строить учёт на конкретном предприятии, а готовый продукт. Как браузер, MS Office или AIMP.
Есть на свете люди, которые пишут и отлаживают код браузера или макросах MS Office, но их доля – микроскопическая, по сравнению с количеством обычных пользователей. Соответственно, усилия разработчиков направлены, в первую очередь, на потребности большинства. А большинству нужен готовый к эксплуатации продукт. Этой же стратегии теперь придерживается 1С (с оговорками из первых двух абзацев).
Если у пользователя на заводе не работает браузер или ворд, никакой здоровый на голову ИТ-специалист не полезет в исходный код. Потыкается, поищет ответ в интернете, или просто переустановит. Ровно так же делает Слесарь 1С, потому что и у него голова в порядке.
Архитектура и код программных продуктов 1С не только способствует, но и подталкивает к подобному поведению.
Во-первых, 1С внутри становится всё сложнее. Ещё раз повторю: не качественнее, а сложнее. Не алгоритмы сложнее, а их расположение, разветвлённость, обвес, вызовы. Если раньше функциональность обеспечивалась 1000 строк кода, которые лежали в одном модуле, то теперь это 10 000 строк, разбросанных по 20 модулям.
Во-вторых, в коде 1С стала появляться самозащита от некачественных изменений. Буквально так: пишете вы код, который меняет настройки конечной формы отчёта или заполнение таблицы, а дальше лежит код 1С, который проверяет, соответствует ли результат исходной задумке разработчиков. И если не соответствует – ваши изменения не просто игнорируются, а удаляются.
В-третьих, код и архитектура решений 1С постоянно меняется, под действием разных сил. Тут и изменения в законодательстве, и изначально неоптимальная архитектура некоторых решений, которую вынужденно и постепенно исправляют разработчики, и постоянное пополнение обязательных ИТ-сервисов государства – в основном это маркировка.
Такая стратегия приводит к парадоксальным изменениям рынка услуг 1С. Слесарь теперь решает проблему быстрее и дешевле, чем программист.
Стоимость услуг
Как ни больно это признавать, но слесаря действительно решают большинство проблем клиентов быстрее и, соответственно, дешевле, чем программисты, аналитики или консультанты. Это вывод из практики, а не теоретическое умозаключение.
Когда я начинал работать программистом 1С, самым быстрым способом разобраться в проблеме была отладка. Потому что документация была так себе, интернета было мало, да и не было в нём ничего толкового. Плюс, что немаловажно – не было удалёнки. Надо было ехать пешком к клиенту и сидеть за компьютером вместе с ним. Хочешь, не хочешь – а полезешь в код. Не идти же в браузер при всём честном народе.
Сейчас Слесарь просто слушает клиента, кладёт трубку и идёт в интернет. Параллельно открывает копию базы клиента, чтобы ставить в ней эксперименты – пробовать лайфхаки, которые нароет в Сети. В код полезет в крайнем случае. И это будет очень дорого для клиента.
А может и никогда не полезет. Только не смейтесь, но я всё чаще слышу фразы вроде: «я попробовал всё, что нашёл в интернете, но, похоже, проблема где-то в коде, я не смогу разобраться».
Пока, на данный момент, очень опытный программист разбирается в проблеме быстрее Слесаря. И, разумеется, намного качественнее. Но очень опытных программистов 1С – единицы процентов. Есть клиенты, которые хотят работать только с программистами 1С, но они вынуждены стоять в очень длинной очереди.
Рынок же ждать не может. Поэтому рынком теперь заправляют Слесаря.
Сказанное актуально и для небольших конфигураций 1С, и для флагманов вроде ЕРП. Я в этом убедился за последние несколько месяцев. И, если честно, до сих пор не могу в это поверить, но Слесаря действительно справляются. И по соотношению цена/качество/скорость намного превосходят программистов, особенно начинающих.
И начинающим программистам от засилья Слесарей ой как не сладко.
Программист/слесарь
Молодым людям, которые приходят в мир 1С, сейчас приходится делать выбор, кем быть: программистом или слесарем. Большинство, правда, обманывают себя, полагая: вот поработаю слесарем, потом в программисты или разработчики подамся.
Корень проблемы кроется в KPI, принятых в фирмах-партнёрах 1С. Ключевой показатель там – закрываемые часы, т.е. время специалиста, оплаченное клиентом. От часов зависит и зарплата специалиста, и его увольнение за плохую работу.
Слесарь взлетает очень быстро. Буквально с первого месяца он начинает приносить прибыль, т.к. основной навык – поиск в интернете – он освоил ещё до трудоустройства. Чему-то целенаправленно учиться не нужно – просто работай, и опыт будет копиться. Постепенно научишься какие-то проблемы решать даже без интернета.
Программисту намного сложнее – надо и учиться, готовиться, тренироваться, и, одновременно – работать. В первые месяцы результаты работы программиста напрямую зависят от его способности к самообучению. Которая, увы, не так часто встречается.
Поэтому программистам тяжело, а слесарям – легко. Программисты это видят и серьёзно задумываются, правильно ли выбрали вектор развития. Сидящий рядом Слесарь хорошо загружен работой, пользуется успехом у клиентов, неплохо зарабатывает, сыт и доволен. Программист же, как настоящий студент – тощий и вечно голодный. Единственное, что его греет – мысль о будущих успехах и доходах.
Однако, вынужден огорчить – путь до толкового программиста исчисляется годами, с обязательной сменой нескольких мест работы. Поэтому многие сдаются и становятся Слесарями. Хотя продолжают называть себя программистами.
Но код пишут и слесаря.
Заплаты
Тут важно отметить ещё одно изменение в платформе 1С, которое сыграло двоякую роль. Во-первых – узаконило говнокод, устав с ним бороться. Во-вторых – как могло обезопасило продакшн от этого говнокода. Речь о механизме расширений.
Раньше, если ты хотел что-то поменять в конфигурации 1С, нужно было лезть в основной код и архитектуру. Исключения составляли внешние обработки, печатные формы и отчёты – это способы расширить функциональность, ничего не меняя в архитектуре и исходном коде. Так появлялись «в хлам перепиленные конфигурации», «необновляемые монстры» и «не смотрите в код, я был молод и глуп».
Сейчас появились расширения. Это конфигурации-заплаты, которые накладываются сверху на основную архитектуру, а пользователи работают с результатом компиляции основной конфигурации со всеми заплатами. Расширения позволяют вносить достаточно широкий спектр изменений – и типы объектов создавать, и добавлять свойства в существующие, и интерфейсы переделывать, и добавлять свои обработчики, и даже дополнять или заменять типовые куски кода.
Ключевое свойство расширений – они снаружи, как и положено заплатам. Соответственно, их можно в любой момент как модифицировать, так и отключить. Все, кто раньше боялся лезть в код, теперь могут это делать безбоязненно. В том числе – говнокодить.
Думать, анализировать, проектировать, прогнозировать больше не нужно – это ведь всего лишь заплата. Она не должна быть крутой, дорогостоящей, продуманной и оптимальной. Клиенту надо, чтобы она была дешёвой. Тем более, что все заказчики давно знают – расширения (почти) безопасны. Поэтому требования к их качеству равны нулю – «лишь бы работало».
Так вот, расширения-заплаты – практически единственный продукт программирования руками Слесаря. Обычно там – дичайший говнокод. Но он работает. И в большинстве случаев – безопасно. А если перестаёт работать – можно просто выключить или удалить. Как надоевшее приложение в смартфоне.
И чё, как быть?
Лично меня, вообще, этот вопрос беспокоит с одной единственной стороны: подготовка новых специалистов, ибо этим я, в основном, занимаюсь на работе. Я собеседовал людей, ища в них задатки программистов. Я давал задачи людям так, чтобы они научились программировать. Я обучал людей программированию в 1С. Я заставлял людей читать и писать код.
Теперь же честно признаю: я был не прав. Миру больше не нужны программисты 1С, по крайней мере в таком количестве. Все мои фантазии и высказывания на тему превосходства программистов над остальными профессиями в мире 1С – не более чем больные фантазии. Неправильно заставлять людей напрягаться годами, чтобы превзойти слесарей.
Поэтому, как ни прискорбно, я честно, без стёба и сарказма, признаю: ключевая профессия в мире 1С – Слесарь. Компаниям, которые занимаются 1С, надо пересматривать программы подготовки, процессы, требования к кандидатам, схемы мотивации, скрипты продаж, принципы управления и мотивации. И штатное расписание, разумеется.
Ну и начать называть всё своими именами.
А мне, и таким, как я – увы, придётся уходить из мира 1С. Программирования там скоро не останется.