Истории Andrey Frolov
4 085

«Новички задают похожие вопросы и отвлекают коллег»: стартап формирует базу знаний для ИТ-команд из переписок в Slack

Материал издания об информационных технологиях в Беларуси и в мире dev.by.

В закладки

29-летний разработчик и ИТ-предприниматель Андрей Фан ни дня не трудился по найму: все места работы были его собственными бизнесами. При этом он до сих пор каждый день пишет код, потому что ему это нравится.

Dev.by встретился с техническим кофаундером UpsilonIT и поговорил о его стартапе OneBar, который формирует базу вопросов и ответов для ИТ-команды, собирая информацию из переписок в Slack. Недавно продукт вышел на Product Hunt, заняв второе место по итогу дня.

От поиска по хранилищам к базе знаний, которая формируется из рабочих переписок в Slack

История компании Upsilon-IT началась 6 лет назад, когда два выпускника факультета прикладной математики БГУ Андрей Фан и Максим Леонович написали на заказ систему, похожую на 1С, только для управления коллекционными произведениями искусства. В 2015 году эту разработку купил аукционный дом Кристис.

Два года назад компания сделала свой первый продуктовый проект OneBar — это база знаний (Q&A), похожая на StackOverflow или Quora, но не публичная, а только для рабочей команды.

cправка dev.by

В аутсорсе часто приходится онбордить людей в команды — это долгий и болезненный процесс. Плюс мы заметили такую тенденцию: люди, родившиеся после 1990 года, «миллениумы», редко засиживаются на одном месте работы дольше года-двух. При этом онбординг может занимать до полугода, то есть время, которое человек полноценно работает, совсем небольшое.

Когда в компанию приходят новые люди, они обычно задают похожие вопросы, отвлекая коллег от работы. Некоторые компании нанимают команду техрайтеров, которая составляет тысячи страниц на Confluence с вопросами и ответами. А потом эта информация лежит там годами, никто её не обновляет. Наша система берёт данные из свежих источников — чатов и переписок — и постоянно поддерживает её в актуальном состоянии.

Также мы планируем решать проблему ввода новых сотрудников в компанию и улучшать онбординг с точки зрения эйчар-вопросов: когда зарплата, как мне её получить, есть ли страховка и пр. Наша идея в том, чтобы сопровождать человека с того момента, как он пришёл в компанию, и до увольнения.

Над OneBar работает команда из четырёх человек.

После того, как команда закончила обучение в школе Y Combinator (это бесплатная программа от акселератора, за которую не берут долю в компании), было принято решение изменить концепцию продукта.

— В первой версии OneBar 1.0 мы индексировали информацию со всех мест, где компания её хранит, интегрировались со всеми возможными хранилищами (Google Диском, JIRA, Confluence, Github). Но впоследствии от этой концепции пришлось отказаться. Мы поняли, что основная информация так или иначе проходит через людей. Поэтому решили сфокусироваться на мессенджере, который используют многие ИТ-компании. Сейчас OneBar сохраняет всю информацию из чатов и переписок в Slack и делает её доступной для поиска, — объясняет Андрей.

Сейчас OneBar 2.0 — это база знаний, которая наполняется напрямую из рабочих переписок в Slack. Чат-бот собирает информацию из переписок в мессенджере и предоставляет её по запросу. Из-за ограничений Slack API бот получает доступ к переписке только в тех каналах, куда его кто-то добавил, также боту можно написать в личку.

Slack ребята выбрали потому, что «это самый популярный чат в ИТ-компаниях, и у него мощный API». Плюс последние новости — компания покупает продукты Atlassian — говорят о том, что Slack хочет стать единственным чатом, которым пользуются на работе.

Недавно продукт OneBar вышел на Product Hunt. В первый день запуска пришло 1200 уникальных пользователей и около 60-70 регистраций.

— Это был наш второй выход на Product Hunt. После первого раза мы усвоили много уроков. Например, тогда мы не ожидали, что у пользователей будет так много данных, которые они захотят загрузить в базу знаний. И вместо того, чтобы общаться с людьми, которые зарегистрировались, мы фиксили баги. Во второй раз мы были более подготовленными и больше внимания уделяли общению с зарегистрировавшимися пользователями. Больше всего было стартапов и компаний, которые зашли из интереса. Сейчас мы стараемся проинтервьюировать их с точки зрения бизнеса.

Что умеет бот

— Бот OneBar автоматически добавляется в канал, где общается команда. Если не находит ответ на заданные ему вопрос в базе знаний, тогда предлагает сохранить его, чтобы в будущем кто-нибудь на него ответил. После этого бот может предложить компетентных в этой теме сотрудников компании. Эти люди получают нотификейшн о том, что в базе появился вопрос. Когда кто-нибудь из них ответит, автору вопроса придёт уведомление. Также можно упомянуть бота и попросить его сохранить информацию.

Некоторые функции бот выполняет проактивно за счёт NLP-части. Например, когда люди общаются на какую-то тему, бот пытается понять, о чём они говорят, что друг у друга спрашивают, и может встрять в беседу со словами «не это ли вы искали?».

С помощью обработки естественного языка бот выделяет в тексте сущности и группирует документы, в которых они встречаются. Примерно как «Википедии»: слова подсвечиваются ссылками и при наведении мышкой дают краткое описание. Но в «Википедии», насколько я знаю, авторы статей вручную проставляют ссылки, а мы делаем это автоматически.

Помимо чат-бота, в OneBar есть веб-приложение. Функционал бота ограничен из-за API, который предоставляет Slack, — например, API не поддерживает более сложный Markdown в сообщениях. Если нужно загрузить видео, сделать аттач, чат-бокс, то можно воспользоваться веб-приложением.

Технологический стек у нас стандартный, тот, что мы используем в аутсорс-проектах: бэкенд на Python делаем, фронтенд — на JavaScript. Используем Google API, в качестве поискового индекса — Elasticsearch, деплоим продукт и в Amazon, и в Google Cloud. NLP-часть разрабатываем на Python + опенсорсные библиотеки.

Сейчас мы стараемся делать фичи, которые требуют меньше ресурсов и дают больше пользы на начальном этапе. Если мы видим, что какую-то часть NLP можем взять из опенсорса, то следуем этому подходу. Какой смысл придумывать сложные кастомные архитектурные решения для корпораций, если на этом этапе они не являются нашими клиентами?

Не стоит сразу браться за решение глобальных проблем, которые могут возникнуть в будущем (при условии, что такие клиенты вообще появятся). В нашем конtретном случае мы точно знаем, что текущий алгоритм поиска будет плохо работать, когда в базе будут сотни тысяч вопросов. Если бы мы сделали поисковую выдачу сами, она была бы лучше, но это заняло бы уйму времени.

У Slack достаточно хороший API и документация. Мы не работали с API Telegram, но, мне кажется, что в этом плане у Slack всё гораздо лучше.

Slack — это вообще девелопер-френдли мессенджер. Компания понимает, что, чтобы стать продуктом № 1, нужно сделать так, чтобы пользователь мог чуть ли не все свои потребности удовлетворять через Slack. Поскольку сама сделать это не может, она даёт возможности другим девелоперам, чтобы те выпускали продукты для Slack. Разработчик мессенджера проводит много митапов для девелоперов и прямо на форумах спрашивает, кому что не хватает в Slack, просит это описать.

У моего партнёра, который сейчас в Долине, была возможность лично сходить к ним в офис на митап. Сейчас они работают над большой и важной фичей — блок-компонентов и планируют вводить больше кастомных элементов.

Для нас минус в том, что сейчас у Slack очень мало UI-компонентов для отображения информации, поэтому приходится выкручиваться всевозможными способами, например, из кнопок делать какой-то список. Хотя, если бы был какой-нибудь элемент вроде радиогруппы, это было бы намного удобнее.

Монетизация

Суть нашей бизнес-модели в том, чтобы привязать плату не к количеству пользователей, а к количеству информации. Мы хотим получать оплату пропорционально пользе, которую приносим компаниям, поэтому количество информации как показатель считаем лучшим вариантом.

У нас есть квоты на создание документов, и в зависимости от их количества меняется тариф. Бесплатный план — 100 документов. Следующий (платный) — до 1000. И последний — от 1000 и до бесконечности. Модель оплаты может меняться по мере роста продукта. Для опенсорсных проектов OneBar будет бесплатным.

Привлекать финансирование принципиально не хотим, потому что на данном этапе инвесторы нам не особо помогут. Мы всё ещё в поиске Market Fit, проверяем различные гипотезы, которые могут поменять направление продукта.

Например, в некоторых компаниях пытаемся решить проблему с удалёнными командами. Чтобы девелоперы, которые не сидят в офисе, могли получать недостающую информацию от людей в головном офисе.

Когда компания открывает новый офис и переносит туда команду разработки, обычно за ней закрепляют ответственного за рабочий процесс человек. И проблема в том, что один Tech Lead физически не сможет проверить, всем ли хватает информации. Компенсировать недостаток входных данных может бот, который собирает информацию с чата и даёт ответы на вопросы.

У себя в UpsilonIT мы, например, используем OneBar для хранения документации по проектам, которые мы делаем. И рекомендуем инструмент нашим клиентам из аутсорса.

Конкуренты

Корпорации вроде Google делают свои системы поиска по базам знаний для внутреннего использования. Но не всегда фидбэк о них положительный, потому что фокус компаний направлен не на внутренние инструменты, а на свои основные продукты. К тому же, если корпорация делает такой продукт для себя, не факт, что это заработает для другой компании, которая намного меньше. Сделать единое решение для всей вертикали очень сложно.

Сейчас появляется много стартапов, которые пытаются решить проблему онбординга. Но лидера пока ещё нет. В широком смысле мы конкурируем с Confluence, но это не прямой наш конкурент. У нас немного другой подход — не один человек отвечает за информацию, а все участники Slack-чата. Получается такой краудсорсинг общей базы знаний.

У нас нет сомнений в том, что такая тулза, как OneBar, нужна командам. Вопрос только в том, сможем ли мы её сделать. Мы верим, что сможем.

«Хотелось бы меньше кодить, но не получается»

Анализируя пройденный нами путь, могу сказать, что основная ошибка всех технических фаундеров в том, что они мало разговаривают с пользователями и сильно концентрируются на процессе разработки.

Мне, например, нравится писать код, я считаю, что это абсолютно нормально, когда на начальных этапах технический фаундер сам кодит. Главное понимать, что твои задачи как фаундера — поговорить с потенциальным клиентом, понять, какая у него проблема, придумать, как её решить, провалидировать идеи. И только после этого можно кодить.

dev.by — сайт об информационных технологиях в Беларуси и в мире.

Статьи по теме:

  • Как работают скам-приложения, почему люди на них клюют, и делают ли такие в Беларуси.
  • «Когда спрашивают про мой род, говорю: я из Индии и я — человек». Разработчик о переезде из Калифорнии в Гродно
{ "author_name": "Andrey Frolov", "author_type": "editor", "tags": [], "comments": 7, "likes": 17, "favorites": 49, "is_advertisement": false, "subsite_label": "story", "id": 51158, "is_wide": false, "is_ugc": false, "date": "Sat, 17 Nov 2018 18:38:08 +0300" }
{ "id": 51158, "author_id": 14066, "diff_limit": 1000, "urls": {"diff":"\/comments\/51158\/get","add":"\/comments\/51158\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/51158"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199131, "possessions": [] }

7 комментариев 7 комм.

Популярные

По порядку

Написать комментарий...
4

Некоторые компании нанимают команду техрайтеров, которая составляет тысячи страниц на Confluence с вопросами и ответами. А потом эта информация лежит там годами, никто её не обновляет.

А куда же девается команда техрайтеров после тысячи страниц?

Ответить
3

бредятина.. на всех фирмах к которым я относился, как и в моих, такое делается своими силами. это делается быстро, точно (т.е. нет ничего лишнего), бесплатно, и эффект есть всегда. При чем сам процесс написания полезен.
Что же касается фирм, которым такое предлагать, вангую логичный ответ: а что, гугл закрылся чтоль?

Ответить
1

Мы такое уже полоода назад запилили силами стажеров. Пфф, стартап года

Ответить
1

Ну и где ваше детище?

Ответить
3

внутри фирмы, где)

Ответить
1

"Если не находит ответ на заданные ему вопрос в базе знаний, тогда предлагает сохранить его, чтобы в будущем кто-нибудь на него ответил. "

Смысл в том, что этим никто не будет пользоваться в реальной жизни. Масса примеров, когда компании создают СВОИМИ СИЛАМИ (бесплатно) внутренние порталы, боты и тп, а в итоге Васе быстрее через 2 стола спросить как что делать, тк зачастую ответ нужен здесь и сейчас. При этом контекст проблем и вопросов будет постоянно меняться, кто будет заниматься обновлением базы?
Ищите лоха, который будет в это вкладываться.

Ответить
0

Общие вопросы в Гугле найдешь. А прикладные - это одна страница в конфлюенсе, ну две (вторая про правила деплоя)

Ответить

0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Нейронная сеть научилась читать стихи
голосом Пастернака и смотреть в окно на осень
Подписаться на push-уведомления
{ "page_type": "default" }