В рубрике DOU Проекторвсе желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на editors@dou.ua.
Привет, я Илья Лузан, один из организаторов сообщества IT KPI. Хочу поделиться опытом реализации социального проекта по поиску ментора с помощью бота в Telegram.
Идея
Эта история началась в 2014 году, когда все инициативные студенты НТУУ «КПИ» использовали ныне заблокированный «ВКонтакте». Тогда у КПИ была развитая сеть пабликов и информационных каналов. Было всё: от агрегаторов новостей до страниц отдельных низовых инициатив и студенческих организаций. Однако не хватало главного — места, где студенты самого большого технического университета Украины смогут общаться и делиться опытом на IT-темы.
КПИшник Дмитрий Дрозд предложил создать сообщество IT KPI во «ВКонтакте». За сутки после открытия оно набрало больше тысячи участников. Постепенно сообщество начало выходить в офлайн. Команда инициативных студентов
Основная цель сообщества заключалась в том, чтобы новички (в основном — студенты) могли развиваться и получать опыт. А опытные участники, соответственно, этим опытом делиться. Лекции — это круто, но они не всегда дают ответы на вопросы и не так интересны, как живое общение. Так родилась идея создать платформу для объединения участников сообщества, готовых учиться, и тех, которые хотели бы поделиться знаниями.
Главным условием инициативы было полное отсутствие коммерции. Менторство бесплатное. Какая тогда выгода? Обучив нескольких ребят, ментор может закрыть junior позицию у себя на проекте. Или же можно делегировать работу по open-source или pet-проектам, студенты рады будут помочь для получения опыта. Ну и самое главное — вкладывать свои знания в молодое поколение, которое в будущем будет работать среди нас.
В октябре
Мы начали снова переходить в офлайн, провели несколько лекций и воркшопов по Java для студентов. Менторы получили опыт выступления перед живой аудиторией, а для студентов это отличная мотивация развиваться и расти дальше.
Воркшоп по Spring & Hibernate от менторов Джоши Артура и Марченко Павла
Когда «ВКонтакте» заблокировали, мы потеряли свою платформу, но не сообщество. Переехали в Telegram, пришлось наращивать аудиторию с нуля, а менторская инициатива затихла.
Но в сообществе помнили о ней и просили ее возродить, ведь любой социальный проект с написанием кода, фикса багов, деплоймента нуждается в инициативных ребятах, у которых есть время и желание сделать из идеи продукт. Летом 2018 решили сделать Telegram-бота, чтобы менторы могли легко подать заявку, мы обработали ее и добавили в базу.
Реализация
Первым делом, перед разработкой любого продукта, стоит спросить свою целевую аудиторию, а нужен ли вообще этот продукт. Мы провели опрос среди участников IТ KPI и получили положительный фидбэк.
Результаты опроса сообщества
Потом решили сделать customer research и понять, что именно нужно пользователю. Студент для поиска ментора по определенной технологии хочет узнать, обладает ли ментор необходимыми знаниями, его опыт работы и сколько времени он готов уделять обучению других. По LinkedIn мы проверяем опыт работы ментора. Также мы спрашиваем, в каком городе живет ментор, чтобы в дальнейшем организовать офлайн-встречи.
Собрав требования, мы пошли на ивент Bot4Good от 1991 Civic Tech Center по созданию чат-ботов. Написали прототип и заняли второе место.
Лузан Илья на Bot4Good от 1991 Civic Tech Center
Затем участвовали в хакатоне Global Hack Weekend. Основная цель — презентовать идею большему количеству людей, добрать людей в команду, получить фидбэк и найти будущих менторов проекта. Свою цель мы выполнили, но активная разработка так и не началась, в основном потому, что не хватало времени.
Чуть позже в КПИшных чатах мы познакомились с Николаем Симотюком, участником сообщества, который уже реализовал несколько ботов для студентов КПИ и готов был помочь. Разработку начали в январе 2019 года.
Команда (слева на право): Лузан Илья (менеджер продукта), Бандурин Владислав (админ), Николай Симотюк (разработчик), Киндерись Роман (админ), Ярослав Борута (копирайтер), Керимов Хикмет (админ), Евгений Перегуда (админ) и снизу Давид Иккес (админ)
Приложение у нас не сложное, написано на Node.js. Для хранения данных используем MongoDB. Telegraf.js — для коммуникации с API Телеграма. Гифки сделали с помощью Crello. Одна из интересных задач была реализовать обновление юзернейма в базе, если поменяли юзернейм, но с ботом не взаимодействовали. Тут было несколько вариантов. Например, крон-джоба на апдейт всех менторов раз в какое-то время. Но хотелось бы обойтись средствами одного сервера и не тянуть еще какую-то зависимость. YAGNI во всей красе. Поэтому остановились на ленивом апдейте.
Каждый раз, когда запрашиваются пользователи, из них отбираются менторы и проверяется их последний апдейт записи. Если прошло больше какого-то определенного времени — инициируется апдейт. Все бы хорошо, но тут очевидная избыточность, к тому же в разы повышается время получения пользователей. Поэтому это происходит асинхронно, то есть записи отдаются старые, а потом только приходит ответ от телеграма и апдейтятся записи.
Платформу создали за 3 месяца разработки и тестирования по вечерам. С начала апреля приступили к продвижению самой менторской инициативы.
При старте использования бота вы увидите 2 раздела: «Я ментор» или «Шукаю ментора». Механизм для подачи заявки для ментора показан на скриншотах ниже.
Для тех, кто ищет ментора, сперва выводится весь список направлений, по которым есть хотя бы 1 ментор. Когда вы выбираете номер направления выводится список менторов. Если у нас 7+ менторов, то мы публикуем страницу со списком на telegra.ph.
Качество заполнения заявки ментором — наиболее важная часть. Нужно указать опыт работы, детальный стек технологий, проекты, чтобы падаван четко понимал, по каким вопросам можно обращаться к специалисту, и пришел сразу по адресу. Дальше мы спрашиваем количество часов в неделю, которые ментор готов уделять обучению. Это формальность, которая никак не контролируется с нашей стороны, но позволяет ментору четко осознать, на что он соглашается. Еще спрашиваем город, для возможных дальнейших офлайн-встреч с менторами. И самое важное для валидации — профиль LinkedIn. Если человек не полностью описал стек в разделе про опыт, то можно посмотреть, где он работал, и этого будет достаточно.
У нас есть отдельный чат, куда поступают заявки. В нем мы можем смотреть статистику бота, сколько менторов и падаванов у нас есть — в сумме и отдельно по каждому направлению.
Отзыв Андрея Губского, Microsoft MVP, ментора IT KPI:
Помощью студентам в вопросах разработки я занимался, наверное, еще за несколько лет до того, как IT KPI начали собирать и структурировать базу менторов.
Хорошо помню ребят, с которыми работал в самом начале. Это были студенты, если не ошибаюсь, третьего курса, моего родного факультета информатики и вычислительной техники, которые проходили практику в КПИ. Мы занимались изучением систем контроля версий, проектированием приложения и, собственно, написанием кода. После практики ребята еще некоторое время работали на моих коммерческих проектах.
Один из них занимался разработкой мобильного клиента для интернет-телеканала на Android и iOS, сейчас работает senior разработчиком в EPAM. Второй участвовал в разработке различных веб-приложений на базе ASP.NET. Сейчас уехал в Германию, живет в Мюнхене и завершает обучение в магистратуре.
После того, как мои контакты появились в базе данных менторов КПИ, мне время от времени стали писать студенты с различными вопросами по разработке. Но это уже больше формат вопрос-ответ, чем полноценное обучение. С одним из студентов мы общались примерно неделю. Он выполнял различные задачи по написанию веб-сервиса, выкладывал код на GitHub, где я проводил ревью и давал рекомендации.
В целом, могу сказать, что со временем уровень вопросов от ребят растет. И если раньше приходилось объяснять основы, то сейчас иногда попадаются вопросы, на которые так сразу и не ответишь. К сожалению, уделять много времени непосредственно менторству у меня возможности нет, поэтому для себя определил квоту примерно в несколько часов в неделю. Это то время, которое могу позволить себе выделить для ответов на вопросы.
Что мне самому дает менторство? Думаю, в первую очередь, это возможность держать себя в тонусе. Когда долго занимаешься каким-то одним проектом, постепенно привыкаешь к его ритму, кругозор сужается, мозг перестает работать максимально активно. Когда же тебе задают вопрос, на который ты сам порой не знаешь, как ответить, начинаешь искать материал, узнавать что-то новое — это помогает не «заржаветь». Также иногда попадаются ребята, которых постепенно начинаешь привлекать на коммерческие проекты. Помогаешь им расти, развиваться, наблюдаешь, как они совершенствуются в своем деле — это приятно, особенно учитывая, что понимаешь, что и твое участие в этом сыграло определенную позитивную роль.
Из минусов менторства — главное, это, конечно же, необходимость выделять на него время, которого часто очень сильно не хватает. Иногда бывает так, что тебе пишет человек, с вопросом, на который ты отвечал уже по меньше мере раз десять. На одиннадцатый это делать уже становится просто не интересно.
Самый главный плюс для меня, как я уже писал об этом выше, — возможность поддерживать в тонусе собственный мозг.
Результаты
Сейчас у нас уже есть 33 направления и 65 менторов. Самые востребованные направления: Python, Machine Learning, JavaScript, Java, C#, C/C++, Data Science, Node.js. Больше всего менторов по C#, Java, Python, Node.js, Machine Learning, JavaScript, Scala, PHP.
Нас активно поддерживают IT-компании и сообщества Украины. Сейчас мы на стадии поиска менторов. Совсем скоро мы соберем фидбэк от менторов и падаванов и, основываясь на этих данных, будем решать, какие фичи добавлять. А в основном — будем развивать проект дальше, популяризовать менторство, проводить офлайн-мероприятия и, самое главное, помогать развиваться людям.
Если вам есть чем делиться с начинающими специалистами, то просим присоединиться к команде менторов. Если вам нужен наставник, то бот уже готов.
Если у вас есть вопросы или предложения, пишите в Telegram.