Considerando as experiências que já tive no mercado, creio que o mais importante é ser solicito ao cliente e ter uma boa comunicação, para poder mostrar pra ele que você está para ajudar e fazer tudo que é possível para que ele tenha um software capaz de o auxiliar no dia-a-dia. Já trabalhei em um projeto que estava criando uma solução de BI para um usuário, e passei duas semanas inteiras fazendo ajustes que mudavam constantemente de requisitos, daí relatei isso ao chefe do projeto e ele me indicou que se eu ficasse criando conflitos com o usuário, isso poderia impactar que a solução teria grandes chances de não ser utilizado corretamente e frequentemente. É claro que até por questões contratuais, temos que ter os requisitos até formalizados em um documento e assinado, no entanto, ter essa percepção de sempre ajustar para as necessidades do cliente, creio que seja bastante importante e que irão entregar uma solução de qualidade de acordo com o que ele necessita.