Reframing problems as opportunities can open doors to incredible breakthroughs and better software.
The word “problem” has negative connotations. We see problems as obstacles, setbacks, or
annoyances. A problem child is a source of worry. A problem area is a source of insecurity. And
we’re quick to excuse ourselves from responsibility for anything that is “not my
problem.”
But there is a growing number of companies who are casting problems in a new light. Rather
than resisting or running away from problems, these companies are embracing them—even
cherishing them.
Kiichiro Toyoda, the founder of Toyota Motor Corporation, once said, “Every defect is a treasure,
if the company can uncover its cause and work to prevent it across the corporation.” In his
worldview, problems were worth celebrating if they led to large-scale improvements.
Solving even a minor hiccup could reap significant rewards when compounded across a
massive company like Toyota.
Software: a problem solver’s problem solver
Claris, formerly FileMaker, once famously branded itself as “the problem solver’s problem solver.” They reflect appreciation for the term in the naming of products like a software bundle called the Claris Problem Solvers Circle.
Even Marie Kondo, whose signature approach to clutter-busting led to massive commercial
success, has said, “I love a mess!” She embraces the very thing her method promises to
vanquish, because she sees potential rather than pain.
This attitude is exactly what makes excellent software development companies stand out in a
sea of mediocre ones. Great software engineers and developers love investigating the nuances
and puzzles of a problem—and designing a solution that exceeds the client’s wildest dreams.
They see every problem as an opportunity, a way to do things better.
You don’t have to be a software developer, Marie Kondo, or the CEO of a massive car company
to be a problem optimist. Here are three good problem-solving skills you can start practicing
today in your mission to become a master problem solver.
Gather anecdotal data (from humans).
Software developers understand that people are at the center of everything they do. That’s why
the problem-solving process always starts there. After all, the computer is not their client. The
people are. Discovering and understanding their wants and needs is the first and most important
step.
Talk directly to the people involved in the problem. Ask them lots of questions about their
processes, what they’re experiencing, what’s frustrating them, and what they need. If possible,
ask them to walk you through every step, so you can see it with your own eyes.
Your goal here is to understand the many nuances of the problem. Human beings can reveal
important details that can’t be found in the raw data. One of those details might be the key to
finding a solution.
Software developers don’t stop after talking to just one or two people. They understand that the
real magic happens when they can connect with every single person whose work is connected
to the problem. Each person gives them a few more puzzle pieces—and a much broader
perspective.
Understanding the problem from many viewpoints gives you a unique perspective
that your client may not have. When you understand the entire process, you can think more
holistically about a working solution.
Gather objective data.
This skill will look a little different depending on the context, but the gist is the same: This is
where you dig into the numbers. For software developers, this means pulling user records, bug
reports, and other reports from the program to search for anomalies. By matching this
information to what they’re hearing from the client, they can pinpoint the exact cause of a
problem.
The data may reveal an easy solution, such a poorly configured setting or simple user error. It
may uncover a large-scale issue—or prove that the program being used simply isn’t the right fit.
Regardless, this step backs up your anecdotal evidence with hard data. You
need both to develop a complete understanding of what’s going on.
Think bigger.
So, there are times when all you need is a quick fix or an easy swap. The software developer problem-solving mindset is wide open to the possibility of bugs and simple issues. But they’re also open to the possibility of a much bigger problem: That the program their client truly needs doesn’t even exist .
Although software developers love building that perfect bespoke solution themselves, they must temper their zeal knowing that the best solution is always what’s best for the client. And this could mean a low code solution that optimizes an existing software package.
If you want to soar past your competition and be truly great, you need to think beyond band-aid
solutions and simple fixes. You need a sharp eye for the bigger picture, the greater opportunity,
the solution that everyone else dismissed as impossible.
Our interview questions for hiring a software development company will help you figure out
the right fit, but remember…
Good enough isn’t good enough.
Good software developers solve business process problems. For the great software developer problem-solving is a way of forging new paths by discovering new opportunities.
Harmonic is fueled by an insatiable desire to create software experiences that people genuinely
love. We deliver programs that make every process easier and every day better for our clients.
We never settle for half-baked solutions, and we’re always looking for innovative ways to keep
you moving forward.
Got a thorny business problem? We’d love to hear about it.