In This Page
In my experience, one attribute that makes a great software engineering team is their level of customer focus. By customer focus, I mean understanding their customer's needs and placing that front and center in decision making. It's critical for a team to understand that the only reason they exist is because their customers find value in the product or service they are offering. Without the deep understanding of that customer that comes from direct engagement with the customer, the team will likely impede their own success by building the wrong thing.
In this post, I hope to capture the most effective ways to bring a focus on the customer's needs to your team, as well as some challenges in that process. The audience for this post is anyone in a software development team, not just managers.
Software engineers are likely in their field because they realized at some point that they get along really well with computers. This doesn't always mean they understand what other people might want from those computers.
Some engineers derive most of their joy from delivering excellent solutions that make their customers happier or more effective, and some really only love the problem solving aspects of the job. All engineers have some combination of these motivations.
Perhaps you have used software where it's painfully obvious that the developers of that software used themselves as their customer archetype, complete with their own intimate knowledge of the code paths and data models in the software. Such software is cumbersome and non-obvious to use.
Customer focus can take many forms, but at its heart it starts with empathy. The exercise here is to get your developers into the customer's shoes / mind / heart. This is easier with some people than others, but there are concrete ways to bring more of this into your team. I've divided these techniques into three main categories: Modeling, Encouraging, and Hiring.
All effective leaders model the behavior that they would like their team/peers to follow. When zooming in on a customer focus, we look to leaders (who can be anyone and everyone in a team!) to establish a pattern of behavior through their own actions.
Your employees, peers, and leadership are your customers. By being open to the needs and ideas of others, actively soliciting feedback and suggestions, you establish yourself as a humble presence who acknowledges your support role in the organization. If a titled leader (aka "the boss") does this in a systematic fashion and enacts change in their organization as a result of feedback they've collected, that's a great customer-oriented model for employees to follow.
At a previous company, we had weekly all-hands meetings where 20 minutes was always dedicated to the company founders interviewing an actual customer, live, over Zoom. These were not always happy customers, and the company leadership was not afraid of this -- in fact, they embraced it. They understood the power of the whole company hearing about a customer's needs from the actual customer and put their money where their mouths were, to the tune of ~$300K in employee time per week for this segment (20 minutes _ 7,000 employees _ $100-200/employee/hour).
Of course, this doesn't have to be an all-hands thing. Individual teams or individuals themselves can establish a cadence of customer contact. I can't think of an effective manager who would object to having a customer come talk with the team about their experiences with the team's product.
There are many avenues for a team to share information with other teams, e.g. a document outlining upcoming priorities, a presentation describing a newly shipped product or feature, or another kind of forum with alignment or education as its focus. These are all opportunities to model a customer focus for other teams. If your team incorporates data, sentiment, or direct quotes from actual customers as supporting evidence, other teams will see how that fits into your decision-making process. This helps to establish a customer-centric culture.
Individuals can be actively encouraged in a number of ways to have a customer focus.
Ask the Question
The simplest is merely a question from a peer or leader when presented with a plan from an individual -- "What are you hearing from your customers?" When done consistently, with accountability in actually getting an answer, this sets an expectation in an organization that customer input is an essential part of the planning process.
Team Processes and Templates
Many teams have written standards around processes or team dynamics (i.e. team working agreements), which represent an opportunity to get team buy-in and to codify a customer focus.
If your team has a standard template for documenting the planning process for new initiatives, make sure that customer feedback or research is well represented in the template and hold employees accountable and give them appropriate time and resources to do the legwork to fill it in.
If you have a project readiness checklist, ensure customer contact is well represented both in the early planning and ongoing enhancement phases of a project.
Maintaining High Standards
There is a troublesome motivation that creeps into any software developer's experience that I call "get-done-itis". This is the tendency, under pressure and without proper standards or accountability, to take shortcuts in the development process that allow the developer to be "done" with their work, but at the expense of the quality of their product from the customer's perspective.
Developers should be given the time and space to create appropriately excellent products. Date commitments can sometimes be the enemy of implementation quality (there is a healthy tension there), so be sure to maintain flexibility as your team encounters bumps in the road.
The team should be empowered to kindly suggest that something is not yet ready for its customers. Gating new work behind feature flags is one way for a team to make incremental progress (i.e. merging small PRs) and only show it to end-users when it's actually ready.
Any team should establish a community presence. For public-facing applications, social media networks like Twitter are a great opportunity to get immediate feedback and sentiment from your users. For internal customers, a well-publicized, non-private Slack channel (bonus points for consistency and discoverability around the company) is a good way to have easy and direct customer communication. It's also a great place to advertise enhancements and other news to those that depend on your service.
At a previous job, we had a search bot notify a team Slack channel any time our team's product was mentioned on Twitter. Everyone in the team saw this immediately, which helps to keep the team connected to the idea that their software was actually being used by actual customers.
The simplest way to make sure your organization has a customer focus is to identify people with a customer focus as part of the hiring process. If you haven't done this yet, today's a good day to start.
There are many ways to do this, but the easiest is to ask how the candidate has demonstrated customer focus in the past. The best ones' eyes will light up and talk about some important lesson they learned from a customer, showing that they felt the benefit firsthand. These are usually fun conversations.
Sadly, not all (dare I say "few") candidates will have worked in an environment that supported direct customer contact, so the interview job becomes a little more nuanced in a way similar to identifying other kinds of potential.
Probing for empathy or willingness to adopt a customer-first mindset can take several paths. Simply asking about the candidate's appetite for direct customer contact may or may not yield fruit (look for nonverbal cues there to support their words!). Asking the employee to imagine a hypothetical planning scenario, but not mentioning customer input is an opportunity for the candidate to offer it. If they don't bring it up themselves (there are 1000 things to consider when planning!) then put it out there and see how they respond.
Recency or Proximity Bias
Direct customer feedback is powerful! One danger of direct customer input is that the team may over-value that feedback. Use the enthusiasm your team gets from the conversation as a motivation, but don't lose sight of the big picture. One customer's needs may not represent the majority of your market. Make sure to solicit feedback from a diversity of your customers, weighing it accordingly.
The most purely non-renewable resource we have is time. It's possible your team will find so much value in direct customer contact, that other time priorities start to suffer. As a leader in your team, be mindful of how time is being allocated, and make sure that the right balance of information gathering and getting other things done is found.
Without a customer who finds value in your team's work, there is no reason for the team to even exist! Therefore, maximizing that value should be the prime goal of your team. By having your team get to know your customer's needs, wishes, and reactions to using your software, you will be able to build a better product that your customers find more value in.