Engineering

Software isn’t static

Computer software is unlike most other things. Many people often think of it as a tangible product, like a kettle or a television. You bought it or had it written, to perform specific functions for you.

Software is different in two specific ways.

  • It’s far more malleable than a physical product
  • It doesn’t live in a vacuum

Software is malleable

Unlike any physical product, software doesn’t need to be “finished”. It can begin to be useful immediately, the moment a single function is complete. Vast amounts of value can be realised by getting the software into the hands of users quickly to get real-world feedback. Then iterating swiftly based on that feedback.

A modern development cycle can be immensely quick. Long gone are the days when a software release needed to be meticulously planned to hit a deadline for producing copies on physical media (how many of you remember installing software via floppy disk raises hand). Many organisations have implemented practices such as continuous deployment. Developers can make a change and, assuming it passes automated tests, deploy it into users hands straight away. It’s just not possible to do this with a physical product.

Software doesn’t live in a vacuum

Your software is dependent on other software—and that software keeps moving forwards. Bugs will be found and fixed. Security vulnerabilities will be discovered which require changes to avoid the problem. Features can be removed. Any one of these changes could have implications on the functionality of your software.

Take the more recent phenomenon of automatic browser updates like Chrome. Google defaulted it to install new versions as they become available automatically.

That’s good as a consumer; you’re protected against vulnerabilities, and you get bug fixes for things that were broken. But, you also get new bugs from the things that were added or changed. Whether you like it or not. If you have a web application, that update could have broken your application in some way. It might only be cosmetic, but — and especially if you rely on javascript for it to function — it could cause your application not to work at all.

Software is a journey

Why am I telling you this? It’s to bring home the point that software isn’t a one-off cost to write it and you’re done. Treating it as such means that you will end up feeling disappointed. Instead, it’s better to think of it as a journey. As with many things, there’s a cost of ownership, even to stand still. Beyond new feature development, ongoing support and maintenance are often an after-thought to many clients and their developers. It’s a fact[1] that most of the cost of a software system is in the maintenance phase of its lifecycle. You must factor in ongoing support and maintenance when you weigh up the viability of developing custom software.

Unlike other software developers, Foxsoft prioritises the support and maintenance of our clients’ applications. We ensure that they continue to remain an asset to the organisation for many years. If you’re looking for top-notch, responsive support and value a secure and maintained web application, get in touch.


  1. This study from Stanford asserts that the typical cost of ownership of a piece of software is 60-90% of the total price.