Зачем бигтеху своя школа кодинга для сотрудников: как в Контуре сделали образовательный проект на 430+ учеников
Привет, Хабр! Меня зовут Ксения Луткова, я ведущий инженер-программист в Контуре — занимаюсь разработкой модулей 1С для интеграции с сервисами Контура. А еще с 2019 года развиваю «Школу шКодинга» — внутренний проект, в котором внедренцы совместно с командой разработки учатся писать код для продакшена.
За семь лет школа прошла путь от разбора кода вшестером до собственного сервиса обучения на 1С с 11 курсами. Я написала этот сервис с нуля за три месяца, протестировала его, сама преподавала, а потом ко мне присоединились коллеги.
В этой статье расскажу про архитектурные решения, методику обучения и про то, как совместная инициатива разработки и внедрения выросла из сайд-проекта в часть стратегии компании.

Контекст: что такое внедрение в Контуре и при чём тут код
Контур — экосистема сервисов для бизнеса. Один из них — Диадок, система электронного документооборота: компании обмениваются через неё счетами-фактурами, актами, накладными.
Чтобы с Диадоком можно было работать из 1С, наша команда разработки создаёт модуль. Он завязан на API Диадока, покрывает типовые сценарии и работает у клиентов одинаково. Но бизнес-процессы у каждой компании свои — например, бухгалтеру нужно, чтобы при отправке документа автоматически подтягивались дополнительные данные из 1С. Для таких доработок существуют внедренцы — они пишут подключаемый модуль (ПМ), надстройку над основным модулем.
Код ПМ открыт — программист клиента может в него заглянуть. Основной модуль написан по стандартам фирмы 1С, а ПМ — внедренцем. Если код неоптимальный, тормозит работа в 1С, а клиенту кажется, что плохо работает Диадок в принципе — для него это единый продукт, а не три компонента по отдельности.
Внедренцы в Контуре — отдельная роль на стыке разработки и консалтинга. Они глубоко знают предметную область, понимают процессы клиента, умеют настраивать продукт. Но программирование для многих из них — не основная специализация, а инструмент: кто-то перешёл из поддержки, кто-то из аналитики или проджект-менеджмента, кто-то самостоятельно освоил 1С уже в процессе работы или в программировании совсем недавно. В какой-то момент ребята сами захотели разобраться в программировании системно, а не собирать знания по кусочкам.
Как зародилась идея «Школы шКодинга»
До 2019 года я занималась тем, чем и должен заниматься разработчик, — писала код модуля для Диадока. Потом ко мне пришли коллеги из внедрения этого же продукта: сказали, что хотят разобраться в программировании глубже. Мне всегда было важно, чтобы продукт был качественным на всех уровнях, поэтому я согласилась помочь. Команда и тимлид поддержали и выделили время, которое я посвятила организации проекта.
Обучать коллег из внедрения на абстрактных примерах не хотелось. Я взяла реальные подключаемые модули в Диадоке, собрала группу из шести-семи сотрудников, и мы стали разбирать код вместе. Выбрала групповой формат сознательно: когда несколько человек с разным опытом смотрят на фрагмент кода, кто-то замечает одно, кто-то другое, а вопросы, которые кажутся «глупыми», часто оказываются полезны всем. Параллельно разработала схему чтения запросов и чек-лист для написания новых модулей — ребята стали использовать их и в ежедневной работе.
Формат вышел за пределы одной команды — подключились коллеги из других городов и команда, работающая с крупными клиентами. Но по ходу разборов стало понятно, что ребятам не хватало фундамента в программировании, и без него двигаться дальше было сложно. Нужен был системный подход.
Так появилась «Школа шКодинга» — сначала как кодовое название программы обучения, потом как полноценный бренд.
Эволюция: от разборов кода до собственной платформы
Каждый следующий этап развития школы возникал из ограничений предыдущего.
Этап 1. Телеграм-бот (2019–2020 годы)
Проблема. Участников стало больше, а групповые разборы — это только один формат. Хотелось добавить самостоятельную работу: теория, задания, проверка знаний.
Решение. Я написала телеграм-бота. Через него шла рассылка материалов, заданий на программирование, викторин на знание модуля. Добавила балльный рейтинг с призами по итогам квартала.
Масштаб. Подключились внедренцы из других продуктов: EDI, Меркурия, Взаиморасчётов. Появились ещё три преподавателя — по одному от продукта.
Ограничение. При ~50 учениках бот начал сбоить: часть ответов терялась, массовая проверка заданий стала неудобной. Плюс материалы с очных обучений приходили на почту, записи — в другое место. Чтобы найти нужную информацию, приходилось смотреть в нескольких источниках.
Этап 2. Свой сервис на 1С (2020 год)
Проблема. Бота было недостаточно для желающих учиться, материалы разбросаны, преподавателям неудобно работать.
Почему не готовое решение. Я посмотрела, какие платформы для построения образовательных программ есть на рынке и внутри Контура. Готовые LMS не закрывали наши потребности: в них много лишнего, мало нужного.
К тому же, при использовании готового сервиса существенно увеличились бы трудозатраты: первоначальные на изучение архитектуры и придумывание, как встраивать свои объекты, а ещё регулярные — на последующие обновления (необходимость перетаскивать свои доработки на обновления вендора). И, помимо затрат на оплату моего труда, потребовалась бы покупка дорогостоящей лицензии на сервис.
Так я пришла к тому, что нам нужна собственная платформа с конкретным набором функций, который мы могли бы быстро дорабатывать сами.
Решение. Написала сервис с нуля на платформе 1С, самостоятельно. На всё ушло три месяца. Вот как это выглядело по шагам:
|
Этап |
Что делала |
|
Концепт |
Продумала объекты и связи между ними в xMind. Ключевое требование — универсальная архитектура: тесты и опросы должны работать и отдельно, и внутри итераций и курсов; материалы — переиспользоваться между активностями. |
|
Прототипы |
Делала сразу на 1С, а не в Figma — чтобы интерфейс был приближен к конечному и наработки можно было использовать при разработке. Прототипы прошли юзабилити-тестирование на двух учениках и ревью от преподавателей. |
|
ТЗ |
По итогам обратной связи — полноценное техническое задание на все функции сервиса. |
|
Разработка |
Самый трудоёмкий этап. Интеграция с подсистемами БСП, отправка встреч и приглашений в Outlook из 1С, отправка сообщений в Telegram из 1С. |
|
Альфа-тест |
Прошла экспресс-курс по тестированию ПО, разработала сценарии, протестировала всю функциональность сама. Я была разработчиком и тестировщиком в одном лице — при обнаружении бага тестировщик во мне радовался, а разработчик грустил. Зато оба ликовали после фикса. |
|
Бета-тест |
Отдельные краткие сценарии: тестировали те же ученики, что участвовали в юзабилити. |
|
Подготовка к запуску |
Руководства пользователей (для ученика и преподавателя), настройка сервиса, создание учётных записей, массовая рассылка о старте. |
Немного о том, почему я решила писать сервис самостоятельно
Может показаться странным — пилить целый сервис в одиночку, когда рядом команда. Но я понимала, что с командой выйдет дольше. Обучение шло квартальными циклами, к новому кварталу сервис должен был работать — и у меня было три месяца.
С привлечением других разработчиков ушло бы от полугода: пришлось бы объяснять сложную взаимосвязанную архитектуру, планировать разделение блоков, проводить синхронизации и код-ревью.
При этом для остальных преподавателей школа — сайд-проект, в приоритете основная работа. Если бы у кого-то возникли срочные задачи, доработки по сервису отодвигались бы, а из-за взаимосвязей в системе другие участники простаивали бы. И ещё один аргумент: пока преподаватели заняты разработкой — ученики не обучаются.
Этап 3. Курсы (2020 год)
Проблема. За первые кварталы накопилось много материалов по основам программирования. Они выдавались порционно, но новым сотрудникам были недоступны — нужен был способ сохранить и структурировать знания.
Решение. Скомпоновали накопленные материалы в пять авторских курсов по основам программирования в 1С. Каждый курс — теория, тесты для самопроверки, опрос для обратной связи. Привязки к конкретному продукту нет, чтобы обучение подходило внедренцам из разных команд. Проходить можно самостоятельно, в любое время.
Этап 4. Потоки обучения (2021–2022 годы)
Проблема. Самостоятельного прохождения курсов новичкам не всегда хватало — без продуктового контекста и живой обратной связи было сложно.
Решение. Придумали формат потоков — квартальный цикл, в котором сочетаются разные виды активностей:
-
Курс — самостоятельное изучение теории.
-
Онлайн-встреча — закрепление материала, вопросы. Чтобы держать вовлечённость, в любой момент мог прозвучать вопрос к конкретному участнику.
-
ДЗ на программирование — с продуктовой привязкой. Сквозной пример: один «клиент» на весь поток, каждое ДЗ начинается с исправления ошибок в предыдущем, потом — новая задача.
-
Индивидуальная обратная связь — видеокомментарий преподавателя к коду ученика: что сделано хорошо, что переделать и почему.
Идею с запуском потоков и лабораторными работами мы придумали вместе с мужем — он тоже разработчик, вёл параллельный поток для другого продукта. Преподавательского образования ни у кого нет, дошли до рабочей методики итерационно.
Этап 5. Школа живёт сама (2022–сейчас)
Когда я только начинала, команды разработки и внедрения мало пересекались. Мы делали модуль, они дорабатывали его под клиентов — каждый занимался своим кусочком работы. Школа это постепенно изменила.
Сначала внедренцы приходили учиться. Потом стали задавать вопросы, которые заставляли нас в разработке по-другому смотреть на продукт — мы лучше поняли, с чем они сталкиваются каждый день.
А потом внедренцы сами начали создавать контент для школы: кто-то провёл полный поток обучения для своей команды и разработал отдельный курс, другая команда сделала курс по стандартам разработки 1С. Один из сотрудников через обучение и работу с инструментами перешёл на роль методолога внедрения, которая является связующим звеном между разработкой и внедрением — раньше в неё переходили только разработчики, потому что направление требует глубоких знаний 1С.
Ещё наш проект получил награду «Одобрено Контуром». Это внутренняя программа, где оцениваются инициативы сотрудников. Позже за один из курсов команда получила премию направления ЭДО. Руководители внедрения стали замечать, что после обучения ребята быстрее справляются с задачами — и школа вошла в стратегию управления внедрений на уровне компании.
Как «Школа шКодинга» устроена сейчас
Архитектурно сервис — это конструктор активностей. Ключевое проектное решение: разделить данные на два уровня — компоненты (атомарные единицы контента) и активности (учебные события, которые их используют).
Типичный путь ученика такой:
-
Курс по устройству модуля — как он работает, как устроен подключаемый, где и что можно дорабатывать. Все новички начинают с него.
-
Курсы по основам программирования — пять курсов, от базовых конструкций до работы с запросами.
-
Поток обучения — если формируется группа: квартальный цикл с теорией, онлайн-встречами, ДЗ и индивидуальной обратной связью.
-
Курсы от внедренцев — стандарты разработки, специфика продуктов, перевнедрение.
Ещё несколько решений из сервиса:
-
RLS на уровне записей. Ученик видит только назначенные ему активности. Руководитель — только результаты своих подопечных. Преподаватель видит оценки коллег, чтобы понимать калибровку.
-
Автоназначение и автозавершение заданий по дате. Готовишь активность заранее, ставишь дату старта — она запускается сама, не нужно ничего контролировать.
-
Умные уведомления. Напоминания о дедлайне уходят только тем ученикам, кто ещё не сдал задания. Звучит как мелочь, но когда у тебя четыре группы с разным прогрессом, это избавляет от ручной работы каждую неделю.
-
Приглашения на очные встречи из сервиса. Преподаватель создает встречу — сервис сам определяет список участников по группе обучения и рассылает приглашения в Outlook. Не нужно каждый раз вспоминать, кто в какой группе.
Промежуточные итоги проекта
«Школа шКодинга» работает семь лет. За это время через неё прошли 430+ учеников из 11 отделов, на платформе опубликовано 11 курсов, обучение ведут пять преподавателей из разработки и внедрения Контура. А ещё в школе обучаются коллеги из других отделов, например, клиентской поддержки.
Я начинала этот проект одна, параллельно с основной работой. Сейчас школа живёт без моего постоянного участия: внедренцы сами создают курсы, сами проводят потоки обучения, сами растут — и помогают расти другим.
Оглядываясь назад, я понимаю, что всё это получилось, потому что в Контуре поддерживают инициативы сотрудников. А потом рядом со мной оказались люди, которым это тоже стало важно, и мы продолжили развивать проект командой единомышленников.
Автор: KsuBelk

