If good design induces positive emotion, why do bad designs exist?
For a long time, I thought good designs not “nice-to-haves”, because it would take much mental efforts for me to even open an app I don’t like. Norman’s piece reinforced my belief, and I started noticing how intentional UX design can guide positive feelings. If good design makes users happier (and presumably more loyal), why would anyone create something clunky or unpleasant?
One big reason is cost. Last year, I bought a cheap disposable raincoat for a trip. It was thin, the buttons fell off easily, and it didn’t even cover my shoulders properly. The design was terrible, but it cost $5 compared to a $50 waterproof jacket that would’ve lasted years. For the brand, the goal was to sell a low-cost, single-use product, not to create something that felt good to wear. Good design here would’ve raised production costs, which didn’t align with their business model.
Another reason is misaligned priorities. I’ve used software for courses that’s so confusing—not p5.js, but it would be fair to mention Arduino IDE and most Adobe offerings. The team behind it probably focused solely on function, “Does it track data, can it be integrated with all hardware?” They forgot to ask, “Will this feel easy to use?” Maybe they were rushed to launch, or thought “usability” was less important than checking off feature lists.
There are also cases of designing for the wrong user. I’ve read about stories where the visually impaired struggles with many “well-designed” apps, with all the bright colors that blur together, tiny text, no screen-reader support. The designers may have imagined a “typical” user and didn’t consider how their choices would exclude others. Poor design is a lack of empathy for diverse needs.
Is software engineering compatible with good design?
Software engineering becomes non-negotiable in high-risk, high-pressure contexts, most probably the world Hamilton worked in. When a product’s failure could mean disaster (e.g., a space mission, a medical device, or a banking app), engineering ensures no crashes, no glitches, no errors that cost lives or money. Overall, reliability. I think about Apollo 11. If Hamilton’s code hadn’t detected and fixed the P01 flaw mid-flight, the moon landing must’ve failed. In that case, engineering wasn’t just “important” but existential.
But engineering and good design don’t conflict, but rather complement each other. Engineering builds the “trust” (i.e., will a product work when I need it?), and good design builds the “connection” (i.e., will it be easy, intuitive, and after all nice to use?). Take the Wio banking app as an example. Its engineering ensures my transactions are secure and fast, and its clear, low-jargon design makes it easy to check my balance or transfer money. If the app crashed every time I used it, its pretty interface wouldn’t matter. If it worked perfectly but was impossible to navigate, I’d switch to another bank.