Индекс стабильности приложений: насколько исправны ваши приложения?

Индекс стабильности приложений: насколько исправны ваши приложения?

4 мая 2022 г.

Стабильность — это измерение работоспособности приложения и взаимодействия с пользователем.


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



Сколько у вас девяток стабильности?


Обеспечение бесперебойной работы ваших клиентов имеет первостепенное значение для повышения конверсии, вовлеченности и удержания.


Хотя стабильность обычно является ключевым показателем эффективности, принадлежащим инженерным организациям, она оказывает значительное влияние на общую производительность и рост бизнеса.

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


Эти данные также могут помочь вам определить SLA и SLO стабильности приложений, которые аналогичны «пяти девяткам», которые инфраструктурные и операционные группы используют для измерения времени безотказной работы и доступности.


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



Эти данные также могут помочь вам определить SLA и SLO стабильности приложений, которые аналогичны «пяти девяткам», которые инфраструктурные и операционные группы используют для измерения времени безотказной работы и доступности.


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



Мобильные приложения


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


Данные включают приложения для нескольких мобильных платформ разработки, включая Android, iOS, React Native и Unity.


На показатели стабильности отрицательно влияют события завершения сеанса, в том числе сбои и ANR ( Приложение не отвечает) в приложениях Android, React Native и Unity и OOM (недостаточно памяти) в iOS-приложения.





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


Медиана стабильности приложений Android, как правило, несколько ниже, чем у приложений iOS, поскольку Android представляет гораздо менее ограниченную среду разработки.


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


Подробнее о фрагментации Android


React Native позволяет командам инженеров совместно разрабатывать приложения для iOS и Android написание кода один раз для повсеместного развертывания сопряжено с некоторыми компромиссами. Часто React Native используется, чтобы открыть мобильную разработку, например, для инженеров JavaScript, которые могут не привыкнуть к проблемам, которые она представляет.


Также необходим опыт работы с Android и iOS, чтобы эффективно исследовать и исправлять ошибки в нативных слоях кода. Это может объяснить более широкий диапазон и немного более низкую медианную стабильность.


Подробнее о React Native


Из-за изолированной среды приложений Unity вероятность возникновения ошибок, приводящих к сбою всего приложения, гораздо меньше.


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


Веб-приложения


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


Данные включают приложения с нескольких платформ разработки интерфейса, включая Angular, Backbone, Ember, React и Vue.


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

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


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




Angular, Ember, React и Vue – это современные продуманные платформы JavaScript, созданные с учетом обработки ошибок. Angular и React были созданы и спонсировались командами разработчиков Google и Facebook. Инженерные организации, работающие с этими платформами, имеют доступ к ресурсам и документации, необходимой им для исследования и исправления ошибок, которые могут повлиять на стабильность приложений.


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


Стабильность каждого приложения отслеживается в браузерах, то есть клиенты, сталкивающиеся с ошибками в Internet Explorer, Google Chrome, Mozilla Firefox и других браузерах, включаются в общую оценку стабильности приложения. Также включены ошибки, вызванные расширениями браузера ; однако большинство инженерных организаций не тратят ресурсы на расследование и исправление этих ошибок, поскольку их код не является виновником.


Размер команды инженеров


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


Чтобы понять, влияет ли размер команды инженеров на стабильность приложения, мы рассмотрели стабильность приложений, поддерживаемых несколькими группами инженеров разного размера.




Размер команды инженеров, как правило, прямо пропорционален возрасту организации. Молодые организации отдают приоритет соответствию продукта рынку и им необходимо быстро выпускать новые функции. Поддержание высокой стабильности приложения менее важно, чем захват доли рынка и увеличение конкурентного преимущества. Это может объяснить, почему чем меньше команда инженеров, тем ниже медианная стабильность.


Более крупные инженерные группы обычно работают над более зрелыми приложениями, но стандартизация стабильности может стать все более сложной задачей. Устаревший код, нарастающий технический долг и сложная структура команды — это лишь некоторые из препятствий, которые могут затруднить поддержание более высокой стабильности. Это может объяснить, почему инженерные организации с более чем 100 инженерами имеют более низкую медианную стабильность и более широкий диапазон.


Ранее опубликовано [здесь] (https://www.bugsnag.com/research/are-your-apps-healthy)



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE