This is an update to a post I originally published on Medium in early 2015. It was written after nearly a year serving as the Director of UX at a 25+ person SaaS enterprise startup. I was a “team of one” driving almost everything from pixels to IA/flows to UX strategy for a deeply complex web-based product, with a heavy data viz aspect. I was the designer, researcher, evangelist, facilitator, strategist, and various other roles — it was super exhilarating and sooo exhausting 😅 (Note: I recommend doing it just once in your life, but never again!)
Also, it was my first leap into startup-land as a designer, after many years of working in large organizations. I was thrown into the fire and forced to reckon with what it means to deliver tangible, measurable value to demanding customers. I was responsible + accountable 😬 No pressure!
I had to truly grasp what it means to be pragmatic as a leader and maker.
Now, those who know me know that I ❤️ visionary concepts, excitedly leaping boundaries, with “next-gen” ideas that provoke and inspire — as I’d done at Citrix Labs, PayPal, Cisco, and other places. But there’s a time to convert imaginative ideas into practical features for production 🛠️ As Steve Jobs said, “real artists ship”! 🫡
So back in Feb 2015, I thought it might be useful for designers in similar situations, to hear what had been simmering in my mind — in very candid terms. The original title referenced “10 things”. Over the last 8 years while serving in various contexts — large and small — I’ve come to revisit that original post again and again…and again. Because it’s all quite true, and what I firmly believe, as a call to action for every designer deep in the messy journey of discovering, designing, and delivering value.
I realized I had written a manifesto for the pragmatic designer. 🔥🙃🙌🏽 Enjoy!
There is no perfect design. Everything is iterative: code + pixels
(and beyond).Design involves making imperfect choices with imperfect information among imperfect tradeoffs, to achieve some perfect goal.
Your goal is not to make everyone happy (or like you). It’s to help your customer be successful. That means making tough, unpopular choices. And then you can iterate based on feedback (hence, prototyping).
Balance a design system’s integrity with where it makes sense to break it. Weigh the risks, difficulties, and opportunities. Consider the tradeoffs.
Often the best choice is the least imperfect choice. Swallow the jagged pill and move forward. Make 10% progress every day, even with the smallest choices.
Pick and choose your battles. Design is a highly political activity. Cash in your chips for the right battles of the right impact at the right time. This takes considerable foresight, principles, and patience to sense that moment. It ain’t easy!
“Like” is not a design word. Instead use “works” or “doesn’t work”, as this helps downplay the personal subjectivity.
If you think about it, everyone has an opinion. Even “data” (which is either other people’s opinions, or interpreted by someone with biases). That’s OK! Don’t fight opinions. Triage, focus, and decide, no matter how imperfectly. Consider success criteria, principles, and how you might monitor (or measure) that decision.
Instead of insisting on the perfect choice, learn how to “satisfice” (per Herb Simon, Nobel Laureate): Do what’s necessary yet sufficient, to make forward progress. And iterate!
Finally, it’s not about “making Engineering (or Product Management) do your design”. It’s about creating a context and process where everyone participates in an imperfect, iterative, compromise-heavy, constraint-based, decision-making model where there is no one right answer. But we figured something out together, as best as we could…and we keep iterating until we’re awesome. 🌟
… And remember, there is no perfect design 😇🙏🏽
Great post Uday! I recently wrote something similar for my team but yours is more poetic, something to hang up on the wall.