I was thinking today about the consulting projects we have completed over the last year or two, ranging from successful to painful. I started to think about the factors that differentiate these two broad project types and it occurred to me the human factor was a critical element.
Those projects that involved pain were typically those which we performed at arms length, like, "You send us the requirements and we'll build it". This type of project typically causes the rubber ball effect where new requirements and bug reports get thrown over the fence to us, while we do the work and throw back what we think the customer wants. The fence in the middle stops the human elements being effective, as all means of "normal" communications are stopped, or reduced to email, a completely emotionless communications medium.
The more I thought about this, the more it seemed that there is so much you learn by being physically close to your customer. The primary advantage is that you learn their business completely by observing conversations and events that are otherwise missed. Face to face meetings allow you to observe how people's body language betray what they are telling you. You know in an instant if what they are saying is what they neccesarily believe or whether there is more to the story. In email and on the phone these subtle gestures are lost, allowing the solution provider to unknowingly continue down the wrong alley ever toward impending doom.
Obvoiusly this customer loving comes at a cost. The more love you give the customer, the more time it takes and typically that time is not "productive time" (such as actually building the solution). Someone needs to pay for this time and that someone is the customer, meaning a higher overall cost for the project. Fear not, the higher cost also brings with it a much better fit and generally far smoother running project.
In future, we will endeavour to always work closely with our customers, even if it means losing some jobs due to the increased cost. I'm sure it is better for our reputation to miss out on a few jobs than to have disgruntled customers spreading the word.