Rethink performance engineering in the SDLC
Have you ever experienced the frustration of slow-loading applications? Even worse, when one of your business applications is loading slowly, it seems as if you suddenly need to use it a thousand times a day. You hate this application so much because it destroys all your fun at work. If only you knew a way to avoid using that application. The entire brand related to this particular IT service spells only frustration for you. You’ll never use or buy any products related to this brand again.
Prioritize software quality and design
Many customers and employees out there have to deal with such scenarios every day. Whether they’re in a good mood, stressed, or just tired from the previous day, they’re forced to deal with slow-loading, non-performing and unreliable IT services as part of the daily routine. Nobody deserves to suffer the frustration that comes with using poorly designed applications. All engineers, from Dev to Ops need to realize that software quality and design are a top priority. And we can’t improve the quality by testing.
New developments such as analytics, machine learning, and artificial intelligence are promising to bring solutions and improvements to the way we develop, test and operate our core IT services. But will these innovations fix performance-related problems as well?
Remember that modern programming languages such as Java also offered great things. The Java garbage collector, for example, promised that developers would no longer need to worry about freeing up the allocated memory. Now we run memory leaks, and fixing those can be a complicated task. Another example is the improvements in storage devices. The storage that was available 30 years ago was very limited and expensive. Only a few kilobytes were available, but our developers could manage, and were able to write applications nonetheless. Nowadays, massive frameworks fill up our disk space. Even though applications are allocated a hundred times more disk space, they still run slow. In short, technological improvements have not brought us a silver bullet or any generic solution for performance or quality shortcomings.
The chances are that the recent developments such as cloud, container, virtualization and the new programming languages will still not change this pattern. The more layers we add on top, the more complex our application landscapes become, and the more careful we need to be when it comes to planning and designing such services.
A performance-engineering strategy that works
Don’t take fast-loading applications and reliable backend systems for granted. Utilizing the latest technology will not help you overcome slowdowns because it often introduces an additional layer of complexity. One recipe that does work well though is to build a common knowledge base of performance-engineering practices, and ensure that early and continuous performance validation is part of your engineers’ daily work.
That being said, a 360-degree performance-engineering strategy includes:
- performance requirements
- design for performance
- code for performance
- performance testing as part of your CICD pipeline
- integration and end-to-end performance testing
- performance monitoring on production
Don’t hope that any tool can perform all these steps for you though. Our experienced engineers link the dots and bring performance to your development project from day one. Any other approach will mean you’ll have a very hard time of firefighting and bug fixing to tune up a badly performing application.
Happy performance engineering!