Не QA, а тестирование

На выходных мыл посуду и вдруг осознал, что с термином Quality Assurance (QA) есть проблемы. Если перевести QA на русский, получится "обеспечение качества". Но я ни разу не видел и даже не слышал о существовании настоящего QA-отдела. В реальной жизни мне встречался только Quality Control (QC) или "контроль качества". Контроль и обеспечение — это разные вещи.

Когда софтверный продукт попадает на этап тестирования, то обеспечивать качество уже поздно. Качество уже заложено в продукте, и тестирование лишь определяет его уровень. Если QA-отдел занимается только тестированием, то это QC-отдел. У такого отдела нет ни права, ни возможностей по-настоящему влиять на качество продукта. Также как у напольных весов нет возможности повлиять на лишний вес.

Чтобы обеспечивать качество, нужно иметь власть над всем процессом производства продукта. Настоящий QA-отдел находится не в конце разработки, он стоит над всей разработкой и может системно влиять на неё. QA-инженер — это не тот, кого со словами "Что-то вы медленно работаете!" перед релизом пинает менеджер. QA-инженер — это тот, кто создаёт процесс, в котором нет места пинающимся менеджерам.

Компании и менеджмент ждут от QA-отделов ответственности за качество. Логика, в целом, понятная: QA — это обеспечение качества, а кто качество обеспечивает, тот за него и отвечает. Но проблема в том, что QA занимаются только контролем, и у них нет никаких инструментов для обеспечения. Правильнее было бы называть их QC-отделами или отделами тестирования. Возможно, тогда и ожиданий от таких отделов было бы меньше.