Often our clients ask: “How much does it cost to maintain the app?” or “How expensive is it to support our legacy software?”. Well, it is a quite complicated question without a single-valued and straightforward answer.
At Azati we think, that modern businesses lack the information about software maintenance. It is not enough to know the exact numbers.
WHAT IS THE APPLICATION (APP) MAINTENANCE IN 2018
The software development industry changed in the last several years. From year to year, the software development costs are decreasing. Today the software is similar to Lego constructors: developers make applications of many different components.
As you know there are a lot of open-source frameworks like Angular, React, React Native, Vue, Django, Rails, and others. For those frameworks, there are a lot of different components (libraries): if we look at Ruby (on Rails), we find more than 145.000 (!) of different Gems (libraries) to use. Ten years ago, the developers should create the library first to use later.
Every library is responsible for different functionality: authentication, internal statistics, testing, alerting and so on. Today to create application successfully we do not need to reinvent the wheel and code everything, we need to integrate the existing components into the one robust solution.
We already found that the software development market changed in the last several years due to the variety of open-source software and it has to lead to the significant cost reduction – what next?
The critical moment for maintenance processes understanding of 2018:
We don’t need to go in-depth analytics, elaborate marketing researches, and marketing strategies to develop and deploy the app prototype, especially if we are talking about the mobile app. Fast launches become available due to relatively low development price.
Deliver high quality and bug-free application in short terms is close to impossible. So developers often use so-called feature-driven development (or another Agile methodology) to deliver the core functionality as soon as possible. Agile greatly improves development speed and help businesses to adapt to the changing market.
After launch, if the application is successful, the first things we do – collect feedback, discover bugs information, analyze issues. Later develop and deliver new features according to the obtained information during the previous step.
In fact, the application maintenance is everything that comes after the official launch. If we develop only a “lite” version of the app with the core functionality, will additional features be maintenance costs? Sad, but true.
So if you prefer to deliver the result first with Agile, the maintenance costs could be much higher than prototype development costs. Many youngsters prefer Agile, just in case they can develop the app, prove or disprove the marketing hypothesis, earn first profits in the shortest terms.
In comparison to Agile, during the software development with the traditional Waterfall methodology, we could calculate the average of the maintenance costs per year with a fixed percent (about 15-25%) from the overall development price. Large enterprises prefer Waterfall because their business processes are documented, and management develops marketing, management, production plans.
WHAT MOMENTS DO AFFECT THE APP MAINTENANCE COSTS
Well, different applications and businesses require different approaches. There are some common factors for all applications that affect maintenance costs in this or that way.
Here are the three most widely spread factors:
– Application Platforms
– Technology Stack
– Overal Code Quality
WHY IT IS EXPENSIVE TO HAVE THE APPLICATION ON THE MULTIPLE PLATFORMS
Imagine that you hold the startup company with the project that helps women control the menstrual cycle, also gives them recommendations about their health.
Someone for your company developed the two mobile applications: one for Android devices, another for the iPhones. In fact, you have two separate applications on two platforms – Android (Java), iOS (Swift).
Even if the similar issue occurs both on Android devices and iPhones, your developers will more likely do the same work twice. Just in case there are two different code basis.
This way, if you have the app on two platforms – you can most likely multiply your potential maintenance costs twice.
Related:- Resources for those affected by COVID-19
WHY THE TECHNOLOGY STACK MATTERS
As we already said, there are a lot of different frameworks and technologies. A vast number of frameworks and technologies made a mess in the industry. Some of them are easy to use, some of them are quite specific.
As you may remember, we already described the problems you face if there is the application both for Android and iPhone. Now imagine that your developers used the unpopular framework or rare programming language. Unfortunately, this fact may multiply the support costs as minimum as twice.
WHY CODE QUALITY MATTERS
To find the reliable vendor is not the easy task: hundreds of companies provide similar services. Primarily, if you are looking for the outsourcing company, we recommend to check facts and collect recommendations from its previous clients.
Why is it vital to save money on maintenance? The most common problem of today outsourcing is a lack of highly qualified developers. Some unscrupulous companies may provide you “senior software architect” but in fact, they may ask a newbie to do the majority of work. Even if the newbie (junior developer) thinks he knows how to code – he is probably mistaken. Unfortunately, such companies can’t provide the descent code quality.
That probably won’t generally aspect the deliverables and the final result, but the maintenance costs dramatically improve. Even we sometimes refuse software maintenance due to the code quality problems. It takes too much time to figure out how the code works.
WHAT THE MOST POPULAR CATEGORIES OF MAINTENANCE (SUPPORT) ARE
Now let us discuss the most popular categories of software maintenance to understand how the final results are is calculated.
Block hours allows the client to book working hours upfront. This method is commonly used to offer reduced hourly rates. The main benefit of this type of maintenance is that the customer has already purchased a fixed number of hours to use either per month or year. Such an approach allows customers to use the blocked hours as flexible as possible.
Dedicated Team is the same as block hours with the single difference: You block the team but not the single developer.
Huge companies prefer such approach due to all their activities are already planned, and it can help them to reduce costs in the long term run blocking a team for the year. This model is also suitable for the developers. Thus they can plan their workload.
On Demand Support
The point of on-demand support is simple: you pay the money when you need the momentary support/maintenance. When you are looking for the on-demand help, you expect the developers to get to work as soon as possible.
During on-demand maintenance, the software development companies can’t plan the workflow of their developers. There is the high probability that at the moment when you need assistance there are no free developers available.
Here come the three possible ways to solve your problem:
– To find the new developer as soon as possible (expensive)
– To pull the existing developer from the project (disrupt the deadlines)
– Hire a freelancer (not an option)
In fact, it is quite risky for the software development company and usually costs a lot. Often, people are trying to avoid this category of application support and conclude the service agreement.
The service agreement is the document concluded between the customer and the service provider (software development company), where all critical aspects are well documented.
The most widely spread aspects are:
– Relationships between the vendor and the customer
– Payments and Rates
– Technical Support Availability
– Software Updates (Post-release support)
– Customer Support Service Obligations
That document protects both a customer (he has reliable maintainer) and software developers (they can plan their resources). By signing the service agreement, the customer precisely understands what is included and excluded from maintenance and how it is billed. It makes the maintenance process clean and transparent.