If you've been a software developer for even a small time, you've undoubtedly lived this frustrating scenario...

You've been working feverishly to implement a new feature for your customer. There's some crazy complexity in the business logic, and a very simple UI as well. It's a lot of work.



With a herculean effort, you just about meet your deadline. The business logic is bullet-proof, but the UI is still a little rough. No worries though, that's the easiest and least risky part.

You head off to demo it for the customer. They immediately start picking at the UI: "the alignment of this column is off", "this label should be bold", and so on. Before they even get to the actual functionality (the meat of the work!), you can tell they're already a little underwhelmed.



In the end, everything works great, just a few minor UI glitches. You know it's truly a big success that it's even functional, but the customer isn't ecstatic, and you can't help but feel a little dejected.

So is it reasonable to feel this way? Yeah, probably. But it shouldn't be unexpected. As most seasoned developers know, the user interface carries an incommensurate amount of weight in terms of the customer's perception of the quality and completeness of the product. One reason this is true is due to something called the Halo Effect.

In a nutshell, the Halo Effect is a built-in cognitive bias that drives us to believe that if our initial impression of something (or someone) was favorable, the rest will be favorable as well. For example, plenty of studies have shown that we're more likely to confer positive traits (like intelligence, creativity, etc.) to good looking people, even when we know little (or nothing!) about them other than their appearance.

Or consider another example adapted from a famous experiment by Solomon Asch: imagine there are two people vying for a job, and all you know are a few attributes. Person A is...

intelligent, inquisitive, calm, serious, passive, unambitious

...and Person B is...

unambitious, passive, serious, calm, inquisitive, intelligent

Without thinking too deeply, who would you hire? Your intuition probably steered you to Person A, but if you look closely, both A and B have the same exact attributes, just in opposite orders. Why would we perceive them differently?

Well, after reading just one or two characteristics, we already begin to form a general impression of the person. Subsequent characteristics can serve to enrich this view if they are consistent with the initial characteristics, but if they conflict then they get filtered out (or at least carry less weight). In other words, our brains prefer coherence, and disregard dissonance.

Back to the world of software development, it's now more clear why minor user interface peccadillos (a typo in a label, for example) can significantly impact a customer's perception of the overall quality or even value of the software we build, to an extent that seems capricious or unfair. That's just how our brains work.

Essentially, the user interface is the physical appearance of our applications, and as such, customers will use it to form their initial impressions of the application as a whole. Once this impression is formed, it's difficult to undo. If the user interface is organized, clean, and pleasing, the customer will naturally assume the system behind it is too; but the opposite is true as well.

In the end, especially if you're early on with a customer and trust hasn't been completely established, don't focus on the back-end to the exclusion of the front-end, even if the UI is a cinch. That mis-aligned column may only take 15 seconds to fix, but it'll be worth a whole lot more in terms of your customer's perception of quality!