Speed is no longer nice to have. Nowadays, businesses live and die because of how customers using their services online. This post is the second part of my series about reshaping business with speed and it will shine a light on the best practices and difficulties involved.
Adoption and Understanding
Speed at QA. Initially, speed optimization was limited to quality assurance stages. Developers built their new application over periods of several months and shipped it over to QA teams. Software testing teams started with functional tests and a few weeks before deployment into production they conducted load and performance tests which are better than no performance validation at all. The problem was twofold, late detection and massive rework required to fix performance hotspots.
Speed at Dev. With the need to deploy new features faster into production early failure detection and elimination have become a higher priority. Forward-thinking companies have started with the integration of performance into their design decisions, improved their performance monitoring on development stages and set up component level tests which validate response times already during implementation phases. This ongoing performance validation helps to get rid of nasty slowdowns early in the development lifecycle.
Speed at Prod. It’s a matter of the fact that your application, the underlying infrastructure, content and the network will change over time. Even if you have an endless budget for your testing efforts, you won’t be able to simulate all those potential changes and validate how your application deals with those. Performance and Availability monitoring of your business application at production is an excellent opportunity to identify hotspots or variations of response times or error rates before your customers will be affected.
IT leaders don’t rely on a single layer of defense. They start with speed validation during QA stages, extend this activity to software development phases and have a first class performance monitoring suite in place which collects all user interactions 24/7.
The need for data
The truth is in your data because it reflects the footprint of your services. Independent whether your customers are internal employees or located around the whole world, there is a trace which you can use for analyzing how customers are using your sites and how your services perform. Speed is often massively depending on user and data volumes. Many websites can’t deal with black Friday load situations, crash or respond slowly to customers in front of their screens.
Forward-thinking players are using real user monitoring solutions which collect highly useful data. Those insights help them to see their services with the eyes of their customers. Furthermore, it enables isolation of bottlenecks and deep dive analysis to identify the root-cause of the actual problem. With the rise of DevOps more and more businesses extend their performance monitoring to DEV and QA stages because quick error analysis is essential to avoid critical delays in their fast delivery chains.
Speed requires more than sound engineering and monitoring practices. Businesses also face many managerial challenges in introducing performance engineering into their organizations. Executives may still need to learn more about performance, deepen their perspective on how to organize the business around performance and develop an expansive view landscape in which their company operates.
Understanding of performance. I think that every frontline manager needs a basic knowledge that – through lifecycle performance engineering and analytics – we do have techniques that will produce better results than gut instinct is necessary. Be aware that there is no cure for performance. It’s more a permanent journey because small changes can impact user experience in a negative way. Don’t make your performance efforts a one-time exercise. Trips to Silicon Valley to experience how digital natives deal with new technologies is a well-practiced learning session for top management. However, I’m convinced that a hands-on lesson with practical performance engineering insights could produce a much better understanding than those high-level Silicon Valley roadshows.
Organize for performance. DevOps is knocking on our doors and brings us new organizational challenges which also affect performance engineering teams. Should businesses rely on their centralized or decentralized specialist groups? If we look at speed optimization activities, collaboration across units is essential for finding and eliminating the cause of bottlenecks. You need engineers with excellent communication and organizational skills which take care of performance. Based on my experience, a matrix team which is in charge of speed across your business outperforms all other compositions.
Re-think the landscape
In one of my recent speeches on performance engineering topics I’ve raised the question to my audience: “Who has a monitoring strategy in place?” Surprisingly, less than 3 percent mentioned that their company has a well-structured monitoring procedure. I was a bit surprised on this sunny afternoon about this outcome. It seems that a vast proportion still drives on an unsafe path because they don’t actively manage the speed of their applications. Investments in digitalization are a risky undertaking if the foundation such as monitoring for performance is not correctly in place. Re-think my advice above prior you write a check for the next digital IT investment.
What to do next and the way forward
Conduct a performance engineering health check will help you to get facts about existing gaps and receive professional advice how to close remaining clefts. You can use a maturity level based practice for comparison with the current state of the art or your competitors. Big companies may have all skills, processes, and tools in place but they often lack on methodologies and best practices in the performance engineering space.
Companies tend to invest in projects which deliver short-term profits. Speed is nothing you can buy or guarantee with an ad-hoc-fix. It’s much more a long-term strategy for satisfying user experience, fewer operational efforts and more time for complex business problems.
Keep doing the excellent work and make performance part of your development chain.