Executive Insights on the State of Performance
Executive Insights on the State of Performance
From our latest Performance Guide, we asked top tech industry professionals about the future of performance, and they gave us these 8 takeaways.
Join the DZone community and get the full member experience.Join For Free
Maintain Application Performance with real-time monitoring and instrumentation for any application. Learn More!
To gather insights on the current and future state of Performance Testing and Tuning, we talked to 14 executives involved in systems performance. Here’s who we spoke to:
1. Performance and scalability are the key benefits to improving testing and tuning. Performance is key for any online service or app. Start with the product and the desired user experience. Identify what performance metrics are going to be used to delineate between “good” and “bad” performance for a given workload. Once you have established metrics for success, have a reproducible, reliable, and representative test scenario with multiple users, as well as the ability to measure actual real-time performance.
Know how the application scales and how you plan to deliver performance expectations as the app grows. Be able to monitor every transaction and command in real time so you are able to see dynamic and automated scaling of compute resources based on real usage trends.
2. The most significant changes in performance testing and tuning have been the cloud and the complexity of tools and solutions. Cloud and DBaaS cover the operational basics; however, IT departments are still responsible for incidents and performance, and need ways to identify when problems are occurring in real-time. This includes monitoring containers, PaaS, AI, and serverless technologies.
The complexity and scale of applications and infrastructure has grown along with the legs of communication with geographical- ly dispersed workers, customers, and devices. There are multiple choices of open source databases; however, as the choices have grown, so has the complexity. In the last 12 months, we’ve seen tremendous growth in client-side apps thanks to HTML5 and the UX expectations from apps and transactions.
3. The most popular technical solutions for performance testing and tuning are open source and proprietary solutions developed and used by companies, rather than third-party tools. Companies are also developing their own open source tools for developers to use. Tool kits are easy to use for summaries and queries.
4. Real world problems being solved by performance testing and tuning are the stability, speed, scalability, and security of apps used for social media, rich media, financial services, healthcare, retail, and cold storage purposes.
One respondent's social media client wanted to launch a new product in a week. They had a big budget for advertising and anticipated having 500,000 users in two months. However, they had only tested their app with 10 users. The respondent's team created a test database to see how the app would function with 500,000 users. It took the home page three hours to load. The client delayed the launch while they re-architected the features and queries to accelerate response.
Another respondent helps to increase engagement with Citibank’s mobile and web digital channels to increase transaction volume, reduce time to market, improve performance, and improve the overall user experience.
One executive's company helps to address flakiness in mobile apps due to poor bandwidth and poor device performance. They've helped a professional social media platform with latent, non-responsive apps, a major airline with their mobile and web applications, rich media companies with streaming difficulties, and banks trying to facilitate the transactions of their customers.
5. The most common issue affecting performance testing and tuning is not implementing best practices. There's often an incorrect use of network bandwidth across applications. Developers need to ensure that queries are valid queries before production, not just testing queries. You need to maintain a well-maintained platform with efficient code, have an integrated view of the infrastructure and the application, and optimize the configuration of the app. You need to have a deployment environment management system that replicates real use cases. Monitor performance on diverse technologies, and don't leave performance testing and tuning up to an individual instead of a team that can test for more diverse scenarios.
6. The future of performance testing and tuning is automation, DevOps, and user-centric integrated testing. Performance testing will continue to shift left with automated analysis and performance testing integrated as a part of DevOps methodologies. There will be an integrated single-pane view of the application and the infrastructure. AI will be used to increase and improve automation, as well as explore applications for potential performance issues. New testing tools and methods will emerge to provide more visibility for cloud applications and services. There will be self-healing performance engineering and platform architectures, as well as smarter remediation actions based on better data and automation scripts. Performance testing in isolation is a thing of the past. We’ll continue to see more load tests happening during continuous integration or deployment pipelines.
7. The biggest concerns around performance testing and tuning today is the lack of it. Only 6% of companies are doing continuous performance testing, and no one is doing continuous UI testing. There needs to be greater integration between applications teams and infrastructure and the realization that performance testing and tuning is a shared responsibility.
8. The skills developers need to ensure the applications they are developing perform well when tested are to shift everything left in the SDLC that they can to save themselves time down the road and to produce more reliable apps. Think functionality first and scalability a very close second. Code efficiently so your app is able to scale efficiently. Check the CPU and memory usage for every piece of code. Be familiar with APM, coding centered languages, and DevOps culture and methodologies. Know the stress levels for the apps you are building. Think about how users will be accessing and using the application or service, and be willing to adjust to the constantly shifting technology landscape.
Opinions expressed by DZone contributors are their own.