It’s not the client’s job to know what he needs – It’s our job to find out

While I was at Tech Ed 2008, I was a guest on a Software Quality panel hosted by the .Net Rocks crew, Carl Franklin and Richard CampbellDavid Platt said something that I really love (and I’ll paraphrase).  David gave the analogy of a doctor and a patient. 

We go to a doctor because we think we have a medical need and we need an expert to consult with and a provide a solution to what is ailing us.  The doctor listens and asks questions by which to formulate some possible solutions to the problem we present.  The doctor doesn’t expect us to even be able to talk in the language of medicine.

In software, we can’t expect our clients to know what they need.  Much like the depth of a patient may be “I need to get rid of this infection” or “Give me some pills.  I’m in pain”.  Our clients know what is causing them pain, in the business sense, so the problem is from that experience perspective.  Some clients might go so far as to ask for some “pills”, that is, they might ask for a specific software system that is assumed to solve the problem. 

It is the our job to listen and ask pointed questions to determine need.  Being software experts, we must also know how to ask the right questions to flesh out the need.  If the clients asks for something specifically, and we deliver, but that delivery doesn’t solve the pain, it’s our fault.  If I ask my doctor for a specific pill, he prescribes it, then I’m still in pain, it’s the doctor’s fault for allowing me to drive diagnosis.  We, as software professionals, are on the hook for responsible analysis that ensures any solution we provide adequately addresses the root of the problem at hand.

The client can’t tell us what he wants.  It our job to find out.  A required skill of any consultant at Headspring is analysis.  Analysis is something underrated, but analysis ensures we build the right thing.  The risk of building the wrong thing is so great that we can not afford it.  Building (prescribing) the wrong thing would be disaster for our reputation.  Analysis is what ensures we build the right thing.