Performance Optimization is like painting the Golden Gate Bridge
Users speed expectations are on the rise and companies started investing in the optimization of their services and business processes. Outstanding players such as Amazon understood that the competition is high and bad user experience leads quickly to growing abandon rates. When those frustrated users start to spend their money on other, more reliable websites, it’s already too late.
The endless optimization game
When is a business application fast enough and who will set the speed expectations? Probably there are many answers to this question. At the end of the day, your user community will take their decision, and the impact on your business can be fatal. Slow services are a nightmare and optimizing those late in the development cycle is often not possible without a complete redesign. Once you’ve tuned your application and actual response times are below 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. 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.
Strategies for great user experience
First of all, avoid re-inventing the wheel. It’s much better to follow proofed practices than coming up with something new. This principle applies to all kind of development frameworks, project methodologies, and standards. Keep your processes simple and intuitive. Don’t replace complex processes with new technology. It’s better to start from the ground, re-think the design and build something which 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 which allows horizontal and vertical analysis. Set thresholds and enable proactive alerts for any degradations.
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.