“[Web] Performance is a lot like plumbing. It’s hard to get people to pay attention to it until something is wrong.” — Tim Kadlec
Performance is an often invisible part of our online experience. As Tim Kadlec notes, most people don’t notice it until something’s wrong. Performance is, in fact, the cornerstone of any successful user experience.
So what is user experience?
Broadly defined, a user experience consists of the perceived feelings and resulting emotional outcome from our interaction with a product, system or really anything that can be touched, felt, or sensed in one way or another. Seems straightforward enough but because of its subjective nature, UX is often misunderstood and elements of its success (or lack thereof) — like performance — overlooked.
So what is performance?
Performance in the context of UX is also loosely defined, but let’s use a widely accepted definition that states that “performance is the total effectiveness of a computer system, including throughput, individual response time, and availability.” This definition can be applied to hardware, software, and network performance on both client and server sides.
As developers and UX designers we don’t have much control over the client side (computer speeds or individual internet connections) but we can ensure the server performance side of things will never be responsible for slowing down an online experience. Delivery of information across the internet will never be instantaneous but we can always make sure we’re one step ahead, prompting responses like “Wow! This site feels fast,” as opposed to “This site sucks, I’m leaving.”
The relationship between UX and performance
An online or digital user experience is implemented in code — code which gets processed by your browser, which in turn works in your Operating System and then is processed by your computer’s hardware. That’s very simplified, but you get the picture: Performance, whether software or hardware, is present at every stage of your time online. No matter how great the designed UX may be, if your performance suffers, your users will feel frustrated. As we say at AREA 17, you can’t separate the design of a website or app from the technology that makes it go vroom.
How to deliver great UX without design
A few months ago we started an overdue updating of the codebase of one of our longest-running projects. Originally built with Rails 3.0 on top of Ruby 1.8.7, the site had been experiencing decreased performance and slower deploys as the codebase grew — a not-so-gentle reminder that it was time to upgrade the whole thing.
Our lead developer on the project, Juan Roldán, started in October, with help from technology director, Luis Lavena, and after a good six weeks of work, more than 500 commits, and a full team QA effort, we ran through it. And it launched without a glitch.
The performance improvement was huge, the new site is three to four times faster with response times jumping from 2,500ms to 500ms and average load times improved from 7s to 2s. See for yourself:
Updated performance is just the beginning. This upgrade will allow our team to introduce future modifications more easily and rapidly as our developers benefit from faster local environments and it will also allow us to tune up specific sections of the code or remove others that have become obsolete. Each time an application gets upgraded, we’re not just aiming to improve its performance and UX but as engineers and developers we also aim to get our application compliant with the highest standards of development techniques and technologies. In turn the wins associated with reaching these goals extend to our clients giving them a solid foundation for growth.
So there you have it — an upgrade to an existing site elevates the user experience without so much as talking to our designers. Of course, as a user, you probably won’t notice it, per se. Most likely you’ll visit our sites and think to yourself, “Wow, this is fast. And fun. And I’m gonna tell my friends about it!”.
And that’s just fine with us.