Привет, Хабр. Меня зовут Максим Яровой, я руковожу внутренним центром развития и обучения IT-специалистов – МТС Тета.
Одна из основных проблем обучения в IT-секторе в том, что учебные программы часто отстают от быстро развивающейся индустрии. МТС Тета была создана два года назад, чтобы мы могли прямо внутри компании запускать актуальные и значимые для нас и наших сотрудников курсы по всем ключевым направлениям IT.
Мы разом упростили процесс обучения для всех: и для студентов, и для руководителей, которые ищут себе новые таланты. Сегодня я расскажу о нашем проекте, а четверо коллег, которые уже прошли (или разработали!) наши курсы поделятся своими мыслями.
Кого мы обучаем
У нас в компании работает более 8 тысяч айтишников, и мы стараемся помогать им развивать их навыки. Для этого мы запустили МТС Тета — структуру, которая специализируется исключительно на IT-образовании. Курсы должны приносить пользу компании, помогать специалистам непрерывно обучаться и делать карьерный и образовательный путь прозрачным.
В выигрыше все: мы фокусируемся на IT при работе с курсами, компании проще обучать кадры, а самим сотрудникам не приходится искать образовательные программы где-то вовне.
Бонус: нетворкинг, обмен опытом, знакомство с продуктами других команд внутри компании. Студенты вместе работают над проектами, менторы (такие же сотрудники, как и студенты, только опытнее) поддерживают своих выпускников.
Мы разрабатываем курсы по всем ключевым направлениям: Go, Java, JavaScript, Python, мобильная разработка, DevOps, DevSecOps, C#, QA, SRE, архитектура, data science, ИИ, генеративный ИИ.
Форматы обучения
МТС Тета предлагает два формата обучения сотрудников, они должны быть вам знакомы: синхронный и асинхронный.
Синхронные курсы похожи на университетский формат: лекции, семинары, «семестр» длиной 3–6 месяцев. Есть и вступительные экзамены. Проверка домашних работ, менторство — это время и силы преподавателя, которые, к сожалению, ограничены. Поэтому из 500+ желающих мы отбираем около 80 студентов. Вместо выпускных экзаменов — итоговый проект. В продуктовом обучении главное — чтобы студент смог применить знания на практике при решении задач.
В асинхронном формате сотрудник может изучать все необходимое в удобное для него время и в комфортном темпе. Все учебные материалы доступны в нашей LMS. При такой структуре образовательного курса нельзя получить помощь ментора, но каждый может обратиться за помощью к более опытным коллегам в чат гильдии.
МТС Тета: мы помогаем искать таланты
Во время обучения мы также выявляем HiPo-специалистов — активных, целеустремленных, самостоятельных ребят, которые хотят и могут делать больше. HiPo стремится взять на себя задачи следующего уровня (например, джун берёт задачу уровня мидла). И не просто берёт, а ещё и самостоятельно решает. Такие специалисты станут будущим нашей компании, главное — дать им больше возможностей.
И, конечно же, Тета — это шанс для преподавателей: прокачать личный бренд, поделиться экспертизой, попробовать себя в роли наставника, потренировать публичные выступления. А ещё — узнать что-то новое или вспомнить хорошо забытое старое. Но об этом в следующих блоках расскажут преподаватели.
Взгляд со стороны преподавателя
Владимир Михайлов
Ведущий эксперт QA
Если можно что-то не учить — лучше на это не тратить время
Когда я, недавний студент, пришёл устраиваться в айтишную компанию, мне предложили выбор между разработкой и тестированием. Мол, ты ещё чистый лист, кем захочешь — тем и станешь. Я спросил, где будет проще освоиться? Так и попал в тестирование.
«Мы не ищем лёгких путей» — это не про QA. Мы не просто ищем лёгкие пути, мы даже ищем лёгкие пути для поиска лёгких путей. Работа хорошего тестировщика — это поиск способов что-то не делать. Где заменить ручные тесты автоматизированными, где каким фреймворком воспользоваться. Разумеется, есть пара нюансов:
Лёгкий путь должен вести туда же, куда и трудный, только быстрее. Качество работы не должно страдать от профессиональной лени.
Иногда, чтобы не работать, надо сначала хорошенько поработать.
Мы запустили курс по QA в МТС Тета, когда поняли, что в МТС Диджитал слишком много мануального тестирования. Я хотел помочь людям избавиться от этой рутины. Потому что на самом деле мало кто хочет ей заниматься и мало где она необходима. Обычно люди просто не знают, что можно иначе.
Я старался включить в курс только то, без чего обойтись нельзя. Если можно что-то не учить — лучше на это не тратить время. Но даже самых необходимых вещей оказалось много. Тут и базовое программирование — которое для меня-то базовое, а вот для человека без опыта — тёмный лес. Тут и общая методология тестирования, и конкретные технологии.
У меня за плечами 15 лет опыта в QA. Последние 8 лет я также занимался точечным менторингом и коучингом — помогал людям решать их задачи: менеджерские (помогал вырасти в руководителя и развить необходимые навыки) и технические (автоматизировал тестирование и выстраивал процесс тестирования с нуля). В том числе поэтому я решил преподавать в Тета.
Оказалось, что разработка полноценного курса — это задача совсем другого уровня сложности. Пришлось свои 20 лет опыта систематизировать, выкинуть лишнее, восполнить недостающее. Потому что, сколько бы у тебя ни было опыта, какие-то нюансы ты всё равно не знаешь или позабудешь. Как говорится, если хочешь что-то понять по-настоящему, попробуй объяснить это другому человеку.
Обучая студентов, я старался объяснить им, когда лениться можно, а когда нельзя. Приступая к новой концепции или технологии, я сразу спрашивал — а зачем вам это знать? А может, и не надо? Важно, чтобы студенты сами поняли, как им пригодятся конкретные знания.
На курсе было два потока (Java и Python) по 30 студентов. Ещё два десятка были «в запасе» — на случай, если кто-то отвалится. Итого 80. Всего было подано 500 заявок — потому что все любят учиться и всем было интересно. Но мы отобрали тех, кому наш курс мог принести наибольшую пользу.
Три месяца мы изучали основы программирования. С итоговым проектом по кодингу немного перемудрили. Требовалось написать небольшую карточную игру в консоли, и, хотя всё было расписано по шагам, многие студенты испугались: «как это, я — да целую игру?» В следующем потоке мы перестроим структуру ДЗ, чтобы итоговый проект писался постепенно.
Следующие три месяца — собственно тестирование. Мы разбили материал на семь блоков — тестирование веба, мобильное тестирование и тому подобное. Для успешного прохождения курса надо было сдать ДЗ по четырем блокам на выбор. Нет смысла изучать сразу всё: мы дали студентам возможность не тратить время на то, без чего они пока могут обойтись.
Закончили курс и успешно сдали все ДЗ не все студенты
Я был недоволен: в процессе разработки курса я почитал умные статьи со статистикой и рассчитывал на 50%. Но кому-то было сложно начать, кто-то отваливался от курса вовсе. Естественно, менторы старались активно общаться с подопечными, помогать с заданиями, поддерживать.
После курса мы с коллегами поняли, что надо активнее работать с мотивацией студентов.
Цифры цифрами, однако в них не измерить самое главное — эмоциональную отдачу и межличностные связи. Мы очень сблизились со студентами. Курс проходил напряженно, но весело. Чтобы удерживать внимание, мы постарались расставить в стратегических местах всякие шутейки, а в чате студенты кидали тематические мемы.
Лично мне проведение курса дало две вещи. Во-первых, я убедился, что эта задача мне по плечу. А во-вторых, было очень здорово принести людям настоящую пользу. Не каким-то абстрактным юзерам, которым мои тесты опосредованно улучшат UX, а моим младшим коллегам, с которыми я общался лицом к лицу.
Тета как инструмент развития технологической культуры
Сергей Чепкасов
Ведущий эксперт QA
Курс проходили не отдельные люди, а команды
Тестированию производительности часто уделяют недостаточно внимания, хотя теоретически все согласны, что это вещь полезная и важная. Подобный подход позволителен для небольшого сайта или едва народившегося стартапа. Крупная ИТ-компания такого себе позволять не должна. Тестирование производительности — один из важных показателей технологической зрелости.
У МТС есть глобальная стратегическая цель — стопроцентное покрытие тестами всех критически важных продуктов. Сейчас дела с этим обстоят… неравномерно. В одних командах тестирование производительности ведётся давно и успешно. В других понимают, что это нужно, но не хватает компетенций, тестировщиков или других ресурсов.
Тестированием производительности я занимаюсь последние пять лет. Я работал в двух, наверное, самых крупных в России сервисных командах такого профиля.
Первый опыт преподавания у меня случился два года назад, когда коллега попросил подменить другого преподавателя на курсе в моей предыдущей компании. Придя в МТС, я принёс с собой этот опыт — и пришёл к выводу, что мы можем развивать культуру нагрузочного тестирования изнутри, дав нужные компетенции сотрудникам на местах. Я связался с командой Тета и попросил её помочь мне организовать курс. У меня был в этом и свой интерес. Так я хотел убить трёх зайцев одним выстрелом:
Подключить все значимые продукты к процессу тестирования производительности;
Обучить как можно больше команд: есть желание, но нет экспертизы;
Закрыть вопрос с однотипными задачами в Jira на проведение тестирования. Они переезжали с командами из квартала в квартал с комментариями о нехватке ресурсов, времени, компетенций.
Во время обучения в МТС Тета часто проверяют гипотезы или экспериментируют. Например, курс проходили не отдельные люди, а команды. От каждого критичного продукта выделили людей, которые должны взять на себя тестирование производительности. От кого-то всё равно пришёл один человек, от кого-то — группы по пять человек. Всего учиться пришло 32 команды — что-то около сотни людей.
В качестве домашнего задания — написать нагрузочные тесты для своего реального приложения
Курс мы разбили на три блока. В первом блоке была теория — рассказывали про подходы, лучшие практики, про то, как правильно выстроить методологию тестирования. Но уже на этом этапе мы начинали думать о конечной цели. Каждая команда должна была разработать стратегию тестирования для своего продукта. Эти стратегии они сдавали в качестве ДЗ, менторы проверяли, давали рекомендации. Важно было то, что менторы закреплялись за каждой командой, погружались в контекст конкретного продукта и помогали достичь наилучшего результата.
Во втором блоке была практика, и тут стало ещё интереснее. Как обычно устроены похожие курсы? Там либо рассказывают про одну конкретную технологию, либо делают обзор всех технологий сразу. Но нам нужны были не эрудиты, нахватавшиеся по верхам, и не адепты какого-то фреймворка. Мы старались подготовить специалистов, которые сделают нагрузочные тесты для своего собственного продукта.
Поэтому мы разбили наши 32 команды на 4 подгруппы, в зависимости от специфики их продуктов. Каждой подгруппе давали по одному из четырёх популярных инструментов — Locust, K6, Gatling и JMeter. Кстати, Locust изначально не был включён в программу. Но студенты в чате провели голосование, преподаватели пошли навстречу и вуаля — ещё один инструмент.
В качестве домашнего задания — написать нагрузочные тесты для своего реального приложения. Примерно половина студентов уже справилась с задачей.
Третий блок был про то, что делать с результатами тестов. Про анализ, поиск узких мест, написание отчётов. А в качестве итогового проекта студенты брали стратегию из первого блока, инструменты и тесты из второго, знания из третьего — и разрабатывали целостный процесс тестирования производительности, с анализом и пайплайнами.
Первый поток завершился 21 декабря. Но результаты нас порадовали, и мы решили, что курс станет регулярным.
Сейчас расскажу подробнее о результатах.
Из 32 команд 2 отвалились в процессе по причине высокой загрузки задачами от бизнеса;
13 команд успели закончить тестирование, подготовили первые отчеты с результатами и получили рекомендации и ревью от менторов уже к концу курса;
Еще 6 команд завершили свои проекты в январе 2024 года;
Остальные 11 команд пока в процессе, большинство уже прошли стадию подготовки, разработали скрипты и готовы тестировать. Сейчас им предстоит ревью.
Курс — это только первый шаг в развитии культуры тестирования производительности продуктов в компании. Сейчас команды получили теоретическую базу, сформировали стратегию тестирования, освоили один из инструментов для генерации нагрузки, разработали первые скрипты и провели первые тесты. Менторы наметили для каждой команды путь дальнейшего развития.
Многие из студентов только на курсе впервые столкнулись с необходимостью сформировать нефункциональные требования к своим продуктам и настроить мониторинг. И это уже само по себе полезно для их продуктов.
Мы поняли, что обучение сразу на своем продукте — большой плюс для наших студентов. Фактически, они закрывали рабочую задачу, повышали технологическую зрелость своих продуктов. И при этом учились чему-то новому.
Если одной команде удалось списать у другой — замечательно!
Ещё один важный результат курса: созданное нами живое сообщество. Студенты и преподаватели, объединённые общей целью и интересом, общаются, делятся опытом. Иногда студенты предлагали что-то интересное, о чём не знали их учителя. Например, до курса я был поверхностно знаком с K6 и Locust, но узнал о них больше, когда общался со студентами и проверял их домашки.
Ещё на нашем курсе официально разрешено списывать. Если одной команде удалось списать у другой — замечательно! Значит, выстраивается общий рабочий процесс, идёт нетворкинг: как раз это нам и нужно.
Сейчас в компании процесс тестирования для каждого продукта собирается с нуля, на основе открытых инструментов и практик. Но Тета помогает создать общекорпоративные стандарты. А значит, внедрение повсеместного нагрузочного тестирования пройдёт намного проще.
Тета для смены профессии
Ольга Новокошонова
Системный аналитик
Материалы курсов в Тета намного полезнее, чем отпечатанный в типографии учебник
У меня экономическое образование: сначала отучилась в колледже на бухгалтера, потом в университете по специальности «Мировая экономика». Должность, на которую я устроилась в МТС, была связана с экономикой довольно косвенно — сочетание аналитики и проектного менеджмента. Я работала в подразделении, которое связывает маркетинг и IT-настройки биллинга в МТС. Мы настраивали продукты (например, новые услуги или тарифы), чтобы они работали так, как просили внутренние заказчики.
Я любопытный человек. Ну, то есть, по айтишным меркам — нормальный. Меня давно привлекала работа системного аналитика своей структурированностью, необходимостью закапываться в детали. Ещё мне нравится возможность видеть результаты своей работы: вот я что-то делала с командой, а вот — новая фича, которая появилась. Поэтому услышав про отбор в Школу системного и бизнес-анализа (ШСБА) в Тета, я сразу туда записалась.
Для моего уровня знаний на тот момент отбор был непростой: я ничего не знала о взаимодействии систем, базово понимала SQL, на котором нужно было написать запрос, и только с помощью логики решила алгоритмические задачи. Пришлось попотеть. Кто-то из моих коллег тоже решил участвовать, но прошли не все. Я оказалась в числе счастливчиков.
ШСБА очень отличалась от моего опыта «официального» образования. В университете у нас было много теории, а из практики — только дипломная работа, одна на четыре года обучения. Курс ШСБА длился четыре месяца, и половину этого времени мы занимались выпускным проектом.
Ещё одно отличие — отношение преподавателя. У нас был куратор, к которому мы всегда могли обратиться по любому учебному вопросу. Его не приходилось вылавливать по кафедрам и он всегда был готов помочь. Понравились и учебные материалы. Там были не просто общие слова — преподаватели вложили в них личный опыт, кейсы, на которых набили шишки и нашли оптимальные решения. Это намного полезнее, чем отпечатанный в типографии учебник.
Ну и, наконец, атмосфера. По окончании курса я всё ещё поддерживаю связь с преподавателями. Несмотря на напряженную программу, они нас обучали в неформальном стиле, многое объяснялось на мемах, котиках, образных примерах. Скажем, разница между синхронным и асинхронным взаимодействием давалась на примере кафе. Синхронный запрос — это когда ты заказала кофе и ждёшь у стойки, пока его сварят. Асинхронный — это когда ты села за столик и читаешь книжку в телефоне, а когда заказ будет готов — тебя позовут.
Выпускной проект — не просто часть обучения. В законченном виде он стал артефактом, который можно предъявить, претендуя на новую должность. Благодаря ему мне предложили переход с повышением з/п, и я стала системным аналитиком.
Одной из первых задач в новой должности оказалась настройка интеграции. Нужно было на страницу нашего сайта вывести информацию с другого ресурса. Методы API со стороны коллег с другого ресурса были готовы и для опытного аналитика это была бы проходная и простая задача. А для меня она оказалась со звёздочкой.
Я постоянно натыкалась на препятствия: разные названия одинаковых по сути query-параметров, параллельная неописанная доработка со стороны той команды, несоответствие реальных данных планируемым. Думаю, это запутало бы любого. Но все получилось благодаря полученной на учебе базе.
Ближайший год я планирую работать и набираться опыта. А дальше — кто знает. Мне по-прежнему хочется учиться и расти. Сейчас я с интересом смотрю в сторону архитектуры решений: анализировать бизнес-требования и на их основе проектировать продукт, выбирать оптимальные технологии кажется очень интересным.
Тета для изучения нового
Ярослав Насонов
CTO
Я опасался, что после моих изысканий курс будет для меня не слишком полезен. Но программа оказалась очень мощной
В МТС я попал через Moove — совместный образовательный проект с бизнес-школой Сколково. Оттуда меня взяли стажёром в MTS Developers. Вскоре я там дорос до менеджера проекта, а затем перешёл в качестве CTO в Clatch.
Clatch — это приложение-женский календарь. Довольно неочевидный для МТС проект, поскольку он не интегрирован с другими сервисами и не распространяется под основным брендом.
Когда я начал работать над Clatch, он был непомерно разросшимся MVP. Изначально приложение делала сторонняя команда по заказу МТС, после разработку решили перенести внутрь. Приложение создано на стеке Ionic + Capacitor, для МТС не приоритетном. Специалистов по нему мало, работает хуже, чем хотелось бы. Да и в любом случае, из-за того, что это обросший фичами MVP, там куча технического долга и legacy-кода. А значит — лучше переписать его на более подходящем стеке.
Я начал искать для этого оптимальную технологию. Рассматривались только кроссплатформенные, хорошо поддерживаемые решения, и выбор сузился до двух вариантов — React Native и Flutter.
В сети много статей, сравнивающих эти технологии (например, раз, два, три).
Для меня определяющими критериями стали:
популярность: не хотелось упереться в сложности с подбором команды, а в России Flutter пока популярнее React Native;
быстродействие: у нас Design First-приложение, в котором все должно работать плавно;
производительность: по этому параметру Flutter опережает React Native, немного уступая Native;
скорость разработки: писать на Flutter оказалось быстрее.
Примерно полгода я изучал Flutter самостоятельно — и доставал вопросами коллег. А затем узнал, что в Тета планируется курс по Flutter для начинающих.
В чём проблема самостоятельного обучения: ты сам себе придумываешь задачи. И они не всегда коррелируют с теорией, которую ты проходишь. Например, в теории тебе показывают, как делать динамические списки, а в приложении, которое ты сам себе придумал, их вообще нет. При более системном обучении этой проблемы нет. За полгода я изучил основы, которых хватало на какие-то простые вещи, вроде приложения с карточками.
Я опасался, что после моих изысканий курс будет для меня не слишком полезен. Но программа оказалась очень мощной. Там были ребята и сильнее меня, например, с разными фронтендерскими фреймворками. Я оказался где-то посерединке — уже не совсем новичок, но и ещё не всё понимаю.
Свои знания на курсе я углубил стократно. Начал понимать, например, как работают стримы и для чего они нужны, принципы построения архитектуры приложения.
В курсе меня впечатлили интенсивность и упор на практику. В качестве учебного проекта мы делали мессенджер, развивая его итеративно. На первом занятии нам показали, как делаются экраны, кнопки, как подключаться к БД. Потом сказали, чтобы на следующее занятие мы приносили уже работающий мессенджер. И мы ведь действительно принесли.
После курса и самостоятельного изучения технологии я, уже понимая плюсы и минусы, защитил идею делать новую версию Clatch на Flutter. Сейчас мы наняли команду и готовим для пользователей новую классную версию приложения.
Вообще, если посмотреть на наше обучение с высоты птичьего полёта, Тета — отличный инструмент, чтобы быстро погрузиться в новую технологию и осознанно управлять развитием продукта.
Максим Яровой
Руководитель МТС Теты
МТС Тета — это место, где сходятся интересы бизнес-заказчиков и айтишников
Сотрудник хочет учиться. Компания хочет, чтобы сотрудник освоил важные для неё технологии. В итоге мы синхронизируем процесс обучения, учитывая потребности сотрудников и руководителей.
Наша цель — помогать сотрудникам развивать свои навыки и скиллы и выстраивать прозрачный карьерный трек. Наши курсы появились в прошлом году, но уже есть весьма хорошие результаты. В общем, если окажетесь в МТС — приходите к нам учиться :)