I came across the UPS strategy while planning out this blog post. One approach to problem solving involves understanding, planning, and solving the problem.
Pretty straight forward.
Understand the Problem
Start by reading the entire problem.
Have you ever had one of those tests where the very last instruction tells you not do the assignment?
Let’s avoid those clever situations by reading through the entire problem.
I love this step because it is a low barrier of entry into addressing the problem. All I need to do is read. I know how to read. Okay, let’s read.
Now our thoughts are starting to swirl around in our head.
Grab your pen and paper and get ready to write the problem out in your own words.
What is one thing we know to be true about the problem? Write out the obvious statements. All of them. Even that one that might not be quite right. Put a star or question mark by the thought. It’s more use to you on the paper than it is in the back of your mind.
Get clear on identifying the problem itself.
Breaking down an intimidating or new problem allows us to use what we already know to make some momentum. Now that we know the problem, we can start coding right?
Not so fast.
If you fail to plan, you are planning to fail.
Benjamin Franklin
Plan a Strategy
A common sewing mantra is to “measure twice, cut once.” Let’s take a moment to plan ways to approach the problem.
Plans are used for everything! Map Quest directions, baking recipes, sheet music, etc. Every left turn and tea spoon of baking powder matters. The order of the plan matters. The way ingredients are combined matters.
Fun Fact | There are seven terms for mixing: stirring, beating, blending, binding, creaming, whipping and folding.
The plan keeps you on course so you can reach the final destination.
All this to say, plan and prepare before taking action.
Implement the Plan
Use your plan to implement your solution. The funny thing about plans is that plans change!
Your attitude is crucial in this stage of the process. A growth mindset and a coachable, collaborative attitude will go much farther than frustration and isolation.
Solve the Problem
Software Engineers are professional problem solvers. When you find a bug, it’s time to restart the UPS strategy above.
Ask these questions when debugging your code:
- What am I trying to do?
- What’s happening instead?
- Why do I think that is?
- What can I change to get closer to desired reality?
- What was the impact of the change?
Google is a very handy resource to help answer these questions. A timely blog post or video can help you find ways to approach the problem differently.
Ask someone for help. Don’t put this off. It is extremely helpful to talk through the problem. Another person can provide fresh ideas or questions to help get you closer to solving the problem.
You got this!