Для хорошего результата нужна долгая и нудная работа непосредственно с пользователем. Анализ реальных сценариев работы у как можно большего числа людей.
У любой программы есть цель, с которой она делалась. И есть только два варианта использования программы: в качестве инструмента решения задачи, для которой программа создавалась, и неправильный. Заниматься "долгой и нудной работой непосредственно с пользователем", чтобы ему было удобно использовать программу по второму варианту, не считаю целесообразным. А для первого варианта полная информация, которую вы хотели бы получить от пользователя, у вас уже есть: он хочет решить задачу, а у программы цель - это решение этой задачи.
Если же приходится для первого варианта производить опрос жертв, то это лишь значит, что разработчик не понимает, какую программу он делает, что она должна делать. И интерфейс здесь - самая меньшая из проблем. И долгая работа с пользователем - это как крик отчаянья: "да что же я, чёрт возьми, делаю?! Скажите мне!". А причина проста: не разработана предметная область. Такую разработку может дать либо аналитик, либо носитель предметной области, который, в свою очередь, когда-то получил её от того, кто провёл анализ. И если на анализ нет времени у того, кто пишет программу, то у оператора АРМа его нет и подавно - он работает, и ему некогда. В общем случае. И его опрос принесёт информацию, полезность которой крайне ограничена.