Очень часто слушатели курса и студенты не верят в свои силы и сомневаются, смогут ли они найти работу. А тех, кто из-за сомнений даже не начинает обучение – гораздо больше. В этой статье я постараюсь часть сомнений развеять, рассказать о том, какие задачи чаще всего решает разработчик 1С, и какие из этих задач сможет выполнять новичок в профессии.
Содержание
Основные вариации профессии программист 1С
Начать стоит с того, что работа программистом 1С имеет довольно много различных вариантов, и ниже я кратко опишу, что это за варианты. Итак, начнем.
Работа на внутренней автоматизации. Это распространенный вариант как среди торговых организаций, так и в сфере услуг и в производстве. Фронт работ самый широкий – от настройки торгового оборудования до рутинных доработок и поддержки. Говорить о каком-то едином подходе к автоматизации тут не могу – в разных фирмах разные истории. Где-то успешно внедряют канбан, agile и разработка четко по плану, а где-то – постоянные пожары, переработки и хаос. И увы, ни от размеров компании, ни от ее рода деятельности это не зависит. Условно, может и у торговой компании быть разработка по спринтам; может и у крупного холдинга быть постоянный аврал и срыв сроков.
Работа на внешних заказчиков – это всевозможные франчайзи, интеграторы, компании-автоматизаторы и т.п. Работа может быть как проектной, так и на сопровождение. Проект чаще всего имеет четкие сроки и задачи, например – внедрить 1С Документооборот за 6 месяцев. А сопровождение может включать обновление релизов, исправление ошибок, небольшие доработки “хотелок пользователей”, и т.п. В зависимости от модели оплаты труда тут можно выделить фиксированную работу на окладе, окладно-премиальную (например, с выплатой премий по итогам проекта), и почасовую.
Отдельно можно выделить такой класс компаний, который называют “бодишопы”, “галеры” и другими нехорошими словами. Речь идет о компаниях, предоставляющих услуги аутстаффа. Здесь как правило, разработчика прикрепляют к одному внешнему заказчику на достаточно длительный срок, и он занят на задачах именно этого заказчика. Плюс по сравнению с “солянкой” из мелких задач на разных проектах очевиден – не приходится распылять внимание и переключаться между порой совершенно разными задачами.
Работа “на себя” или фриланс. Не самый лучший вариант для новичков, это моя давняя позиция, и менять мнение я пока не собираюсь. Слишком велики риски скатиться в рутину, выгореть, приобрести плохие привычки программирования из серии “лишь бы заработало, и клиент отстал”. А вот опытные программисты 1С вполне могут находить себе подработку, или вовсе полностью перейти на фриланс.
Итак, резюмируя, можно кратко выделить следующие вариации профессии Разработчик 1С:
- Внутренняя автоматизация
- Проектная работа на внешних заказчиков
- Работа в поддержке на внешних заказчиков
- Аутстафф
- Фриланс
Какие еще специальности связаны с разработкой в 1С?
Далеко не всегда начинающие разработчики, получив первый опыт, хотят развиваться именно в нише программирования. Есть довольно много смежных специальностей, куда можно “вырасти”, или на которые можно переключиться, если роль разработчика 1С вам “не заходит”. Коротко пройдусь по тем, которые мне кажутся основными. И, кстати, как правило из перечисленных ниже бойцов состоит проектная команда.
Q/A (тестировщик). Специалист по тестированию занимается тем, что ловит баги в том, что “накодил” разработчик. Проверяет на соответствие техническому заданию, выявляет критические ошибки, как технические (при нажатии на кнопку платформа вылетает), так и в бизнес-логике (при нажатии на кнопку неверно рассчитываются суммы). Тестировщик должен хорошо разбираться в пользовательском интерфейсе, и владеть методиками тестирования. Знания 1С программирования не являются обязательными, но если они есть – это сильно повышает качество тестирования.
А вот если в компании внедрено автоматизированное тестирование, тут значение навыков программирования резко вырастает, т.к. тестировщик начинает эти самые автотесты разрабатывать и писать.
Аналитик. Это тот человек, который чаще всего общается с бизнес-пользователями, формализует технические задания, составляет функциональные и технические требования. Здесь уже знания 1С программирования могут пригодиться достаточно серьезно – например, нарисовать прототип документа, проработать архитектуру разработки (состав регистров, справочников и их реквизитов, и т.п.) гораздо легче, если аналитик владеет навыками 1С разработки, пусть и в небольшом объеме.
Специалист техподдержки. Техсаппорт принимает на себя основной удар – будь то на внедрении с нуля, или на длительном сопровождении. Заявки от пользователей фильтруются, анализируются и распределяются по исполнителям. И именно от работника техподдержки зависит адекватная оценка задачи, выбор исполнителя – например, передать аналитикам задачу на исследование бизнес-логики, и передать разработчикам задачу на исправление бага после релиза, а вот подсказать по типовому кейсу в настройках документа специалист техподдержки может и самостоятельно.
Руководитель проекта. РП – это уже сильно далеко от разработки, и навыки тут требуются другие – таймменеджмент, управление рисками, управление командой, в общем, много-много софт-скиллов. И кто бы что ни говорил, но от РП зависит очень многое в судьбе проекта – будут ли сотрудники эффективно взаимодействовать в команде, будут ли адекватно расставляться приоритеты, строиться дорожная карта проекта, привлекаться дополнительные ресурсы, и т.п.
Тимлид, или руководитель группы. Это тоже во многом про менеджмент, но достаточно часто тимлид является сильнейшим разработчиком в команде. Он может провести код-ревью, оценить предлагаемые решения, распределить задачи по участникам команды, но часто он же самые тяжелые участки берет на себя.
А теперь о грустном. Во многих компаниях 1С разработчик выполняет сразу несколько функций. Из личного опыта – чем меньше организация, тем зачастую больше обязанностей лежит на 1С программисте – вплоть до выбора железа, настройки ПК и условной “замены тонера в картридже”. И нередка ситуация, когда в IT отделе, условно говоря, 4 разработчика, и каждый целиком закрывает какое-то одно направление – например, исключительно ЗУП, или исключительно складской учет. Т.е. в рамках своего направления он развивается в достаточно узкой нише, но при этом охватывает все вышеназванные роли – он и тестирует, он и пишет документацию пользователям, он и общается с заказчиками, и т.д.
Основные классы задач, с которыми работает 1С программист
Внедрение с нуля. Как правило, на внедрение привлекаются опытные разработчики, и зачастую внедрение производится силами проектной команды либо IT-отдела, если речь о внутренней автоматизации. При внедрении происходит автоматизация предметной области, а следовательно, так или иначе производится обследование процессов, моделирование, проектирование будущего решения.
Интеграция с другими системами. К этому классу задач можно отнести создание / доработку правил обмена, обмены через com-соединение с другими базами 1С, http-сервисы, web сервисы, различные взаимодействия с внешними системами – например, использование брокера сообщений, такого как RabbitMQ, http запросы, использование скриптов powershell и многое другое.
Поддержка. В основном, это всевозможные рутинные задачи – раздать права новому пользователю, доработать отчет, настроить внешний вид формы документа, найти ошибку в учете, и т.п. Некоторые задачи требуют высокой квалификации, но значительная их часть – довольно простые, и сложности вызывает лишь их большое количество. классический пример – вал заявок от бухгалтерии в период сдачи отчетности в налоговую.
Разработки по внутренней автоматизации. Это класс задач достаточно большого объема, в отличие от обычного “сопровождения”. Например, разработать и внедрить новый документ, реализовать сложную бизнес-логику формирования отчетов, и т.п.
В зависимости от состава команды, могут разделяться между разными сотрудниками, или же все приходится делать одному разработчику. В последнем случае к нему предъявляются повышенные требования к умению проектирования и создания архитектуры решения. И случается так, что разработчик и общается с пользователями, и составляет ТЗ. и сам его реализует, и проводит тестирование.
Работа по ТЗ. Тут все значительно проще. Архитектор уже спроектировал решение, аналитик уже формализовал функциональные и технические требования, тимлид обозначил сроки и фронт работ. А разработчику остается быстро и качественно превратить ТЗ в код. Здесь от программиста 1С не будут требовать глубоких навыков разработки архитектуры, а упор больше сделан на аккуратное программирование по стандартам, внимание к мелочам и деталям, тщательное следование ТЗ.
На какие задачи могут посадить начинающего разработчика 1С?
Доработка печатных форм, доработка отчетов, поиск и исправление ошибок, рефакторинг старого кода, несложные обновления.
Итак, мы вкратце ознакомились с вариантами задач, которые выполняет разработчик 1С, и теперь настал черед ответить на вопрос – а какие из этих задач и в каком объеме могут доверить начинающему разработчику?
Доработка печатных форм и отчетов. Здесь и далее речь идет, разумеется, о достаточно простых доработках, которые не требуют, грубо говоря, анализа и рефакторинга запроса на 1000 строк. Настройка оформления, добавление новых колонок по известным алгоритмам и формулам, изменение макетов, вот такого плана задачи.
Поиск и исправление ошибок. Часто такое бывает, что после обновления релиза, внедрения какого-нибудь крупного блока, или разработки интеграции с какой-нибудь внешней системой, остается значительный фронт мелких и некритичных багов, которые вполне по силам начинающему программисту 1С. Более опытные коллеги переключаются на другие масштабные задачи или исправляют критичные ошибки, а новичок занимается поиском и исправлением менее значимых багов.
Рефакторинг старого кода. Похожая история с предыдущим абзацем – есть ряд задач, которые не очень сложны, но по тем или иным причинам откладываются в долгий ящик. Это т.н. легаси-код, технический долг, бэклог – и другие подобные термины. Вот такие задачи и могут поручить начинающему разработчику.
Несложные обновления. Сюда можно отнести как обновления полностью типовых конфигураций (на замке), так и обновление с незначительными доработками. Использование расширений, хранилища конфигурации, внешних программ для сравнения кода (Kdiff3, например), а также определенные подходы к доработкам позволяют упростить обновления, и от разработчика будет требоваться не столько большой опыт и навыки программирования, сколько внимательность, аккуратность и тщательное следование устоявшимся процессам обновления. Эти процессы, в свою очередь, могут быть оформлены в виде документации, чеклистов, и т.п., и включать в себя пункты, снижающие риски обновления – например, снятие резервной копии, тестирование перед переносом на продуктив, и т.д.
Выполнение небольших задач по ТЗ. В том случае, если от разработчика не требуется самостоятельно придумывать архитектуру доработки, а задача уже формализована достаточно детально – ее вполне можно поручить начинающему программисту с небольшим опытом.
Советы на первом месте работы
Ниже я даю некоторые рекомендации, которые могут помочь начинающему разработчику быстрее набраться опыта и избавиться от слова “начинающий” 🙂
Определите центр компетенции в вашей компании – старший коллега, начальник отдела или тимлид, например. И речь здесь больше не о том, что он научит вас хорошо кодить, а о том, что через более опытного коллегу вы погрузитесь в сам процесс разработки. Узнаете, кто за что отвечает, к кому по каким вопросам обращаться, какие задачи приоритетные, а какие – не очень, и т.д.
Освойтесь в информационной системе. Найдите и держите под рукой документацию, внутренние вики-системы, и прочие ресурсы, такие как Confluence или Notion. Добавьтесь в чаты и группы в корпоративных мессенджерах. Настройте корпоративную почту, если она используется, чтобы входящие письма автоматически распределялись по папкам. Делайте собственные заметки.
Проявляйте достаточную самостоятельность и активность. Старайтесь выполнять больше, чем требуется по заданию. Например, если нужно доработать документ – проверьте заодно и его юзабилити, и если есть предложение как улучшить интерфейс – обязательно предлагайте! Но тут важный нюанс – именно предлагайте, а не занимайтесь самодеятельностью.
Повышайте собственную квалификацию. Изучайте стандарты и методики разработки, осваивайте современные инструменты, такие как автотестирование и статический анализ кода, использование GIT, и т.д. Если задачи, которые вам поручают, слишком простые и рутинные – находите более сложные задачи самостоятельно вне работы (например, пет-проекты), или не стесняйтесь попросить более сложную задачу у тимлида или начальника отдела.
Общайтесь с сообществом. Зарегистрируйтесь на популярных среди 1С-ников площадках (например, infostart.ru), общайтесь на форумах, следите за публикациями, находите и подписывайтесь на ютуб и телеграм-каналы. Это поможет быстрее находить решения, получать помощь более опытных коллег, и находиться в одном инфополе 🙂
Не бойтесь спрашивать. Очень, прям очень распространенная ошибка среди новичков – они не знают как решить задачу, или не уверены, что правильно поняли ТЗ, но упорно молчат, до тех пор пока сроки не начинают поджимать. Общая рекомендация – попробуйте самостоятельно разобраться в задаче, приложите максимум усилий чтобы собрать нужную информацию. Но если не получается – спрашивайте! Обратитесь к коллегам, к РП, к начальнику отдела – по ситуации. Но не тяните до последнего.
Составьте план развития. В некоторых компаниях занимаются развитием сотрудников, в некоторых – нет, но это не повод пускать все на самотек. Если в компании есть практика развития персонала – составьте план развития. Какие сертификаты получать, какие навыки прокачивать, какие пробелы в знаниях устранять. Если же развитие отдано на откуп самим сотрудникам – все равно составляйте такой план! Анализируйте какие навыки востребованы, каких знаний вам не хватает, какие задачи даются с трудом – и прорабатывайте свои скиллы. Это очень полезная привычка, которая сослужит добрую службу на протяжении всей карьеры.
Что ж, на этом материал подходит к концу. Не бойтесь браться за новые задачи. Ставьте перед собой достижимые цели. Уделяйте время профессиональному развитию. В настоящее время спрос на хороших специалистов по 1С программированию весьма высок, и работу найти можно в самых разных отраслях и нишах. Ищите то, что вам ближе.