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

Атрибуты качества могут быть внешними и внутренними, внешние - идут от заказчика или видны заказчику, внутренние идут от архитектора или видны команде.

Цикл разработки программного обеспечения (SDLC) - оценка и проверка атрибутов качества, должны быть обязательной частью цикла разработки и внедрения ПО или системы.

Основные направления:

- Коррекция
- Совершенствование
- Адаптация
- Проактивность

Фиксация ошибок (коррекция)

Задача: минимизировать риски связанные с регрессиями.

Данный вид сопровождение направлен на фиксирование текущих проблем (багов) и организацию работы по их устранению. В процессах управления за это направление отвечает инцидент менеджемент. Основные характеристики инцидентов: приоритет (высокий, низкий), влияние (сильное, слабое), срок устранения. Архитектор может взять уже готовые системы классификации, в случае необходимости упростить или усложнить систему оценки.

Срок исполнения - обязательная характеристика инцидента, без срока это уже не инцидент

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

Развитие системы (совершенствование)

Задача: минимизировать риски связанные с новыми внедрениями и выдержать сроки внедрения.

Развитие системы включает в себя несколько важных процессов:

- планирование и внедрение фич
- технология разработки
- тестирование (с позиции технологии разработки)
- технологические миграции
- минимизация рисков и оптимизация сроков внедрения

Адаптация системы (адаптивность)

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

В данное направление включаются следующие процессы:

- CI/CD
- организация процесса управления конфигурацией

Проактивная аналитика (проактивность)

Задача: уменьшение технического долга, контроль над техническим долгом.

Основные процессы:

Основная проблема связана с монолитными архитектурами, поэтому при проектировании системы для обеспечения расширяемости и модифицируемости учитываются следующие принципы:

Метрики

Архитектор не отвечает за проектирование интерфейсов ПО и удобство использования софта, но отвечает за организацю процессов качество, касающихся дизайна. Сюда входит:

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

Высокая доступность определяется "девятками", т.е. количеством девяток, в цифре доступности (99%, 99.9%)

Метрики:

Виды мониторинга:

- ресурсный (пинг, место, память, таймсириес данные)
- бизнес

Типы агентов:

- агентский мониторинг
- безагентский мониторинг

Восстановление после сбоев

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

Методы борьбы со сбоями:

- Транзакционный контроль
- Резервирование (холодное, горячее)
- Резервное копирование (бэкап, снапшоты)

Тестирование должно быть автоматизируемым, чтобы быть частью CI/CD. Сегодня это золотой стандарт разработки. Но так же необходимо ручное тестирование, организация работы тестеров и этапность внедрения (stage).

Основные направления:

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