Getting Through Limitation Fatigue in Software Design

Design thrives on rules and limitations. It’s within these boundaries that we can flex our creative problem-solving skills and come up with great solutions.

Sometimes, however, a project’s limitations can feel like an absolute brick wall that we can’t see beyond. It can be incredibly draining. How do we get beyond this rut?

I want to say that it’s as easy as just breaking the rules — smashing down that wall. But it’s much more strategic.

1. Inventory Your Wall

It’s not a great analogy, but think of each limitation, rule, or guideline as a brick in the wall. Not all of the bricks are equal. In software design, a project’s framework is dictated by business models, user feedback, client product management, development infrastructure, and budget. Some of these carry a lot more weight than others. Moreover, some of the bricks make sense to you, but others definitely don’t.

It’s time to take inventory. You’ve probably made some mental notes, but you need to do a real audit and tag all the bricks you don’t like. If you’re working within a pre-existing design system, take screenshots of the UI and patterns. If there are areas of the workflow that don’t make sense, map them out. If you don’t understand the business model, document it, and do some competitive benchmarking.

2. Shrink the Wall

You could blow off the rules and go rogue. I tried that when I was a younger designer; trust me, it does not go well at all.

Instead, now that you understand which bricks are getting in your way, address them. Meet with your client and team to discuss the troublesome limitations and what they’re trying to accomplish. You may end up seeing some of your bricks in a whole new light and finding them easier to work with. You can also look for ways to change the bricks into limitations that satisfy you and the client.

In the end, you’ll probably still be left with some bricks. Think about which ones are non-negotiable and which ones have a little wiggle room. Keep these separate piles in mind as you work.


3. Design Without Any of the Bricks

Start designing without any limitations — go completely rogue! Take a single page of the application and design without rules, without boundaries, and without development budgets. This should be the time of your life as a designer… but it won’t be. Like I said before, design thrives on limitations. If there is no problem, what are we solving?

It’s at this point that you should start to have those rules nag at you. That’s a good sign. Start incorporating some of the technical constraints or business model rules — not all of them, just the ones that are at the front of your mind.

4. Present What You Have

When you meet with your team, be transparent about what you’ve been up to. Then set their expectations. You’re not trying to set a new direction and derail the project. This process is a game of “What If?”, and you’d like them to play along.

Share your designs; encourage feedback and discussion. Sometimes talking about options that weren’t on the table can trigger a lot of conversation. You may be surprised to learn that others are feeling a lot of the same pain you are.

5. Build it Back Up

This is an exercise in learning, not starting over. You’ll still probably have most of the bricks to work with, and you’ll have to rebuild that wall. But through this, you’ll understand why each brick exists and where it ranks in structural priority.

Rebuild the project requirements brick by brick, look for micro-challenges within each one, and devise creative solutions around those.