2 Tips to Reduce the Cost of Your Software Development in the Long Run

Guy working on classic race car

For many decision makers, it is not clear that software maintenance is generally more expensive than the actual development of the application as this document shows. Historically in software development there are 4 types of maintenance cost.

  • Corrective (21%) maintenance: Correcting discovered errors, generally the result of bugs or misinterpreted features.
  • Preventive (4%) maintenance: Correcting latent errors by improving maintainability
  • Adaptive (25%) maintenance: Adapting to changes in the environment. A good example would be an upgrade to a new version of your operating system or to upgrade to a new version of your JavaScript library.  Adaptive maintenance does not result in new or changed functionality.
  • Perfective (50%) maintenance: Adapting to new or changed user requirements. When users have a tangible application they see that they want more. Hardly ever are all the user stories complete before development starts, and new features are demanded all the time.
What can you do to reduce the cost of your software?

Reduce perfective maintenance by tuning to your user’s needs. One aspect to reducing software maintenance and, therefore, your cost is to put in the extra effort in the first phase of the project or feature. Make sure the scope of the project is clear so that you do not develop features that don’t add value. No, I am not insinuating we go back to the waterfall model. User test your software before you actually code it!

Prototypes are easy to make in tools like Keynote or PowerPoint, and there are also plenty of online tools available these days that are even better for the job.  Some output mock-ups that can represent the product sufficiently to test the features with actual users already! These tools output complete prototypes that you can use to do user testing.  How great is it that we can already test the software before it is actually developed? You can avoid spending expensive development hours and large amounts of perfective maintenance hours. 50% using the Google Ventures Product Design Sprint. We have booked good successes with this methodology. For the first time in my life as a software developer, I have not seen the product change since it was developed—at the time of writing well over 4 months ago.

Reduce corrective and adaptive maintenance by anticipating change. We are not going to avoid change altogether so we better prepare for it. It is a fact that higher quality code leads to less corrective maintenance. Well-structured and designed code is easy to modify and will also lead to less adaptive maintenance. We don’t make it a secret that we advocate for clean code, and why it also benefits the project, the team and the individuals working on it. Also, note that good code is generally less code. Less code means less code to maintain. Reducing your adaptive and corrective maintenance can win you up to 46% savings.

You can’t avoid maintenance.

Whether your application is 10K lines of code or your application 4M lines of code, maintenance is something that you can hardly avoid. But you can anticipate change, you can write clean code from the start, measure your metrics, and you can already test your feature before you actually spend any money on writing it all together! Stop developing features nobody uses and stop guessing how and if a user will use it. Measure it.

How do you think we can reduce the cost of software even more?