Who’s your customer?
Typically you work for your customer. A person who pays in return for your services. Its extremely important to know who or which one of them is your customer.
That’s easy, isn’t it.. OK. A small quiz:
Q. If you’re a software engineer.. Who’s your customer?
a) Project Manager
b) Team/Tech Lead
c) Your CXO
d) The actual customer of the company that you work for..
The answer almost always is one of the top three options.. and never the fourth one. By the way, fourth option needs to be the right one.
If you’re a manager, ask your folks this simple question and try it out.. Who do you work for? If you have atleast 50% of your folks say the name of the customer, you’re running a unique firm, most probably a successful one too..
Minimizing the gap
The crux of the argument is that, its extremely essential that the execution team is well aware of the larger problem at hand. The actual problem that is being solved.
Most of our organizations have so many layers of hierarchy that the people who are executing have no contact whatsoever with the people who’re going to use their solution. No contact.. zip.. zero. Only time they probably meet the customer is some dinner some day.
This mode only guarantees mediocre solutions.. and yes, mediocre companies. The ones which depend on ignorance and mundaneness.. rather than enlightenment and innovation. Ones where developers are props (or famously known as ‘resources’) whose job is to stare at the monitor and tap the keyboard.
Developers are much more than that. Developers are problem solvers. They need to be treated that way.
In most cases that I’ve seen..
accessibility to clients/customer
the quality of the solution,
morale of the team and
overall comfort level of the customer.
As a developer, try to get close to the actual real problem at hand and contribute to the overall solution. As a head of organization, try to encourage your folks to engage at a higher level.
It benefits all the parties.. the developer, the organization and most importantly the customer.