The first step to managing your software expenses is understanding them.
My team and I build software for companies worldwide, and tens of millions of people use those products. Even though we have a lot of very happy clients and are generally less expensive than most of our competitors, one question comes up again and again from our prospective clients: Why isn’t it cheaper to build great software?
Unless you have the ability to eliminate global inflation—in which case, I beg you on behalf of the planet to please do something right now—there is no magic solution. But if you understand your IT expenses, you can do a far better job of calculating and, yes, controlling them.
FIRST, A (VERY) SHORT HISTORY
It is actually quite a bit cheaper to build software today than it was in the past. Years ago, the vast majority of the software was written in so-called “procedural languages” like COBOL, FORTRAN, and C. These languages are very powerful but also quite complex. As a result, the code produced by these languages can be very hard to understand and even harder to maintain.
In contrast, newer languages like Java, Python, and C# are “object-oriented.” These languages organize code into small, self-contained pieces called “objects.” These objects can be reused in other programs, which makes the code much easier to master and maintain.
As a result of these advances in language design, today it takes far fewer hours to produce a given piece of software than it did in the past. In fact, studies have shown that object-oriented languages can reduce the time required to develop a program by as much as 50%, and it’s a lot easier to iterate.
What’s more, hosting costs (while still expensive) have fallen thanks to the cloud. In the past, if you wanted to run a website or an application, you had to buy and set up your own physical servers. This was expensive, and it required hiring staff to manage the servers.
Today, cloud providers will let you rent server space by the hour. As a result, launching a website or an application with much less upfront investment is possible.
THE COST OF PEOPLE
This is the big culprit. Demand for software engineers has been skyrocketing for years, and the supply of qualified engineers hasn’t kept pace. This has resulted in a “seller’s market” for software talent, which means that salaries and contract rates have risen steadily. The pandemic then increased demand even further for software developers as more organizations moved to enhance their digital and remote offerings. Then things got worse — the war in Ukraine took thousands of developers off the market, which constrained supply even more as demand continued to go up.
Today, many engineers receive several recruiting pitches per day. Demand for their services will only increase. The U.S. Bureau of Labor notes employment in computer and IT occupations is “projected to grow 15 percent from 2021 to 2031, much faster than the average for all occupations.” Unsurprisingly, engineers expect higher and higher salaries.
Indeed, they may expect more than that. The cost of living in many major cities has risen even faster than salaries. In response, many engineers seek additional benefits like gym memberships, paid education, and more. All of these factors further increase the expense of hiring software engineers.
THE COST OF HARDWARE
Software needs something to house it, and inflation has definitely hit the physical components. The current pandemic has already led to widespread shortages of everything from kiosks to computer chips. This is likely to worsen before it gets better, and the situation may not improve for years.
Earlier, we addressed how cloud computing is less expensive in most cases than traditional on-premise hosting. While that’s true, the cost of hosting your software has also been rising in recent years (though not as quickly as the cost of people or hardware). Cloud providers like Amazon, Google, and Microsoft Azure have been steadily increasing their prices, which is likely to continue.
AN EXPLOSION IN USER INTERFACES
Once upon a time, there were just a few different types of computers. Consumers popped in a CD-Rom, and developers really only had to consider the user experience across a very limited number of machines.
Today, you must reckon with an ever-growing array of front-end user experiences. To start, there are countless different mobile phones and computers, not to mention many different browsers. And how about CarPlay or Smartwatch, or hands-free devices? Or a gaming system? What about AR or VR experiences? And how important is it for an application to also work on older versions of phones, computers, and browsers?
All these considerations increase your costs.
THE COST OF CYBERATTACKS
Sadly, it seems things will only get worse. The cost of a cyberattack can come in many forms. First, there’s the direct financial cost of the attack itself. This can include ransom payments, recovery costs, and legal fees. Then there are the indirect costs, which can include loss of customers, damage to your reputation, and things like damage to employee productivity and morale. The firm Cybersecurity Ventures expects global cybercrime costs to hit $10.5 trillion USD annually by 2025, up from $3 trillion in 2015 so companies need to plan to make their applications as secure as can be done within a reasonable budget.
This area is especially frustrating because it is almost a tax on the entire industry. Everyone needs to spend more time and effort to secure applications, hoping to reduce the chance that an attack will be successful in the first place and to help contain the damage if one does occur.
SO WHAT CAN BE DONE?
Given all this, how does a company keep development costs under control?
Here are a few ideas:
-You can partially offset hosting cost increases by using a “serverless” architecture, which builds applications that don’t require you to provision or manage any servers. Instead, you simply write code that runs in response to events, and the cloud provider runs and scales the code for you. This can be a more cost-effective way to build applications, but it does require a different way of thinking about application design.
-Another way to keep costs down is to integrate open-source software into whatever solution you might need. Open-source software is free to use, and a huge ecosystem of different open-source projects can be used to build applications. Many companies are already using open-source software, and the trend is likely to continue as more and more companies look for ways to save money.
-Adopting microservices is another way to keep costs down. Microservices is an approach to building software applications where each application component is a separate, self-contained service. (Once upon a time, all software architecture was monolithic. Everything needed to be scaled if one process experienced a spike in demand.) With microservices, you have independent components. That means you don’t have to scale everything… which means it’s a smaller task that requires fewer workers (and less expense). Microservice doesn’t save on human cost, it allows to scale of components independently (which means hardware/cloud savings), and it also allows for each service to be built using a different code stack (thus, different kinds of developers could work together) so you can use the most relevant tool set to get the job done as efficiently as possible.
-Similarly, using a tool like Kubernetes allows for automating deployment, scaling, and management of applications, which again allows for fewer workers/reduced costs.
-Finally, outsourcing software development can often lead to huge cost savings if you find the right partner. At Plan A Technologies (where I’m the Chairman), we build high-quality software at a fraction of the cost of hiring developers in the U.S. or Western Europe. Our team deeply understands the verticals where we work, which allows us to build great solutions and advise our clients on how to get the most out of their technology investment. The downside is that many poor software development companies don’t truly understand the industries where they work, so it’s important to do your due diligence before signing a contract.
In short, software development costs are rising, but there are smart ways to offset some of the burdens. While no one is happy about inflation, when you understand exactly what’s driving costs, you can make better decisions and adjust your budget and business plans accordingly.
Aron Ezra is co-founder and chairman of Plan A Technologies, a Vegas-based software company with engineers on five continents. He previously co-founded and served as CEO for MacroView Labs and OfferCraft, both of which were acquired in eight-figure deals.