Don’t lose sight of the user
Your architecture is useless. Your code is garbage. Your idea is meaningless. If the product is not usable then all the effort put into the back-end design of the system is pointless. Time and time again I see unusable and horribly designed (UI wise) websites and web applications. Many of these come from the financial industry.
I know I shouldn’t judge a site based on looks alone. Maybe there is an amazing back-end system that makes sure that my account never falls into a corrupt state or that transactions are self checking and fraudulent charges are impossible. If so then congratulations. Now take the next step and hire a UI design professional to make the site usable. All of those great features are hidden and tainted by your two tone color scheme and the alert boxes from 1995. I am not saying you need to web 2.0 ajax-ify the site; just make the user the focus and not your amazing system.
To make this less of a rant and more of a constructive criticism here is some advice.
Don’t let your financial professionals design the website
I am sure that they are great financial professionals and they know the domain. But they do not, usually, have the capability to design a UI. Their input is necessary to make sure the whole thing makes sense and can act as a final sanity check. Get someone who actually knows how to design a usable interface and give them the control over the design they need to make something that doesn’t make me question the sanity of whoever approved that release. Note: this also applies to business analysts, project managers and executives. They can be a source of input and ideas but not drivers of the design.
The user is the important part
Your system is great and you spend thousands and most likely millions of dollars building it. Guess what – no one cares how much work it was for you if they find it hard to use. The user should be the focus when you are building that system. If you find yourself trying to retrofit the system to fit what the user wants then you probably built it wrong. If you design the system with the user in mind from the beginning then the system should be easier to use.
If all else fails learn design
Get some well known books on design and practice the techniques needed to produce well designed interfaces. This should be a last resort but for the love of god give it a shot. Even if you fail the first couple of times the resulting design will be much better than the previous uneducated design.
When you lose sight of the needs of the user you lose sight of the reason that you are building the system. The system performance is pointless if there are no users to submit transactions. Make sure that you have your priorities straight when building a system or product.
The user is first. Then the business. Then the system that supports the business.