Dealing with the customer / developer culture mismatch on an agile project
- by Eric Smith
One of the tenets of agile is ...
Customer collaboration over contract negotiation
... another one is ...
Individuals and interactions over processes and tools
But the way I see it, at least when it comes to interaction with the customer, there is a fundamental problem:
How the customer thinks is fundamentally different to how a software engineer thinks
That may be a bit of a generalisation, yes. Arguably, there are business domains where this is not necessarily true---these are few and far between though. In many domains though, the typical customer is:
Interested in daily operational concerns--short-range tactics ... not strategy;
Only concerned with the immediate solution;
Generally one-dimensional, non-abstract thinkers;
Primarily interested in "getting the job done" as opposed to coming up with a lasting, quality solution.
On the other hand, software engineers who practice agile are:
Professionals who value quality;
Individuals who understand the notion of "more haste less speed" i.e., spending a little more time to do things properly will save lots of time down the road;
Generally, very experienced analytical thinkers.
So very clearly, there is a natural culture discrepancy that tends to inhibit "customer collaboration".
What's the best way to address this?