Pzz>Я подозреваю, что проектировщик UI должен хорошо разбираться в предметной области, но не должен разбираться в программировании.
Тут должны совпасть две вещи.
Первое. Проектировщик UI должен хорошо представлять себе основные варианты использования (use cases). То есть, он должен понимать, для чего, как и кем будет использована программа.
Второе. Такой человек должен иметь чувство прекрасного, то есть, он должен чувствовать эстетику. Не рассуждать об эстетике с точки зрения научной теории, прикрываясь рациональностью и прочим, а именно чувствовать прекрасное.
Каждый из пунктов встречается редко сам по себе. В совокупности встречается еще реже. Поэтому и имеем тот софт, что имеем...
Навык или отсутствие навыка программирования тут не важно. Хотя если человек что-то умеет делать одно, то у него меньше шансов уметь хорошо делать что-то другое. Но может попасться и человек, который чувствует прекрасное, и который умеет при этом программировать, но таких людей мало, хотя и встречаются.
Собственно, поэтому и нужны команды людей, потому что редко, когда один человек может делать все. Такое тоже встречается, но редко, крайне редко