Software maintenance - "To do or Not to do?"

In this blog post, we will give some of our views of why software maintenance is recommended and why it should be mandatory for any serious company.

So far, we saw several different cases when companies do not use SW maintenance, which causes them a lot of problems. Here are two most common ones we noticed so far.

First use case

In SW development, it is unfortunately quite common to stay on a frozen framework version and do your own fixes. However, SW frameworks change so fast that within a few months, a new version will land.

It is better to report issues to the framework owners and take a little patience for official fix/improvement than to do it on your own. Even to pay some money for a fix if needed.

Eventually one might get stuck into a frozen version with a large set of internal hacks to "make it work". As longer time passes, and as newer versions arrive, you will be further away from the latest one until you reach a critical point of "no return", a point where migration will become impossible or extremely expensive.

Making your own fixes is simply a bad practice, indicating lack of experience of an SW project manager or senior developers.

To solve that problem is very easy.

Well...., simply don't do as described above. Don't make your own fixes, and period. For those who did that, please take our condolences as eventually the cost the company will pay to do everything from beginning or to do a migration is several times pricier than simply paying to framework owners to do "their thing" to bring required fixes.

There is another component involved. By reporting issues, or even participating by giving an opinion or proposal on how to solve the problem, you will not only help to improve the product but also will help others using the same framework.

If there are dozens or hundreds of such companies doing the same thing, can you imagine what you might get in the next version release?! Can you imagine how far away can you be by sticking to the frozen version with your own fixes? And finally, how much financial damage can you actually do to your company? The money you usually get, a bonus or a salary increase, will be eaten by the cost of migration. In the end, programmers are the ones paying for this because of their own or their managers' mistakes.

Second use case

There are many cases when companies don't use SW yearly maintenance after initially buying the product. It is one terrible practice hidden under the parole "maintenance is expensive".

Well, is it?

Let's take for example a specialized software, a type of SW not sold in large quantities. Such SW always cost more as it has a limited audience. SW development itself is not cheap, and still prices under which SW can be sold have their limits. So, such companies have to compensate somehow. It is common to compensate through SW maintenance. Calculation is very simple.... Sell the license at the lowest possible price, even if it is sometimes below a real price, and rely on a company's yearly maintenance support. The more the clients with maintenance, the maintenance itself can be reduced also. Here, SW vendors invest trust in their clients also.

The story does not end here...

Mentioned above is just part of the story. By paying maintenance, companies under the maintenance regime all together are sharing the cost of development, mutually reducing total cost. As more companies are paying for the maintenance, it actually means that each individual company is paying a fraction of a real price.

Take, for example (theoretically), that company covered all the possible clients, and has no ability to sell the product license anymore. What do you think about how the SW owning company can support and maintain the product? Well, by charging for SW product support. It is simple, the more maintenance paying clients, the cheaper the maintenance cost.

Still, there are other parts of the story... Math is a little bit different from "if there are 10 companies, I would pay 1/10th of the maintenance price"... actually, that is not the case even if the price is generally lower.

In today tech world, changes are ultra-fast, and sometimes we need to invest in re-education or R&D and testing for new features which further requires hiring specialized experts or paying specialized 3rd party services. So, if your company needs some special solution, is it cheaper to do it on your own, find and hire people who will do it, or you will get the product from a specialized vendor? Just, think about the cost.

Many times, there is a lot in finding a proper technically skilled personnel, often with a special knowledge (craftsmanship). By paying for a product from a specialist and paying for maintenance, you're actually paying only a fraction of a cost. And this is a niche where specialized companies find their own calculation to make a "financially viable" product. All parties get something out of that symbiosis.

Another benefit of having a long term SW maintenance might allow you to get the next major release with extreme discounts, and in some cases even free upgrade.

Some cases for our product...._

A new web technology is on horizon and already available for beta testing -  WebGPU (https://www.w3.org/TR/webgpu/). Simply put, a technology which allows web browsers to use powerful graphic cards instruction set not only for graphic but all types of hardware improved mathematical operations.

That includes a modern advanced statistical analysis known under the quite popular name now - A.I. - Artificial Intelligence. In other words, sooner than you think, AI will be possible to run within the browsers with reasonable performance. We already have some ideas how this can be used within our product. Of course, some investments into R&D is required. That investment comes from companies paying for product maintenance.

If your own company would do that, how much would it cost you? Yes, sometimes you will get a feature you don't need, and sometimes you will get a feature you never thought about which turns out to be just the right solution for some of your company requirements. Why might that happen? Simply as other companies might be in the same situation and already requested such a feature.

Another web technology which will arrive in a few months from now is a WebAssembly GC (garbage collector). We are already using WASM inside our product for light and fast 5250 terminal data transfer and processing. Introducing WASM GC will allow us to make our module smaller (faster to load and activate), but also will be easier for a memory. The existing module will be recompiled with a different engine (which currently does not support WASM GC) that produces smaller WASM.

Technicalities are not important here, our emphasis is that by maintenance you are also paying someone to watch for technology changes and to always bring you a technically advanced, updated and maintained product - hassle-free.

The last example. Browsers are changing so fast, many new technologies are popping out on a yearly or even monthly basis. Also, some other browser technologies might become deprecated. As our product is web based, runs inside browsers, it is crucial to have SW maintenance. Without maintenance, you are under a risk that our product might eventually stop working due to the web browser changes. How much will your operation cost being nonoperational just for a single day?

We also use some specialized services and talk from our own experience!

One example is... we do not have our own accounting department, we are using certified accounting service to do all our company finances.

As they are certified and directly connected to our government financial agency reporting making our lives much easier and hassle-free and all that for a fraction of the price compared to having an internal accounting department.

Accounting specialists are the ones monitoring legal changes, tax changes and other accounting related tasks we don't have to take care of, so we can focus on our product development.

If we miss something out from financial reporting or if we are unaware of some legal changes, such mistakes can be extremely expensive. Instead of doing it on our own, we simply hired a specialist, "accounting as a service".

Indeed, it is rather a simple example which will probably not work well for a large organization, however we delegate all of this to a specialist as you should do when buying a specialized SW product and have a hassle-free and peaceful sleep at night that everything will be working just fine.