12 факторов, влияющих на качество веб-приложений

Важные факторы влияющие на качество ваших продуктов

Кодовая база

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

Система конфигурирования

Конфигурация должна быть выделена в отдельную подсистему, а сами конфигурационные данные обрабатываться и храниться в рамках единой политики (например, использовать среду окружения)

Сервисный подход

Инфраструктурные вещи должны использоваться через надежные сервисы, а не переписываться каждый раз с нуля.

Явные зависимости

Зависимости должны быть определены прозрачно и группироваться (или изолироваться) по отношению к собственному коду

Разделение на четкие стадии развертывания

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

Процессы

Разработка программного обеспечения должна быть организованна по процессным подходам (минимально - процессы проектирования, документирования, контроля качества и разработки)

Резервное копирование

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

Горизонтальное масштабирование

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

Вертикальное масштабирование

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

Контроль и улучшение производительности

Должны профилироваться время загрузки, время отклика системы, количество единовременных конкурентных запросов и т.д. Должны быть проработаны контрольные точки (SLA) в рамках которых должна функционировать система

Логирование

Должна быт продумана подсистема логирования и составлен список логируемых данных (по списку можно проводить моделирование проблемных ситуаций и выявлять недостающие данные, которые нужно логировать).

Администрирование

Должна быть проработана политика администрирования программного продукта.