It’s a common experience as a developer for a client or colleague to (politely) ask me or one of my teams to just “do” something. As natural problem solvers and wanting to make people happy, our first reaction is often to say “yes” and we either agree to do it in the future, or immediately take care of it and get it out of the way. And why not? It’s what the customer ordered – and we’re brought up learning that the ‘customer is always right’.
Looking back, how many times was this simple request really the end of the conversation? Sometimes it leads to something unexpected down the road, or it conflicts with something else we are doing, or creates a wrinkle that’s now threatening timeline or budget or security or flexibility. Rather than just saying simply “yes” or “no”, what should we consider when these types of opportunities arise?
Simple Requests Are Rarely Simple
For clients, the idea of a prescribed solution is attractive. They’ve seen a solution elsewhere, or thought one through in their minds, and it seems like a slam dunk to implement. You might hear: “I saw an awesome SaaS service that manages events and it does everything we want plus more! No need to spend time asking a bunch of additional wasteful questions, or figure out how it’s going to work. Just sign us up, turn it on and we’re ready to go, right?”
While a prescribed solution may seem like an easy fit, how does the client’s request or the prescribed solution address their stated goals and objectives? Often I find the process of planning a solution deepens my understanding of a project’s goals, or sheds lights on attributes we weren’t aware of like integrations, future business needs, missed items that may now have strategic importance.
Solutions require a clear and mutual understanding of what we’re building. When receiving a request from a client, ask yourself how it fits into our shared understanding of what we’re solving for. Are we introducing something new, have the goals changed, or is this a sign that we’re not on the page?
As developers, we are the experts and it’s up to us to surface the broader questions.
Ask Questions, Not For Direction
One of the ways engineers can fall into the a trap is to ask the client how to solve the problem or for too much guidance.
Good partners work to gain a deep understanding of goals and challenges, not how to get there. If we don’t take the time to understand how to solve a problem, there’s a really good chance we don’t have a solid understand what we’re solving for.
Excellent outcomes require more than problem solving. Try to understand how this request will impact the rest of the project (code, UX, design, etc.) and how will it be tested? Does this change our understanding of what we’re building?
Asking questions that lead to deeper considerations or surface potential challenges and opportunities is where we add value and positively impact our projects. We can often provide insight and opportunities our clients never even considered.
Framework for a Solution
Though at times it may seem the only way to keep a client happy is to take their order and do what they say, there are things everybody can do to help reframe client requests.
As we look at the following strategies, think through how somebody in your specific role could help change a client request from an order to an opportunity.
- As developeres, we should feel empowered to not simply fulfill orders
- The key is to respond tactfully to requests to demonstrate we have the same goals.
- Communication can be hard! Some allies who are on your team for communication:
- Project manager
- Product manager
- Account manager
- Technical lead
Check for Algignment
- Ask as many questions as you need, and gain consensus on the problem
- Match the request with client’s stated goals and objectives. If they are requresting something that doesn’t fit those goals, it may be in their best interest to reconsider.
- Consider the broader picture and best practices.
- Surface how the request could impact existing timelines and budgets.
Formalize the Process
- At all points of the project, maintain your skeptical eye
- Train clients to question everything
- Bring initiatives to the client that you think are important or could benefit the project, demonstrating alignment on their goals.