Потери из-за дефектной продукции включают:
1. Расходы на возврат дефектного продукта или партии.
2. Расходы на утилизацию дефектного продукта.
3. Расходы в связи со снижением спроса.
Во избежание таких потерь внедряются системы контроля качества.
Подобный подход применяется и в разработке цифровых продуктов в нескольких видах:
1. Ручное тестирование, осуществляемое QA[11]-инженерами.
2. Автоматическое тестирование – когда создается ПО, имитирующее взаимодействие с пользователями.
3. Автоматическое модульное тестирование (auto unit-test) – специальный код, создаваемый самими разработчиками для проверки созданной функциональности.
Также при разработке цифровых продуктов встречаются подходы, которые трудно реализовать в физическом производстве:
1. Переключатели фич (feature toggling) – позволяют дистанционно отключать функциональность у определенных групп пользователей, если обнаруживаются проблемы.
2. Прогрессивная раскатка (progressive rollout) – позволяет открывать функциональность постепенно на всю аудиторию, например по 10 % в неделю, и следить за возникающими проблемами.
3. Автоматический откат (automatic rollback) – в случае возникновения проблем функциональность приложения автоматически откатывается к предыдущей стабильной версии.
На уровне инженерных практик в процессе разработки вводятся критерии стабильности и критерии производительности для приемки разрабатываемого программного обеспечения. Например: «Время недоступности системы за последние 48 часов < 1 %», «Доля доступных функций за последние 48 часов > 99 %» и др. Более подробно критерии приемки, относящиеся к качеству разработки, мы рассмотрим в и. 3.3.