Navigating uncertainty
The architecture of happiness.
Navigating periods of high volatility and disruption in the financial markets are the proving grounds for software and infrastructure. The financial markets are particularly demanding on product design, in particular for the sheer amount of in-flight data with time sensitivity and the geographic spread over which it is deployed. In addition to that you have the regulatory and government influences over the markets leading to partial and full closures, changes to the trading rules, other short-notice suspensions and halts in counter-parties and partners.
The capital markets are highly electronic, inter-linked and extensively use machine based analytical models in the investment process. Without proper design of your platform, disruptions can cause contagion effects in the network elsewhere. There are heavy penalties for failure.
There are few places as demanding on product and technology and this is one of the key reasons I enjoy working in this field so much. It’s demanding on your logic and designs, it’s under tough regulatory scrutiny, it’s competitive, it needs to be secure and it needs to be fast. There’s no place for bad designs here.
Over the past two weeks we’ve seen record volatility and volumes more than three times normal levels. You know that you are in unprecedented territory when regulators are literally asking participants to increase their thresholds to reduce the number of trades¹.
Once you’re in this environment, you don’t have time anymore to go back and make sure the design is adequate or not. You need to be ready in advance so that when you’re there, you’re not going to be one of the names in the press and expose your firm to potentially huge fines and class actions².
So what are some of the key things you should consider in preparedness for your product’s ‘day zero’ moment?
Clean and Simple Designs
When faced with a barrage of information in the financial markets, traders do not have the time for bells, whistles and alarms going off in their faces. They need to see actionable information filtered by exceptionalism. You need to make them aware of what’s important, nothing more, nothing less.
Consider incorporating elements of AI and machine learning into your product to highlight exceptionalism, provide actionable insights and improve information density³. Make the design clean and simple to use, then, understand how it behaves in a real-world environment.
There are limits to what humans can digest with eyeball impressions and consider these in your design.
Human comprehension with intelligent processing has been determined to be around 50 bits per second, or about 5 words per second⁴. If your impressions are being received any faster than at 3 second intervals, then they probably aren’t being comprehended correctly and their value is diminished.
Full Automation
An important element of dealing with exceptionalism is automation. Routine tasks should be automated. There isn’t a lot of point of highlighting exceptionalism if the trader is buried in micro-management. The software needs to allow them to easily identify repetitive tasks and automate those things off their workload.
There are of course regulatory restrictions to consider with automation. If you need to, put in a confirmation before executing anything transactional. It is always safe practice to provide this option.
Consider using decision trees to highlight common behaviours and recordable macros to allow actions to be put into rules. Rules however need protection, never automate without control, limits and ‘break-glass’ options. Back-test the rules to be sure that they are delivering results and highlight when they are not.
Automate routinely, but with great care.
Gold Star Service
To use the industry jargon, a ‘mid-touch’ approach to help your members navigate your product. Your internal desk is not just there sitting around waiting for people to raise problems, you should be proactively managing them. If you can see errors occurring and your eco-system of users are not interacting well, be ready to intercept the behaviour and correct it. The days of just being a request-driven help desk on a product are long gone. Be like a silver service waiter, there when customers need you, invisible when they don’t.
Consider servicing in your product design including the ability to intervene intelligently in real-time along with a robust user behaviour analysis (UBA) and alerting system. A UBA framework is a significant build; it needs to be considered right at the start.
Never-mind the lost opportunities. If you can’t see what’s happening, this is a disaster waiting to happen.
Adaptability and Parameterisation
The best way I think of software is that it needs to be a good corporate citizen and sociable. It needs to work in the environments your customers choose to use and react well when switching from one environment to the other. In the current crisis, there is an enormous amount of people working from home, how does your interface react?
Adaptability includes multi-channel capability, the ability to adapt to different resolutions and form factors and your ability to parameterise the software. You should be able to switch features on and off in real-time and change the software on the fly through parameters.
There is a balance between configurability and complexity, because complexity affects quality, but we know what bad looks like. It looks like you rolling out a software build during high volatility! That’s not cool at all.
Consider using feature switches and parameter driven design in all of your products. Features and releases should be totally decoupled and independent. Always be designing for the future and thinking widely on scope. If you do this, ideally, you can free up your engineers to focus on value-added tasks, by thinking well ahead.
Know your Limits
Batman has no limits, but your software and infrastructure do. Don’t wait until the heat is on to care about the basics of security, resilience, speed and throughput. Not only is much of this mandated by regulation it’s always front and centre during times of stress. You need limits on capital and messaging and you need to know when you’re getting close. You need to know what to do once you breach them or hit the ceiling.
Consider intelligent queuing and buffering in your software. It should never fall over in times of traffic bursts, it should give operators plenty of notice when data becomes stale because of buffering and is no longer reliable. I’ve seen systems fail dramatically on bursts and systems that have failed gracefully. Make sure yours is a good ‘Hollywood Death’, that gives plenty of advance notice.
Practice makes perfect. Great software design never forgets the basics. They probably won’t thank you for taking the extra time to build these things in from the start, but when it doesn’t fall over under sustained stress, that’s when they’re going to see the fruits of your hard work.
Building products that operate in demanding environments in one of the true enjoyments of working in the Capital Markets. It demands that you master your craft and think through designs and architectures thoroughly. Everything started from a design and was then translated into machine language by a human with their bare hands. Keeping the basics in mind while stretching to new outcomes is rewarding and you will live with the successes and failures. In the Capital Markets it is as true as ever that failure to plan, is certainly planning to fail.
In my view there are parallels here with the physical world. As Alain De Botton theorised in his best selling book ‘The Architecture of Happiness⁵’, you should furnish your life and the lives of others with beautiful things. There is nothing frivolous or self-indulgent about obsessing over good design, and nothing so rewarding and beautiful as watching your design ‘bat it out of the ballpark’, when the whole world is coming down on it.
References
[4] https://www.britannica.com/science/information-theory/Physiology
[5] The Architecture of Happiness — April 8, 2008 by Alain De Botton (Author)