В принципе я с вами согласен. Знания программирования не должны быть необходимыми, чтобы быть опытным разработчиком интерфейсов и рабочих процессов. Тем не менее, знание возможностей и ограничений используемой технологии может помочь дизайнеру пользовательского интерфейса более эффективно работать с программистами.
Там, где знание программирования может помочь, если разработчики выпускают дым, что что-то не может быть сделано, когда это возможно, некоторые знания используемых инструментов могут помочь опровергнуть это. Если разработчики уверены, что что-то не может быть сделано, то знание инструментов может помочь дизайнеру пользовательского интерфейса найти подходящее решение, которое соответствует целям проектирования и достижимо.
С должным образом сотрудничающим персоналом разработки дизайнеру пользовательского интерфейса понадобится очень мало (если таковые имеются) знаний о конкретных используемых инструментах графического интерфейса.
Я был на стороне разработчика, где меня просили сделать что-то невозможное или непрактичное. Я всегда работал с дизайнерами, чтобы найти счастливую середину, которая отвечала целям дизайна. Иногда то, что я считал невозможным, на самом деле было возможно. Иногда нам приходилось делать вещи по-другому. Несколько вещей должны были быть отложены как «возможно, но слишком много усилий». (Например, приложение на основе SWT, которое стало панелью задач Windows. Определенно возможно, но нецелесообразно для рассматриваемого проекта, так как для него потребуется собственный код.)
Самое главное, чтобы обе стороны осознали, что находятся в одной команде.