Users' speed expectations are rising, and companies have started investing in optimizing their services and business processes. Outstanding players like Amazon understood that the competition is high and bad user experience quickly leads to growing abandon rates.
When those frustrated users start to spend their money on other, more reliable websites, it's already too late.
When is a business application fast enough, and who will set the speed expectations? There are many answers to this question. Your user community will take their decision, and the impact on your business can be fatal. Slow services are a nightmare; optimizing those late in the development cycle is often impossible without a complete redesign. Once you've tuned your application and actual response times are below the given thresholds, there are still nasty changes in data, user, or content, which can quickly result in another bottleneck.
Don't believe that load and performance analysis is a one-off exercise. The late involvement of performance testing and tuning specialists is another reason for increasing optimization efforts.
Some people argue that performance tuning is like painting the Golden Gate Bridge.
First of all, avoid re-inventing the wheel
It's much better to follow proven practices than to develop something new. This principle applies to various development frameworks, project methodologies, and standards. Keep your processes simple and intuitive. Don't replace complex processes with the latest technology. It's better to start from the ground, re-think the design, and build something that is lightweight, flexible, and understandable within minutes.
Secondly, switch to a performance-first strategy
Consider non-functional requirements from day one in your development process. Build your applications with performance requirements in mind. Schedule load tests early in your lifecycle and integrate those into your build pipeline. Specify your set of performance indicators and verify those in the development lifecycle.
Finally, close visibility gaps in your monitoring chain
Consider the end-user, their transactions, the network, and all backend components in your monitoring stack. Capture all user interactions and choose a platform that allows horizontal and vertical analysis. Set thresholds and enable proactive alerts for any degradation.
I don't entirely agree with people who argue performance optimization never ends. You can tackle nasty slowdowns if you tune your development lifecycle towards performance because it's a matter of everyone.
Happy Performance Engineering!
Comments