Web companies are user interface companies

Since Intuit acquired Mint earlier this week, there's been a lot of coverage of Mint.com, and since it came to the attention of the general tech community that their core service of account aggregation is actually a wrapper to Yodlee, there's been a lot of dismissive coverage to the effect that a $170m exit is pretty good going for just "a marketing company".

This seems terribly unfair. Mint are not a marketing company. They might not even be a technology company. What they are is a user interface company. And, probably, so are you.

Firstly, they're definitely not a "marketing" company in the traditional sense of being driven by advertising -- their entire marketing budget is in the region of $50k. Of course, they did wonders with that money, making clever use of viral marketing and social media. But fundamentally, the reason their viral campaigns worked was because they had a useful service at the core.

But are they a technology company? They didn't invent the account-aggregation technology they're using -- they're accessing it via Yodlee's API. But is that sufficient to disqualify them? I think they probably have some genuinely interesting and difficult technical problems:

  • database scaling: they have a lot of data about 1.5m people. Not trivial.
  • caching: a mix of their data and Yodlee's data, plus the sensitivity of financial info, makes this very tricky to get right
  • web scaling: you try to serve 1.5m users and see how far you get.
  • security: they serve everything over HTTPS, and everything they've got is sensitive financial information. This complicates all three of the above.

And finally, there's their web interface itself. There's an undercurrent of programmer snobbery in the assertion that a complex, rich web interface isn't "hard". But their interface is reliable, responsive and, looking under the hood, quite elegantly constructed. When it comes to web development, I can authoritatively state that a front-end like theirs represents a major and complex engineering effort. I think they have a genuine claim to being a "real" technology company.

But what they really are is a user interface company. Because in addition to having great core functionality, Mint is beautiful, easy, and trouble-free. The interface is a joy to use.

Because if the technology was the point, why wasn't Yodlee winning? Yodlee's MoneyCenter offering actually has more features than Mint offers in terms of the breadth of financial services it can access, but I bet a lot of people hadn't even heard about it until after the Mint acquisition. If marketing was the point, why did Mint make any headway against Intuit, who have millions of dollars to blow on marketing? What has Mint got over these guys?

It's their user interface, and only their interface. They streamlined the data entry experience and concentrated on what the user really wanted out of the service: to see where all their money was going, and save themselves cash.

This is a lesson I don't think enough companies realize, big or small. User interface is not your lowest-priority problem. It's your only problem. It doesn't matter how useful your service is. If it looks like crap and is hard to use, people will ignore your service because they don't understand it -- even if you have no competitors.

User interface is what takes data and turns it into information, and that's all you do if you're a web company. You transform data. It doesn't matter how hard the math was you had to do to transform the data into its final form, if you can't get your user to understand the meaning of that transformation you have fallen at the final hurdle.

As I mentioned, programmers often do not care for user interface problems because they think they're not "hard" and hence not interesting. Because coding an interface can be relatively simple*, I think many assume that the problem itself is simple**. If your interface was simple to write, it's because you're ignoring edge-cases and pushing the cognitive load to your users, making it hard to read and a pain to use.

User interface is the softest of problems, and thus the hardest to get right. It is also completely critical to your web company. You're nothing but a user interface, so get it right.

* In the same way that back-end coding can be simple is all you're doing is SELECT * FROM tableName. A good user interface is necessarily a lot more complex under the hood, even if the final visual result is simple.

** In fact, some programming frameworks attempt to auto-generate basic user interfaces from the shape of the schema, an approach to the problem that I find irritatingly simplistic.