ПО с точки зрения пользователя оценивается так: «с помощью ПО можно выполнить такую-то задачу, да или нет».
У этого «может» два основных аспекта.
1. Полнота функционала
2. Приемлимый уровень ошибок
Допустим. Ставится задача — программа создания текстов для их последующей печати.
Предположим, программисты увлеклись и сделали вставку картинок, вложенных таблиц, а вот печать пока не работает. Программу отдавать пользователям НЕЛЬЗЯ из-за пункта 1.
Но если одной из задач стоял просто набор текста, то отдавать можно — пользователь сохранит его в файл.
Современный софт решает много задач, но подход — тот же.
Еще помогает отслеживание темпа. Если темп замедлился, то возможно не хватает обратной связи от пользователей, чтобы принимать решения.