Why client shaming is hurting the software industry.

When you work in the software industry, indubitably you will find the (now very famous)BOFH, and Clients from Hell material, where a  technical person complains about a client. Whether they asked for an impossible thing or software that doesn’t even make sense, the common mood (or at least what I get from them) is that the client is somewhat stupid, or short sighted. I don't want to discuss whether the clients are on the right or not, but I want to talk about the way technical people address non technical people.  

Often when non-technical clients address technical contractors, a breach in communication arises: the customer has something in mind, where they know what they expect from the system, or has an idea of what they need. Sometimes it won''t even make sense. But it is part of the job to understand what the client needs, and propose a solution to the problem that the client is trying to fix. And not to berate them for being technically unsavvy.

But what I think most people that is new to the IT and tech world seem to fail to understand is that something that a technical guy understands very easily, a non-technical person may not be even be aware of it existing. While I don't personally think it is a good thing to be non-technical-savyy in this world where technology predominates, one of the beautiful things of technology nowadays is that it is simple, simple for people to understand. 

If I hire an engineer to build me a swing, I don't want the engineer lecturing me on the strength of the rope, of the dynamic forces that act on the swing, or how the tension of the swing is equal to the weight of the person that rides, plus the angle at witch gravity pulls them. I just tell him that I want a swing in my backyard, I don't care whether it is aluminum plated rope or carbon fiber, I just want the swing for $x amount of money.

Naturally, I would expect some questions from him: 

–How many people will the swing hold?

–Three, no more than that

–How heavy can they be?

–No more than 200kg

–Are you expecting that the swing will give a full turn around the pole where its attached?

–No

And then he builds me a swing with the requirements I asked for and It is done. How is it different in software development? Well, to my view it isn’t that different. The main problem is that the client doesn’t know what variables may intervene in the process (dynamic forces in the swing anybody?) what kind of software they will need, how that technology works etc. I might even adventure that sometimes it is part of the job to be creative and design a solution. (I don’t think you need a swing, you may need a centrifuge). 

Some stories also mention that the client asks for impossible things. ( I want the swing to hold 100 tons, while on a tree branch ), but it is also part of the job to tell the client: If you want this kind of swing it'll cost you $xxxx, but you may want to use a nuclear powered swing made with carbon fiber for that.

Trying to understand what a client wants, and needs is essential to software development, and I can'tt seem to shake off the feeling that most of these Clients from Hell complaints arise from technical people not offering a solution, but focusing on the part where the client wants something and not understanding the motivations and needs of your client. 

Berating non-technical people is a huge problem we have today, there seems to be a stigma in the minds of technical people that people that refuse to see the easiness of technology today is  proof that their client is stupid, furthermore it widens the gap between technical and non-technical people and creates fear of being considered stupid, and creates trouble for our industry, where we should be open to people with great ideas and open minds.

By berating the customer we widen the gap between being professionals and being “code-monkeys”, we have to be an integral solution to a problem that the client has, we are being paid to design solutions, and not to mock people because they don’t understand how technology works.

P.S. While I believe some people berate clients, there is some true assholes out there that deserve to be scolded by being assholes to their technical people or by not paying them.