Designing the best possible solution

Illustration by Connie Noble for this article.

Most problems don't have one single solution.

Most problems have many possible solutions. Our job as digital creators is to identify the trade-offs and constraints that will enable us to select the best possible solution for any given problem.

The job we have is not to identify the "one true solution," as there often isn't going to be one. Pursuing an imaginary "perfect" solution can lead to wasted time and effort. We must buck our instincts of pursuing perfection and instead seek to find a solution that is best for the specific occasion, audience, and contexts, in front of us, given the information we have available.

To design the best possible solution for any given problem is not to seek perfection in our work but to create in small, iterative steps that will uncover more information for improving the design over some time. Such a process is good design.

Yet, as a designer or digital creator, how often do you find yourself paralyzed with indecision? Afraid of selecting a lesser solution out of fear of how it might fail or wanting to impress those that rely on your expertise, you dilly-dally and procrastinate until the project clock starts to run low.

At some point, you have to decide on a design solution; you're just holding off until the decision point is "out of your control. At which point it's easier to say "I ran out of time!" than it is to say "I was afraid of making a poor decision."

Back when I was an individual contributor at a large, globally known tech company, I believed my role was to select the single, absolute, best solution to any given problem. I would spend inordinate amounts of time researching existing solutions, auditing competitors, or tackling menial tasks, all beneath the guise of productivity but really out of fear and anxiety. Working alongside some of the best minds in software design led me to believe my job was to be the best at my role too.

I procrastinated because I was afraid of making a bad judgment call, miss a crucial characteristic of our existing design system, or overlook an edge case that would break the entire solution.

As the time available to me to develop a design solution reached its maxima, I'd inevitably have to make a call and cross my fingers. In almost every single case I can recall, my fears turned real. I had overlooked a critical edge case. I did miss an existing component or design pattern used elsewhere in the product—something the team could have easily reused. I had slowed the entire initiate down out of fear I'd not come up with the ideal possible solution to the challenge at hand, only to do just that.

Over time I've learned there will always be something in the problem space we won't know about until the design gets out into the real world.

“It is not necessary to be perfect; we can make thousands of mistakes during our voyage. What is required is that we commit ourselves to a course and remain alert to the actualities of each moment, so we can guide our adjustments.”

Our job as creators isn't to design the perfect solution to the problem at hand, and trying to convince ourselves as much will only lead to more frustration and wasted time.

Instead, we should focus on putting in the work to understand the implications of our design solutions, knowing there will be things we miss, overlook, or fail to get right. As long as we are willing to progress toward some designed solution, we can learn where the design has fallen short once it's out and in the world. Then our job shifts to be adaptable and responsive.

Too many of us stress and procrastinate over trying to find "the one true solution" to a design problem, but the reality is we don't know what we don't know. The only way to learn is to pick the best solution you can with the information you have, then learn from getting it out into the world.

Pick a solution and learn from it.