Why “Think Customer” Is Hard for Software Engineers
And is there a practical and realistic approach to it?
There are many companies that consider “think customer” or “customer first” as one of their core values. If you are an engineer, there’s a good chance that you know or used to work for such a company. It is often interpreted as making decisions that are best for the customers or end-users. And you have to put their needs and requirements above anything and everything else. However, exercising this core value is not always trivial to engineers.
It’s hard to remember the end-users, while fulfilling your daily complex engineering responsibilities. In fact, there’re things that are more intuitive for you to consider than end-users.
- When you implement a feature, the first thing that comes to your mind is how to meet all the acceptance criteria.
- When you write tests, you certainly don’t think about how to make the end-users happy, do you? You want to make your code foolproof.
- Or when you review a PR, do you think about customers or all you care about is whether the code works or not?
Then, what else can you do to show that you care about customers? Should you seek interactions with them?
- Will joining your product designer during customer interviews help? While customer interviews improve your understanding of the product personas, it’s the product folks’ responsibilities and expertises, not yours.
- Should you volunteer to troubleshoot production issues over the phone with customers? Or should you hand-hold them through the on-boarding process? Although helping customers during hard times is necessary, having to do so proves that the product has some serious limitations rather than that you care about customers.
To make it worse, companies also evaluate your performance based on how you demonstrate this “customer first” value.
In one of my previous jobs, after 16 quarterly and 4 annual performance reviews, it was still unclear to me, my fellow engineers and my managers of how to measure our customer-focused way of working. Over and over again, we asked the same question but never got a convincing answer. Confused. Frustrated. We blindly followed it.
As a result, my company wasted a great value because their engineers didn’t know how to live by it.
Is there a practical way to demonstrate your customer focused mindset?
As an engineer, you have a wide range of responsibilities. On a daily basis, you need to write codes and tests, raise pull requests, and do code reviews. Your less frequent tasks include technical designing, hiring activities, or presentations.
Though less obvious, you also need to enable your team members, help them grow and contribute to team culture.
Through that incomplete list of responsibilities, you create an endless amount of content of different kinds (e.g. codes, articles, comments, presentations, speeches, etc.) for a broad range of audience.
You should treat those, who directly consume or interact with your content, as your customers.
Aiming to delight those direct customers everyday is more practical than thinking about the far-distance end-users. On top of that, they give feedback on your work faster, which boosts productivity and quality. Here are a few examples:
- A technical proposal well written facilitates better team discussion, which almost guarantees a more optimal solution. So, think about your team members.
- A feature well coded makes it easy to comprehend, maintain and extend. So, think about the company’s future engineers, or your future-self.
- A pull request well raised provides clarity and speeds up the process. So, think about the code reviewers.
- A code review well done ensures quality and encourages constructive discussions for mutual growth. So, think about the less senior engineers or those with different skill sets in the team.
- A Jira ticket well taken cared of provides timely progress updates to product folks and development insights to QA. So, think about the product manager, product owner, product designer and the testers.
- And so on…
Master this way of thinking and use it to guide your daily work, you will achieve higher velocity and quality. And when individual engineering tasks are done right, there’s a higher chance that the end-users will have a better experience.
And last but not least, it is easier for your manager to measure your customer centricity mindset through the quality of your daily work or the times your team members are delighted. Performance reviews are done right when values are measurable.