Полностью поддерживаю участника domandr.
Я проголосовал за ответ "Полностью оградить", потому что считаю, что общение программиста с пользователем не желательным и даже вредным. Под пользователем, я подразумеваю, человека, который выполняет определенные действия в системе. Такой человек не должен общаться с программистом и тем более ставить ему задачи по изменению функционала. Он не видит общей кртины и не знает, как работает система в целом. Я проработал в консалтинге и на внутреннем проекте. Желание пользователей могу свести к фразе из фильма "Бумбараш" - Эй, художник, нарисуй мне "Кунгуру". По этому такую поставновку задачи от пользователя считаю неприемлимой. В данной формулировке вопроса, как он вынесен на форуме.
Считаю целесообразным общения Разработчика системы и Заказчика системы. Т.к. эти люди много знают о системе с обоих сторон. В этом диалоге участие Консультанта тоже необходимо и свзяка троих даст наиболее большой эффект.
По этому в опросе произошла путаница понятий.
Описанный взгляд только с моей колокольни