🐌 «[Перед воспроизведением] Мы проводили где-то 1–2 часа в день на каждого разработчика в этом чистилище воспроизводимости. Это сказалось на нашей скорости разработки, и наша способность реагировать и решать проблемы была огромной. Мы подумали, что должен быть лучший способ». — Марк Пробст, технический директор

Что такое Глайд?

Компания Glide, основанная в 2018 году, позволяет любому легко создавать мобильные и веб-приложения без написания единой строки кода. Миссия Glide — создать миллиард новых разработчиков программного обеспечения к 2030 году (что нас очень волнует). Компания позволяет людям создавать и распространять приложения, созданные из электронных таблиц, с настраиваемыми действиями и рабочими процессами.

Glide начал с мобильных приложений и недавно запустил Glide Pages для веб-приложений. Glide является лидером движения без кода, помогая людям внедрять инновации и воплощать в жизнь цифровой опыт в сфере контента, коммерции и — все чаще — предприятий, создающих собственные приложения.

Стек Glide довольно стандартный — React с использованием Typescript поверх Firebase и Google Cloud Platform; это единый стек с примесью Redux.

«Мы использовали все скучные технологии, чтобы настроить и запустить нашу среду и начать поставлять код». — Джейсон Смит, вице-президент по инженерным вопросам

Быстрый путь к созданию производительных и функциональных приложений

🐛 «Когда мы нашли ошибку в разработке и должны были воспроизвести ее снова и снова, чтобы убедиться, что она работает, это замедлило нас ТОННУ и было очень болезненно. Все это уходит с Replay». — Марк Пробст, технический директор

Вам нужна сложная платформа для создания простого инструмента для разработчиков без кода. Сложные приложения сопряжены с высоким потенциалом ошибок и высокой планкой для правильного выпуска релизов.

В процессе разработки Glide часто сталкивался с проблемами, которые сильно снижали скорость разработки:

«Когда мы обнаружили ошибку в процессе разработки и нам пришлось воспроизвести ее снова и снова, чтобы убедиться, что она работает на всех наших машинах, это замедлило нас на ТОННУ и было очень болезненно», — сказал Марк. Поскольку это такое сложное приложение, код Glide может выполнить одну функцию тысячи раз всего за несколько секунд, что еще больше усложняет определение места возникновения ошибки. «С традиционными отладчиками нужно быть очень осторожным, чтобы не перешагнуть ту часть, где на самом деле есть ошибка. Все это уходит с Replay». — сказал Марк. «Вы можете вернуться в прошлое, добавить точки останова, распечатать операторы, и Replay будет жить вечно».

Обнаружение воспроизведения

🚨 «Без Replay нам пришлось бы выполнять квест, делать демонстрацию экрана с открытыми журналами консоли, и это был бы долгий путь со срочными вызовами Zoom, которые должны быть выполнены немедленно, иначе ошибка исчезнет. “ — Марк Пробст, технический директор

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

«Мы быстро масштабировались и нуждались в более эффективном способе создания и доставки быстрее, поскольку наша платформа становилась все более сложной, а также для сортировки ошибок, чтобы быстрее реагировать на проблемы клиентов». — Джейсон Смит, вице-президент по инженерным вопросам

Джейсон поделился Replay с Марком в качестве решения их проблемы с воспроизводимостью. Оба были в восторге от идеи устранения возвратов назад и вперед при отладке. «Без повтора нам пришлось бы выполнять квест, делать демонстрацию экрана с открытыми журналами консоли, и это было бы долгим путешествием», — сказал Марк. «Часто нам приходилось звонить по этим срочным звонкам в Zoom, чтобы попросить о помощи, которая должна была произойти немедленно, иначе ошибка исчезнет», — сказал Джейсон.

Повышение скорости разработки и революционный подход к обеспечению качества и поддержке

Используя двусторонний подход, Glide начала использовать Replay сначала в своей команде разработчиков, а затем в отделе контроля качества и поддержки. У них даже были клиенты, записывающие проблемы, чтобы отправлять их с отчетами об ошибках.

«После того, как мы начали использовать Replay в нашем собственном процессе разработки, мы подумали, можем ли мы действительно предоставить это нашим клиентам? Мы сталкиваемся с теми же проблемами, связанными с отладкой между клиентами › технической поддержкой › контролем качества › инжинирингом, что и между инженерами в разработке». — Джейсон Смит, вице-президент по инженерным вопросам

Затем Glide начал добавлять повторы в качестве URL-ссылок для запросов на вытягивание, чтобы показать логику кода, лежащую в основе изменений функций. Эти повторы продолжают жить для более совместной разработки и документирования.

Когда Glide приняла решение добавить повторы в свой процесс поддержки, инженер службы поддержки Сантьяго Перес создал руководство для своей команды, чтобы начать использовать приложение Replay для записи проблем и добавления их в заявки. Они также начали просить клиентов делать записи, в результате чего проблемы решались еще быстрее.

«Получение повторов от поддержки полностью изменило то, как мы справляемся с поступающими ошибками. Теперь мы даже не можем получить отчет от службы поддержки, если он не сопровождается повтором. И если у нас нет повтора, это показывает нам, насколько сложнее действовать». — Джейсон Смит, вице-президент по инженерным вопросам

Джейсон поделился подробностями о том, как это выглядит на практике: «Возможность перейти дает огромное преимущество в производительности — вот ссылка → возьмите ее, откройте → прочитайте двухстрочное описание → немедленно начните отладку, не запуская среда разработки. Размышляя о сотрудничестве и организационной выгоде, «это НАМНОГО облегчило диагностику и назначение команды для сортировки. Иногда мы понимали, что это не ошибка, и могли быстро увидеть, если пользователь что-то неправильно настроил или у него было странное состояние сети, тогда нужная функция могла бы решить эту проблему. Это очистило и этот процесс для нас», — сказал Джейсон.

Понимание рентабельности инвестиций в воспроизведение

💸 «Глядя на нашу команду фронтенда, в хорошую неделю мы оцениваем, что экономим около 1 дня в неделю на инженера, что очень много. Для нашей основной команды из 5 человек это экономия 40 часов в неделю, консервативно только в часах разработчиков». — Джейсон Смит, вице-президент по разработке

Через несколько месяцев в Glide появилось несколько вариантов использования в рамках их рабочего процесса:

  • Разработка продукта — использование воспроизведения при отправке запросов на вытягивание, выявление проблем для выпусков функций, совместная отладка.
  • Обеспечение качества – при ручном контроле качества (а вскоре и при автоматизированном тестировании) с использованием Replay для локального тестирования новых функций и сборок, определения системных или отдельных проблем и внесения изменений в тест под давлением перед представлением более крупным клиентам.
  • Поддержка клиентов — использование повтора запросов в службу поддержки вместо того, чтобы тратить часы на воспроизведение шагов и воссоздание сред разработки для диагностики проблем.

Следующая глава с повтором

🛠 «Как технический директор я очень рад, что Replay работает над серверной частью. В последнее время я провожу там больше времени, и мне бы не хотелось заниматься отладкой, как пещерному человеку. В любое другое время я использую Replay». — Марк Пробст, технический директор

Replay работает над поддержкой Node и добавляет интеграцию с Cypress, Playwright и Puppeteer, чтобы Replay можно было использовать на серверной части и в рабочих процессах тестирования e2e. Мы также расширяем поддержку M1, чтобы повысить производительность Replay и ускорить отладку.

Если использование Replay только во внешнем интерфейсе экономит более 40 часов в неделю, представьте себе экономию времени при добавлении к тестовой и серверной средам. За этим будущее отладки с повтором.