Bulut's step by step "problems to solutions"
Those of us that work in software development often talk to customers (users) about problems. We want to make sure that we do a great job managing their expectations when they come to us with problems that they would like us to solve. Do we even understand what they need from us? We often find ourselves solving the wrong problems or making problems worse. There is hope for us. Let's take it one step at a time...
What problems are we trying to solve?
It is important that we get a clear definition of the problems to solve. Best way to articulate these is to write it out (or to just think about it) in the words of the customer.
Who: As a <Type of Customer (i.e. Software User with Administrator Credentials>
What: I want you to solve these <Problems>
Why: I need solutions because <Reasons 1, 2 and 3 ...>
What is the use case?
It would be a good idea to understand the step by step process in which the customer encounters the problems. It would be helpful to draw a flow diagram especially if the situation is complicated.
Let's break it down...
Preconditions: What was the status before the customer started performing a set of actions that caused a problem. Was she signed on? Did she have a certain report or screen open in front of her? Basically we want to start from somewhere and this precondition is the starting point. It would make sense to confirm this but usually we don't worry about the steps before the precondition.
Actions: What steps did the customer take and in which order? We want to get some very specific information here about activities involved. Can we on our own go ahead and demonstrate (i.e. repeat) all of these steps without the customer present there? If we can answer "yes", that's great! If not, can we at least describe the steps to someone else who is capable of testing?
Post-conditions or a set of outcomes (problem definition): As a result of the actions taken above, there is a resulting situation that caused the customer to get in touch with us. We need to find out which activity step or steps may have caused the problems. It is possible that we may not have the ability to determine exactly which activity caused the problem but at least it would be good to find out where the customer thinks it may have occurred.
We think we know the activities involved so now let's describe the problems. We want to understand the set of problematic outcomes and be able to articulate those outcomes.
i.e. Customer received an error message, system crushed, system stopped responding for more than 2 minutes, search results are not correct, numbers are not correct etc.
How important is it that we solve each problem?
It is easy to walk away from a conversation with a customer and forget to ask this question. How important is it that we solve these problems? We hear about problems and then we panic which could easily cause us to make some inaccurate assumptions. We have good intentions and that's probably why we just make some assumptions without asking some basic key questions.
It makes sense to talk through variables such as how much longer will you be using this or will this be obsolete after the next product release or next redesign (i.e. your design team could contribute to this answer as well).
Perhaps it would help if we just think about two major components of customer service - importance versus satisfaction. Prioritization is something that we will need to do later once we understand all the variables. If we have to choose which problems to solve and which ones to put on the backburner, we will need to make sure that we provide satisfactory solutions for problems that are most important (highest value) first. Highest value can sometimes be associated with problems that are cheaper to solve but that is not always the case unfortunately...
- Quantify (how often does the customer encounter this problem)
- Determine urgency or date solution is needed by (next day or during the next few weeks?)
- Acceptance criteria (Minimum acceptable solution in terms of performance or how the solution may actually behave)
We definitely want to prioritize high value and low cost problems to solve. Then we want to also prioritize some of the high value and high cost problems. For the time being, it is likely that we may have to leave some problems unsolved such as low value and high cost ones...
Best luck to all of us solving problems! Let's always remember to let the customers know that we care about their issues and that we will do our best to determine the next steps. Let's keep the customers updated on our progress and our decisions.
Thank you Spencer X. Smith!!
Great article, Bulut! I never thought about those two components of customer service before...great insight!