The need for quality software never goes away. When it comes to addressing application performance issues, it can be a make or break decision. As systems become more complex, it creates more opportunities where quality can be compromised and performance can degrade over time.
I’ve been involved in the performance engineering industry for many years, and I have noticed patterns in corporate spending around overall quality initiatives. There are different motivations and different levels of motivation. I have found it interesting to see what creates the urgency for performant software and why companies do and do not invest in it.
In this article, we’ll take a look at what leads companies to invest into performance engineering, and why businesses sometimes don’t feel they’ll benefit from performance optimization.
How do businesses make decisions?
Anytime a company spends money for something, there are generally only two reasons:
- They want to get something. This could be great profit margins, grabbing market share, or leverage of some kind. In rare cases, it is because it is simply the right thing to do.
- They are afraid of losing something. Maybe they are trying to prevent the loss of money, customers, or being overtaken by their competitors.
While this is an over-simplification at best, it’s generally why people do anything in my experience.
Why Should We Care About Performance?
Why would a company invest the time and money to ensure their software is performant? Companies want better business outcomes. It’s not just about technical metrics. Here are some of the most common outcomes:
- Improved User Experience and Customer Satisfaction
- Cost Reduction and Efficiency
- Risk Reduction
- Scalability for Growth
- Competitive Advantage
- Accelerated Time to Market
- Increased Revenue
Let’s take a more detailed look at each of these motivations.

Improved User Experience and Customer Satisfaction
This is often the most direct and impactful benefit. Fast, reliable, and responsive software leads to happy users, which in turn drives customer retention, loyalty, and positive brand reputation.
Some companies believe in this reason more than others. It usually depends on market competition or if they already hold a monopoly (real or perceived).
Cost Reduction and Efficiency
Performance engineering is a strategic way to save money. By optimizing code and system architecture, companies can reduce the amount of infrastructure and computational resources they need to serve their users. This can lead to significant savings on cloud hosting and hardware costs.
We can see by the popularity of the FinOps Foundation that this is very important to companies built on cloud computing technology.
Risk Reduction
Rather than waiting for a system to fail under a heavy load, performance engineering integrates testing and monitoring throughout the development lifecycle.
This "shift-left" approach helps identify and fix bottlenecks early on, when they are much less expensive and time-consuming to resolve. It prevents costly and reputation-damaging outages.
Scalability for Growth
As a business grows, its systems must be able to handle increasing numbers of users and transactions.
Performance engineering ensures that an application is designed to scale effectively without sacrificing performance, allowing the business to grow without hitting technical limitations. It’s about preventing costly outages.
Competitive Advantage
In today's digital landscape, a fast and reliable application is a key differentiator. Companies with superior performance can attract and retain more customers than their slower, less dependable competitors.
Accelerated Time to Market
By catching performance issues early, performance engineering helps teams avoid last-minute delays and extensive re-work. This leads to faster and more predictable deployment cycles.
Increased Revenue
The benefits of a good user experience will directly translate into higher conversion rates and this equates to increased sales.
While these are all great reasons, the unfortunate truth is that companies can decide to make the wrong decision. In fact, companies can decide to go out of business due to poor decisions any time they want. All it takes is poor leadership and time.
Are There Good Reasons To Avoid or Delay Performance?
While the engineer in me would say there is never a time or reason where performance should not be the highest priority, this is because it has been my focus for over 30 years. So I am admittedly biased in how I feel about it. If I set that aside and put myself into the role of developer, executive management, or end user I may end up with another answer.
- Lack of Immediate, Tangible ROI
- Budget and Resource Constraints
- Organizational and Cultural Resistance
- Focus on Speed over Quality
- Lack of Knowledge and Awareness
- The "We'll Fix It Later" Mentality
Lack of Immediate, Tangible ROI
While the long-term benefits are substantial, the short-term return on investment can be difficult to quantify. It's often easier for management to justify spending money on new features that directly generate revenue than on a preventative measure that avoids future costs.
In my opinion, this is one of the biggest reasons companies do not invest in performance as a priority more than anything else. If the business does not see a huge return for making the software efficient, it may be more important to release it earlier to get more market share.
One of the biggest ongoing debates in the engineering world is “premature optimization” and where the line is where things that just be overengineered for no reason. To spend major money optimizing a birthday announcement website that is only for internal employees is probably not the best idea. Prioritizing speed for real-time financial trading on Wall Street - you will always be optimizing that. It’s about risk, revenue, and customer expectations.
Budget and Resource Constraints
Performance engineering requires specialized skills, tools, and dedicated time. Smaller companies, or those with tight budgets, may view this as an expensive luxury rather than a necessity. They may not have the financial resources or skilled personnel to implement these practices.
While this sounds reasonable, this can actually backfire. It’s another case of knowing when to apply specific performance engineering features. The least expensive way to get started is to shift performance left in the development cycle. Finding performance defects and getting immediate feedback when a new bit of code is being developed means fixing it earlier and saving money on the back end.
Open source tools can be used in this phase of development. While it may require more maintenance and setup time, it avoids licensing costs that are generally off limits for small companies. Shifting left is something even small companies can do and get performance gains.
Organizational and Cultural Resistance
In some companies, performance is seen as a reactive activity that happens at the end of the development cycle. It may not be integrated into the company's core culture or prioritized by leadership. It may be seen as disruptive.
If companies do not embrace “shifting left” as we mentioned earlier, a large integrated performance test could be seen as disruptive. However, performance engineering is more than just testing, and can be done without disruption.
Many times, I have helped tune a system by looking at the website in the browser “developer tools” and made recommendations based on my experience. This did not require a long, drawn out testing exercise and the tuning changes had a major positive impact on the application.
This is why front end website monitoring applications are so helpful. They identify variations in performance when the website updates new changes and sends alerts.
Focus on Speed over Quality
In fast-paced, high-pressure environments, the primary focus is often on delivering new features and products as quickly as possible. Performance and quality may be deprioritized in favor of speed to market.
There are cases where specific functionality is important to release, even when it may be additionally slow. It could be because users are demanding it. Perhaps the loss of a client is in the balance if the feature isn’t released. Perhaps pushing the release would create a contractual breach that is way more expensive than the cost of a poor performing feature.
It really goes back to the business and the risk. While unfortunate, there are times where the business has to overrule engineering for the best of the company overall.
