Spend enough time in any large app or website and you’ll discover interface design inconsistencies. This design debt accumulates as we ship new features, react to customer feedback and run experiments. Seemingly small details add up to reduce user confidence and trust. Debt can grow to an unmanageable size — unless you have a plan for steadily paying it down.
The Whack-a-Mole Problem
At Optimizely we struggled to address design debt. Designers and product managers were noting inconsistencies nearly every day and our backlog quickly grew to more than 50 issues. These issues are difficult to prioritize — most UI bugs seem small and insignificant when there are new features to ship and customers to please. We needed to focus, so we created a special day of the week to do just that: Polish Day.
Polish day helps address these problems in three simple steps: 1. Create a list of the work to be done; 2. Prioritize together based on effort and impact; and finally, 3. Make time to focus and execute.
1. Fix Your Leaky Bucket
Before you start polish day, have a complete list of problems to sort. Design debt is a leaky bucket; an organized list can help you feel less overwhelmed about the steady amount of new things to fix. Gather screenshots and feedback in one place and make sure edits are actionable without additional follow-up. Anyone at Optimizely can file a JIRA ticket — designers, product managers and engineers author most of the polish queue.
High priority issues look broken and are fixed first because they are the most obvious and visible. The worst offenders are often elements that overlap (mostly resolved by storing CSS z-index values in one place) and text that doesn’t fit inside a layout (solved with CSS helper classes for text-overflow: ellipsis and flexbox). Problems include:
- Z-index or text overlap/looks broken
- Unreadable or unusable
- Bad empty state
- Unhelpful errors
Minor issues tend to involve spacing inconsistencies and include:
- Spacing and alignment
- Icon size and stroke weight
- Button padding, widths, margins
Text is a pervasive issue because words are the core interface. Don’t underestimate the value of consistency in things like Title Case vs sentence case, or button text that includes a verb. Without words, users are lost in our interfaces, clicking cryptic icons and arrows. We must spend extra time ensuring a thoughtful experience that reads as well as it responds to input. Word issues involve:
- Title case vs sentence case
- Action-oriented button text
- Clear navigation and link text
Pixel-perfect issues seem nit-picky but drives designers and power-users crazy. These are a rare category of issues by themselves:
- Hard to prioritize because they are tiny — sometimes just a pixel off!
- Subtle, but details matter
2. Prioritize as a Team
Every Thursday, Product Designers and UI Engineers prioritize polish. The morning of polish day we talk trade-offs in time and execution. It takes fewer than twenty minutes to estimate the depth and potential global impacts of CSS changes and talk through pattern consistency. If more design is required before a solution is ready to code, we assign it to a designer. Then a price is set.
If you’re following an agile process then story points can be useful, but we wanted a more accessible way to estimate time, so we made one up! Designers get $100 to spend for the day. The money is fake, but the estimates are real and based on level of effort. Each ticket is given a dollar amount — tasks that take a whole day to complete cost $100 while our smallest ticket, like a tiny text edit, is $10.
Once priced, designers sift through the list of available tasks and come up with $100 worth of work for the UI engineers to complete after lunch.
3. Make Time
Some polish days have a theme like “account settings migration clean-up!” Other days are a random assortment of very visible or especially irksome issues. Typically everything can be completed that afternoon and deployed to production the next day.
Polish is a small commitment, but requires steady consistency. Make the time. A one-time session isn’t enough, but once-a-month might be enough. Stopping production to spend weeks on refinements is not reasonable, so instead make polish time happen on the regular.
Smallish Polish Adds Up
Our users notice details, even without being fully aware of them. We introduce subtle change which creates debt to be paid later. Don’t wait — pay the costs now by taking small steps. Each polish task can feel small, but the cumulative impact is big. Polish day builds momentum for your design team and increases morale as you celebrate a chunk of work that’s visible and impactful to the whole user experience.