DOU Проектор: MentorBot — бот для пошуку наставника і менторское рух IT KPI
У рубриці DOU Проектор всі бажаючі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про що розповісти — запрошуємо взяти участь. Якщо ні — можливо, серія надихне на створення власної made in Ukraine продукту. Питання і заявки на участь надсилайте на [email protected] .
Привіт, я Ілля Лузан, один з організаторів спільноти IT KPI. Хочу поділитися досвідом реалізації соціального проекту з пошуку ментора з допомогою бота в Telegram .
Ідея
Ця історія почалася в 2014 році, коли всі ініціативні студенти НТУУ «КПІ» використовували нині заблокований «ВКонтакте». Тоді в КПІ була розвинена мережа пабликов і інформаційних каналів. Було все: від агрегаторів новин до сторінок окремих низових ініціатив та студентських організацій. Однак не вистачало головного — місця, де студенти найбільшого технічного університету України зможуть спілкуватися і ділитися досвідом на IT-теми.
КПИшник Дмитро Дрозд запропонував створити спільноту IT KPI у «ВКонтакте». За добу після відкриття воно набрало більше тисячі учасників. Поступово співтовариство почало виходити в офлайн. Команда ініціативних студентів 2-3 курсів проводила екскурсії в ІТ-компанії, регулярні лекції на технічні теми, хакатони і багато-багато крутих штук.
Основна мета спільноти полягала в тому, щоб новачки (в основному — студенти) могли розвиватися і отримувати досвід. А досвідчені учасники, відповідно, ділитися цим досвідом. Лекції — це круто, але вони не завжди дають відповіді на запитання і не так цікаві, як живе спілкування. Так народилася ідея створити платформу для об'єднання учасників спільноти, готових вчитися, і тих, які хотіли би поділитися знаннями.
Головною умовою ініціативи була повна відсутність комерції. Менторство безкоштовне. Яка вигода? Навчивши декількох хлопців, ментор може закрити junior позицію у себе на проекті. Або ж можна делегувати роботу open-source або pet-проектів, студенти будуть раді допомогти для отримання досвіду. Ну і саме головне — вкладати свої знання в молоде покоління, яке в майбутньому буде працювати серед нас.
У жовтні 2016-го один з учасників спільноти Влад Городників створив Google-форму для реєстрації людей, готових безкоштовно менторить. Ми вручну обробляли відповіді і додавали на сторінку сайту . Робота рутинна, сторінка ставало все довшим і довшим. Кількість менторів перевалила за 100. Менторить хотіли фахівці практично з усіх мов програмування, дизайну, баз даних, SEO і навіть фізики високих енергій. Люди, що бажають ділитися досвідом з іншими, самі приєднувалися до нашої ініціативи. В основному це випускники КПІ або студенти старших курсів, які вже працюють.
Ми почали знову переходити в офлайн, провели кілька лекцій та воркшопів з Java для студентів. Ментори отримали досвід виступу перед живою аудиторією, а для студентів це відмінна мотивація розвиватися і рости далі.
Воркшоп по Spring & Hibernate від менторів Джоші Артура і Марченко Павла
Коли «ВКонтакте» заблокували, ми втратили свою платформу, але не спільнота. Переїхали в Telegram , довелося нарощувати аудиторію з нуля, а менторська ініціатива затихла.
Але в співтоваристві пам'ятали про неї і просили її відродити, адже будь-який соціальний проект з написанням коду, фікса багів, деплоймента потребує ініціативних хлопців, у яких є час і бажання зробити з ідеї продукт. Влітку 2018 вирішили зробити Telegram-бота, щоб ментори могли легко подати заявку, ми обробили її і додали в базу.
Реалізація
Насамперед, перед розробкою будь-якого продукту, варто запитати свою цільову аудиторію, а чи потрібен взагалі цей продукт. Ми провели опитування серед учасників ІТ 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 .
Опубліковано: 07/05/19 @ 07:00
Розділ Різне
Рекомендуємо:
Такі різні «ми», або Мультикультурність команди — не вирок
Ruby/Rails дайджест #29: перший реліз-кандидат Rails 6, оновлення Ruby до 2.6.3, анонс складу спікерів RubyC
Ruby/Rails дайджест #29: перший реліз-кандидат Rails 6, оновлення Ruby до 2.6.3, анонс складу спікерів RubyC
Робимо простий і надійний микросервис розсилки пушей на компонентах AWS
DOU Books: 5 корисних книг, які ви, швидше за все, не читали, від Олексія Орапа, CEO YouScan