I've just read two statements that seem to be very different:
Des Weiteren ist mangelnde Kommunikation zwischen Programmierern und Nutzern eine nicht zu vernachlässigende Quelle von unzureichenden Produkten.
Translated:
A lack of communication between programmers and users is a source of poor [software] products.
Source: de.wikipedia.org
I think I have read something similar in CHAOS report of Standish Group.
And
Insbesondere bei der Rolle Development ist Kontakt zum Kunden oder zu den Benutzern nach Meinung des MSF geradezu zu unterbinden.
Translated:
According to MSF, especially the role "Development" should not have contact to the customer or to the user.
Source: msdn.microsoft.com
This also makes sense, because as a programmer I want to have happy end users. So the user likes to have a new feature, I'll try to implement it. This could lead to feature creep.
If I understand it correctly, MSF (Microsoft Solution Framework) tries to avoid this problem by a role that has contact to the customer (this is the product manager, the user experience role and maybe the testing role, isn't it?) and only one role that has contact to the development role (the program manager).
Question 1: How do agile methods deal with the problem of feature creep? I read that the developers should have very strong contact with customers in agile methods and that one of the main problems in using scrum is to persuade the customer to get involved in the process.
Does in SCRUM only the Product Owner have contact with the user / customer? Isn't this a problem, as the programmer might see different problems than the Product Owner?
Question 2: Who does the requirements engineering in agile methods and MSF?
Question 3: Do you validate in MSF / agile methods if your product does what the customer wants and the user needs before shipping it? How do you do it?