Мы разработали корпоративную звонилку, но не выпустили её на рынок Статьи редакции
Привет, это небольшая история о том, как продуктовая команда vc.ru в свободное время занялась сторонним проектом, но переоценила свою экспертизу в разработке кросс-платформенных приложений и неправильно определила MVP. Наша очередь делиться неудачными кейсами.
Как родилась гипотеза
То, что стало повсеместным с появлением коронавируса — дистанционная коммуникация — для нас, как и для многих других ИТ-компаний, уже давно является обыденностью. 80% коллектива распределены по России и СНГ, то есть вся работа строится виртуально: Slack, Jira, корпоративный портал (на платформе, на которой мы запускаем медиа) и звонилки. Нас устраивали все инструменты, кроме тех, в которых мы проводили голосовые совещания.
Два года назад, когда о пандемии ещё даже не шло речи и рынок не был завален большим количеством разнообразных звонилок, мы стали искать для себя удобный инструмент нетекстовой коммуникации. Zoom никому в команде не нравился по самым разным причинам, а встроенные звонки в Slack, который мы используем как мессенджер, сильно тормозили. Чаще всего мы созванивались через лаконичную веб-версию Whereby.
Наших разработчиков раздражало, что для каждого звонка нужно создавать ссылку или отдельно собирать людей по мессенджерам сообщением «Пошли поговорим», потому что встречи в распределенной команде длятся целый день.
В большинстве случаев мы общаемся с одними и теми же людьми на одни и те же темы.
Мы решили попробовать применить в корпоративной коммуникации модель Discord, когда каналы существуют перманентно и ты можешь находиться в них фоном весь рабочий день (а можешь и подключаться только тогда, когда это нужно). В первом случае для того, чтобы начать говорить, достаточно размьютиться. Если человека нет в канале, можно аккуратно его вызвать, но при этом его экран не перекрывается агрессивным звонком, а просто приходит лаконичный пуш.
Таким образом, например, бэкенд-разработчики будут находиться на связи, как по рации. Именно они собрали себе прототип на NodeJS, назвали его Heyka («приветик» по-польски):
Прототип всем понравился
Применение модели Discord в корпоративном общении с открытыми и закрытыми каналами пришлось по душе сразу всем отделам компании — мы начали использовать его на ежедневной основе уже в форме прототипа. Он заметно сократил время на организацию коммуникации в компании. Отдельно понравилось то, что разработчики могли подключаться к совещаниям дизайнеров или менеджеров, чтобы следить за эволюцией продукта (и наоборот), потому что недостаток горизонтальной коммуникации — главная проблема распределенных команд.
Всё это навело на мысль попробовать обличить его в нормальный интерфейс и раздать на тестирование нескольким командам. Мы наняли и выделили в отдельную команду троих разработчиков.
Как устроена Heyka
Взаимодействие с Heyka начинается с экрана логина. Мы задумывали его как расширение для корпоративных систем вроде Slack, MS Teams и прочих. Авторизация через них позволяет быстро пригласить коллег и даже продублировать каналы или чаты:
В уже рабочем виде компактное (это было для нас важно) приложение по своей структуре напоминает привычные, но уменьшенные в размере, инструменты коммуникации: Slack, Telegram, Discord. Слева находятся публичные и приватные каналы, список коллег для индивидуальной коммуникации:
Пользователь выбирает канал, видит список участников и заходит в него через кнопку Connect. Для приглашения внешних гостей есть возможность сгенерировать временную ссылку для входа через веб-версию:
После входа в канал, если активируется другое окно в системе, Heyka сворачивается до маленькой плашки с основными элементами управления:
Конечно, звонок можно быстро развернуть:
Например, чтобы посмотреть чей-то шеринг экрана.
Хотя смотреть можно и фоном, в компактном режиме. Видео переключается на того, кто говорит:
Одним из принципиальных моментов для нас было то, что входящий звонок в 2021 году не должен перекрывать никакие окна, вешать систему и насаждать длительным звуковым сигналом — это просто обычное уведомление из мессенджера. Сама Heyka быстро активируется из системной панели в правом верхнем углу на MacOS, как часы или переключение языка, и правом нижнем на Windows.
Мы предполагали, что некоторые пользователи, особенно разработчики, могут не согласиться сидеть в каких-то каналах «фоном», хотя это и необязательно — каждый использует по-своему. Все равно для них предусмотрели вкладку, которая показывает все действия и данные, которые приложение отправляет на сервер.
Конечно, никакая коммуникация невозможна без мобильных приложений.
Где начались ошибки
Начались они на стандартной и распространённой для неопытных команд развилке: выпустить продукт с минимальной функциональностью — каналы и голосовое общение — или допилить «ещё немного фишек, так ведь будет круче». Мы не успели заметить, как стали больше думать, что мы делаем, а не зачем. А видео? А шеринг экрана? А рисование? А приватные каналы? А текстовый чат?
Менеджерские ошибки повлекли за собой в том числе проблемы в коде. Мы традиционно являлись веб-разработчиками — это наша специализация. Поэтому не очень ясно, о чем мы думали, когда говорили друг другу «Heyka будет работать на всех платформах: Mac, Windows, iOS, Android, Web, Linux». Нам достаточно было сделать веб и мобильные приложения.
В итоге эксперимент превратился в сложный долгострой, каждый шаг только усложнял его, и наступила пандемия, которая в буквальном смысле взорвала рынок. Голосовой коммуникацией занялись все, в итоге их сделал и сам Slack и, наконец-то, Telegram.
В конце концов, было наивно полагать, что без опыта в архитектуре, просто на готовой технологии WebRTC, мы сможем построить глобальный продукт. Хотя представленная функциональность уже работает.
Что будет дальше
О самом эксперименте, конечно, не жалеем — было интересно, многому по ходу дела научились. Эксперименты проводить полезно, но ещё полезнее — вовремя их останавливать. Мы в этом году привлекли небольшие инвестиции, поэтому хотим сейчас сфокусироваться на развитии нашей основной платформы, а уже потом, с учётом ошибок, вернуться к теме корпоративной коммуникации, которая нам очень интересна. Пока что продолжаем пользоваться Heyka внутри компании — наши нужды она покрывает.
Для продукта сейчас видим несколько сценариев
- Продажа тем, кто умеет и хочет делать такие продукты.
- Поиск технических партнёров, с которыми мы сможем продолжить в качестве продуктовых менторов.
- Если ни то, ни другое не случится до нового года, то мы просто опубликуем на ProductHunt её исходный код — вдруг кому-то пригодятся наши наработки.
Какие технологии использовали
- Фронтенд: Electron, Vue, Vuex, Stylus
- Бэкенд: NodeJS, Hapi, Postgres, Redis
- WebRTC: Janus (в этой части мы, похоже, с выбором ошиблись)
У невыпущенного продукта есть сайт, который мы не доделали — heyka.app. Писать письма и вопросы можно на [email protected].
Всегда ставлю плюс людям которые СДЕЛАЛИ!
Независимо от результата - всегда лучше сделать, чем не сделать.
Интересная позиция. Я вчера сделал шарик из ткани, поставьте плюсик пожалуйста)
Комментарий недоступен
Интересно, есть тут люди, которые знают, что подобные выражения всего лишь способ утвердить своё мнение?)
работал я как-то в компании где нужно было дискорд постоянно в режиме «рации» держать, это такой ад когда ты сидишь в тишине в своих мыслях и кто-то начинает что-то говорить, кароч на дня 2 меня хватило)
а я сделал на работе что бы каждый в своей комнате сидел и если что-то кому то нужно, он просто к тебе в комнату заходит и спрашивает, а потом возвращается в свою
но всем было поебать и поэтому я удалил сервак)
латокен? :)
вывод один, у vc.ru есть недогруженные производственные мощности...
А темной темы как не было, так и нет.
хотя критикал баги висят под год
Комментарий недоступен
кстати да) в народе бы его скорее всего называли хуйком)
С хейтерами веселее будет)
На самом деле ниша корпоративного голосового мессенджера всё ещё открыта.
От пустоты ниши люди пользуются дискордом ШТО ?)
Текст, чаттинг , не нужен, так вы размоете позиционирование.
Рынку нужен хороший корпоративный голосовой инструмент.
Обязаетльно выпускайте.
Да ладно, энтерпрайз чатов разного калибра можно сказать полно, хочешь иностранное, хочешь отечественное.
https://tandem.chat Вроде норм) для тех у кого есть потребность, у нас вот что-то нет такой
чем MS Teams не угодил
Плюс. Мы много искали и в итоге остановились на достаточно кривом Google Chat. Он покрывает большинство потребностей, но юзабилити оставляет желать лучшего.
@vc.ru Вы много работали, и сделали классное приложение! Возможно даже класснее многих выпущенных продуктов. И совершенно зря написали про него статью в духе "как мы облажались". Нужно было написать совершенно по-другому: "Ура, виси запилили вам всем новый крутой коммуникационный фреймворк. Побежали смотреть! (ссылка на репозиторий)." Добавили бы в приложение ленты с сайта, чтобы можно было ещё и vc.ru там читать. А дальше мы бы его вам там и допилили. Вместо этого вы предложили на новый год принести в ваш репозиторий гвоздички. Возможно у вас есть какое-то предубеждение, что opensource - это кладбище неудавшихся проектов.
К сожалению, русские не умеют в продажи и маркетинг... А в остальном они супер.
Думаю главной ошибкой было такое долго делать втихую, надо было сразу анонсировать как сделали что-то рабочее, причем сразу на зарубежном рынке. Так бы сразу были бы понятны реальные потребности людей и не получилось бы делать фичи ради фич)
Хотелось бы понять смысл статьи?
Компаний которые потянут финансово конкуренцию с телегой и Slack в стране всего 2-3 и их все прекрасно знают. Неужели Вы не догадалось им предложить Ваш продукт?:
Или это покаяние перед инвестором простите мы думали мы эксперты а оказались не эксперты, простите что прожрали Ваши 6,5 лямов?
Или это для нас пользователей Вашего ресурса? Так напишите нам каков план развития платформы. Мы сообща может что подскажем, поделимся что бесит чего не хватает. Возможно какой то конструктив получится.
*открыл форточку*
те 2-3 компании сами в состоянии собрать такой апп
если они этого не делают, это лишь значит, что не видят в нем рентабельности
Да все норм, это просто в ДНК разработчиков - сделать свой чатик с блэкджеком и шлюпками) Но не у всех получается вывести его в люди, да и зачем.
А как же безграничные возможности. Миллионы пользователей. Всем все нравится и все в восторге от приложения. Ведь оно умеет все и даже больше. Инвесторы встают в очередь и кидают деньги. В итоге гугл покупает проект, ты получаешь пару миллионов и переезжаешь в Элэй
продолжаем пользоваться Heyka внутри компании — наши нужды она покрывает
Одно с другим как-то не вяжется 🙂
это кейс по разработке mvp для выхода на рынок, и продукт не вышел а значит неудачный, тут нет никакого противоречия.
Значит свяжите!
Ждал эту картинку, но никто не скинул(
Насколько я понимаю, компоненты vue не получилось бы использовать в мобильных приложениях, потому что сам автор Vue упоминал, что фреймворк не сильно подходит для таких задач, лучше использовать React + React Native. Выбрали Vue, а не React потому что команда была или по другим причинам?
P. S. Дизайн очень приятный, на Product Hunt такое залетит)
В компании есть iOS и Android разработчики, по этому это была не проблема. Еще знаю, что в React Native, все что связано с Audio и Video по итогу пришлось бы писать нативно. А вообще Vue — заинка, нам всем больше нравится.
Буэээ, ну и старьё, причем глючное. Флаттер еще ничего.
Так а чем первоначально Discord-то не угодил? Что он звонит, а не один раз пиликает? Эт наверное решаемо
Дискорд - тяжелый java-монстр, еле ворочается на простых машинках, постоянно глючит и тормозит. На геймерских компиках он конечно более-менее сносно работает.
То что он не корпоративный. В нем нельзя отделить компанию от всего остального.
WebRTC, Electron.. ммм
Я его слепила из того что было (С)
Вам надо предложить продукт тем, кто закрыт засовами со всех сторон секюрностью и выбирают standalone решения. Я работал в такой конторе.
Они бы купили, но вряд ли захотели бы это поддерживать, конечно. Если этот момент решить, думаю все получится.
Искал по всей статье, не нашел слова SIP.
пробежал глазами и не нашел ответ на вопрос:
а что бы вы сделали по другому?
Немного непонятно – сейчас это изменилось или по-прежнему всех собирают по мессенджерам и зовут в эту аппу?
продукт хороший,но может что-то с коубом сделайте,а то развития нету,зачем покупали-то?
Бесплатно вроде отдали коуб комитету
Вопрос: зачем надо было делать ?
Комментарий недоступен
Heyka она же Хуйка. Кончено идея не выстрелила, поменяйте название и дело пойдёт☝️
Комментарий недоступен
Спамер тоже человек
это способ монетизации
Ведь webrtc это очень просто, но не для групповых чатов, так как входящие подключения тормозят устройство. Мобилы, наверное, вообще задымятся. Да и электрон для данного приложения не лучший выбор, так как придется писать и поддерживать аж три вида приложений - вэб, электрон и мобайл.
Мне вообще кажется, что в 2021 году подобное нужно реализовывать на flutter.
Чтобы потратить еще больше времени и денег на борьбу? :)
Flutter хорош, но не для специфичных задач. Для специфики лучше не искать кроссплатформенных решений без соответствующей экспертизы (ради портфолио/строки в резюме точно не стоит такое делать).
А что не так с выбором Janus? Конкретно он или весь стек SFU решений не оправдывают ожиданий?)
Тут мы почему-то еще с первого MVP решили выбрать AudioBridgePlugin (MCU). Идея казалась классной. Всего два соединения на клиент вне зависимости от кол-ва участников. Следующим слоем наложили VideoRoom, и видео потоки пошли по SFU.
С течением времени начали задумываться о качестве звука. В принципе, качество звука было лучше чем в Слаке на порядок, но когда два и более человек одновременно начинают говорить (понятно что это абсурд, но все равно такое часто случается) в аудио потоке появляются артефакты (громкие трески), довольно не приятные, особенно если сидишь в наушниках. Долго дебажили в чем проблема, и оказалось дело в алгоритме софтверного микшера, и Lorenzo в каком-то треде писал, что тут ничего не поделать, они выбрали оптимальный алгоритм по трудозатратности/качеству.
Стали думать, что нужно перевести Audio в тот же VideoRoom и потестить как оно будет. Параллельно мы оптимизировали код, чтобы шаринг видео не отжирал много ресурсов. И заметили такую штуку, что тот же Google Meat использует один PeerConnection для нескольких потоков. Janus при этом на каждый видео поток создает отдельный PeerConnection, что на ровном месте с каждым новом потоком создает нормальный такой оверхед в ~15% от ядра, даже если видео уже перестало стримится, а ты забыл задестроить его.
Про кривые доки, API и JS клиент вообще молчу.
Вообще mediasoup.org очень нравится с виду. В демке видео потоки так же, как в Google Meet группируются в одном PeerConnection'е.
Привет :)
Гейка???
Пробовали FaceTime (с новой фичей)?
Что там за новая фича?
Дураки вы, телеграм бота нужно было делать, за 3 часа, нет, лучше за час
Не знаю как проект, но лендинг классный и темная тема хороша
темная тема хороша, но лучше бы сначала ее на сайтах коммитета сделали бы
Вот какой классный лендинг. И баги тоже
На чем написаны десктопные клиенты?
Electron, Vue, Vuex
А Скайп и Вацап чем не подошли. Берите и созванивайтесь. Но хипстерам всегда нужно что-нибудь эдакое.
Скайп? То есть серьезно- скайп?? Вчера созвониться надо было с коллегой из другого офиса- кнопка звонка просто не нажималась. Я от злости уже по мышке кулаком бил. Заработало после перезапуска. А эта раздражающая хрень, когда фокус ввода текста постоянно скачет в строку поиска контактов, а ты набиваешь предложение, думая что в поле сообщения.
Видно человека который не пользовался подобными приложениями(теми что в статье). Давно в whatsapp можно комнаты создавать? В дискорд например нет никаких проблем зайти в одну из комнат, пообщаться и потом без проблем перейти в другую комнату/сервер и там уже общаться с другими людьми. Без лишних телодвижений в виде звонков и прочего подобного. Я уж не говорю про ситуации, когда нужно собрать несколько десятков человек.
Не совсем понял, как пандемия вам помешала? Наоборот можно было выпустить паблик бету и откусить кусок рынка у убогого зума
Появилось много решений на рынке
мне зум нравится, после убогого скайпа как будто на феррари пересел
Давайте под каждой статьей поставим WebRTC, чтобы комменты стали аудиовизуальными и в реальном времени?
В комментариях к статьям в рунете, где люди делают ровно одну функцию для MVP, пишут, что мало. Там, где делают много функций, пишут, что много.
А я тут просто отмечаюсь в очередной раз, чтобы Комитет взял меня адвайзором по продукту ( ͡° ͜ʖ ͡°)
Идея крутая, молодцы! Только продавать тут нечего - слепленное нечто, очевидно, никуда не годится.
это не mvp, а хуерга со свистопределками, начиная с дохера способов авторизации и кроссплатформенности сразу, и главная ошибка то, что не было сделано product market fit и не было стратегии go to market ¯\_( ͡° ͜ʖ ͡°)_/¯
но лойс поставил)
Избавьтесь от сервера и сделайте P2P коннекшен, и ваш мессенжер станет популярен у миллионов.
WebRTC – это и есть P2P
MESH годится максимум до 3-ох человек в комнате, дальше клиентские устройства будут лажать
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Комментарий недоступен
шейринг
Буквы Й там не было и нет
Комментарий недоступен
Комментарий недоступен
Почему нельзя было взять открытый готовый код и сделать адаптацию под себя?
( пример Tinode ).
Я жду релиз heyka ❗️. Или на худой конец исходник чтобы собрать и пользоваться 😅
Комментарий удален модератором
Комментарий недоступен
Дизайн классный. Но Electron лучше не использовать - и слак и тимс на Electron- и производительность там мягко сказать плохая. С Electron хорошо научилась работать только команда VSCode. Понятно, что хотелось кроссплатформу и быстро.
"Менеджерские ошибки" - это самая распространённая причина проблем, с этим в России вообще проблема. Менеджер должен слушать и слышать, что говорит ему IT-отдел, а это редкость.
В качестве развития можно попробовать делать заказные фичи-расширения для нужд бизнеса. Либо ехать в Кремниевую долину за инвестициями и РАСКРУТКОЙ. Российские инвестиции - это хорошо, но без связей в "Сан-Франциско" в США будет раскрутить трудно.
Продукт офигенный , дизайн отличный , только маркетинг стратегию и в путь ! На счет стэка - pwa скорее всего был бы более универсальным и доступным решением.
Читается как hyeyka
Кажется, что вы плохо сделали домашнюю работу и не заресерчили вы рынок, судя по описанию вы хотели сделать аналог проекта из y combinator https://tandem.chat
Пользуйтесь, не благодарите)
быстренько адаптировали слитый код твича?)
Хехе, у нас тоже была такая звонилка, но помощнее со всеми рисовалками, шарингом презентаций на 150 человек, каналами, только задачи другие. И так же её не успели доделать. И янус у нас был и мы тоже отказались от него😀
Комментарий удален модератором
А зачем она нужна если есть файлообменник Скайп?
Электрон? Это значит, приложение размером на полгигабайта вышло?
а могли бы темную тему сделать...
Жаль, что прекратили работу над проектом. Большие молодцы, что реализовали, хотя бы на том уровне, что есть. Описанные "менеджерские ошибки" считаю случайностью или обычным процессом разработки того или иного продукта.
В этом и проблема: ясно, что у Вас свои обороты, но всё же кем бы вы ни были, российским или иностранным разработчиком или владельцем любого бизнеса, который в состоянии сделать что-то своё - никогда не надо стесняться быть кому-то альтернативой.
Сама по себе альтернатива тем же Телеграмму и Slack'у это уже сам по себе статус. Надо верить в свой продукт. Надо накидывать свои фичи и продвигать. Откусывание своей части рынка гарантировано.
Комментарий удален модератором
Я так и не понял почему вам не подошел дискорд, если нравится его функционал
Здорово! То есть там единорогов надувают а вы ват так ловко сделали? Выпускайте, российское решение 🤟👍
Думали об инвестициях! VC может стать бизнес соцсетью пока другие говорят об этом.
Сейчас такой мессенджер у openland. Там только чаты. Они сами по себе. А у вас все вокруг статей, по рейтингу. Разве можно исходный код публиковать? Почему не растить 🤗
По дизайну выглядит как Discord, так что хорошо что они её не выпустили, много бы хейта словили
Что решили то? Купили у Вас или выложите исходный код?
симпотичный дизайн и функционал вроде не скудный — я бы пользовался