We just got out the new e-banking portal for BBVA Suiza. BBVA Suiza is the BBVA Group's International Private Banking unit, one of the most visible projects we had originally developed with Loom 0.8 - now with 2.2 - and a lot has happened since then.
This post is about things we learned during these last years, and how they were combined to make our experience extremely enjoyable.
It's all about the UI
The most interesting discussions during this project were not about technology or banking products, but about the interface. We spent literally hours discussing one single page, trying to fit things in the most natural way, getting all the non-essential out.
Anyone can design an interface that takes two weeks to learn, but it gets much harder to design something intuitive. It takes a lot of work to arrive to your hamburger interface. On the way we have challenged the breadcrumbs location, the tabs metaphor, the nesting of contents, everything.
It's not about stateless or stateful
The list is long, and you should make your own choices. Just remember not to waste too much time arguing about which way is better.
Any idiot can carve lots of features into your application and make it clunky, take years to download, and lose the train of thought of your users in the eternity that happens between one page and the next. If you aim to make your users rock (as you should) your application should feel natural, which means working towards the 1 second goal.
There are lots of tricks to get there. We have posted some here and there, but nothing beats simplicity: there is nothing faster than not including a feature.
Of course, your customer may not always agree. This is were the next point gets relevant.
Get your customer on your same train
You can align your customer with your own goals just by delivering Software That Works, so don't try to agree to all crazy features or deliver the supah-dupah-canvas-based forms with embedded music. It's important to make a distinction between what the user asks and what he needs, and it helps if the rationale behind a refusal is clear and shared by everybody.
We are not there yet. There are things that we would do different and legacy features we would love to drop, but all in all, everyone is happy. Their customers are calling just to send congratulations (how often do you see that), and suddenly we found ourselves talking to another three banks that want to build something similar.
The technology helped a lot. But what really allowed us to deliver was all the weight that was ditched by the way.