Circulate

Software decays. SaaS decays absolutely

Written by Joel Nation | Jul 10, 2024 6:23:25 AM

Expecting code, once perfectly crafted and understood by a machine, to be timeless but have you ever considered the curious nature of software decay? Yes, you heard that right - software decays. It seems odd, doesn't it? But alas, the reality of software development tells a different story. While the code you painstakingly write remains static, the digital world around it is constantly in flux.

Consider the video games of the past - archivists are in a perpetual struggle to preserve these games, often scrambling to find suitable hardware or workable emulators. It's a race against digital obsolescence. Similarly, in our own backyards, the software we write for the cloud can break down in mere months or weeks due to changes in the underlying infrastructure. That pesky new API update or a bug fix can wreak unexpected havoc.

This realisation brings us to an interesting metaphor: software is like a moment captured in time, requiring ongoing maintenance to stay relevant and functional. The rapid pace of technological advancements only amplifies this need.

Now, let's talk about old software – the kind that powers government systems on massive, room-sized mainframes. These systems seem to resist decay longer than most, akin to a technological tortoise in a race against time. This longevity stems from two main factors: control over a larger portion of their code and infrastructure, and the monolithic nature of their software. Of course, the mountains of money spent on consultants and mainframe upkeep certainly don't hurt either.

In stark contrast, modern cloud-based software exhibits a significantly shorter lifespan. On average, you're looking at a half-life of about six months before your code starts begging for updates or fixes. It's an entirely different ballgame.

So, what's the game plan? No, we're not suggesting a revival of the monolithic dinosaurs. The cloud offers immense power, enabling us to build more efficiently and robustly by leveraging shared code and services. However, it's crucial to recognise the need for ongoing investment in keeping your software operational. Far too many software founders make the mistake of hitting the brakes on development after launching their initial version, hoping to see how the market reacts. The truth is, you need to keep your foot on the gas.

Continual maintenance is just the tip of the iceberg. To stay competitive, it's imperative to regularly update and enhance your software, keeping pace with market demands. Think of it as a never-ending race against time, where slowing down isn't an option.

But fear not, there are strategies to help you stay ahead in this race:

  1. Stay Proactive with Updates: Regularly update your code, libraries, and cloud services. It's far easier to handle incremental updates than to overhaul multiple versions at once. Be wary of cutting-edge versions, especially in open-source libraries. Aim for stable releases to avoid the perils of package dependency, particularly in mobile development (I'm looking at you Expo).
  2. Keep an Eye on Your Cloud Provider: Understand the latest offerings from your cloud provider. New services might simplify your work or inspire new features. Don't hesitate to reach out to your provider's consultant – they're usually more than happy to assist real customers.
  3. Leverage Others' Work: Use external code and frameworks where possible. While this can accelerate software decay due to dependency on external changes, it also gives you the velocity to outpace your competitors.
  4. Allocate Budget for Ongoing Development: Understand that your initial SaaS customers won't bring instant profitability. Reinvest your earnings into maintenance and R&D. It's a long-term investment, but as your customer base grows, so will your ability to cover costs and eventually turn a profit.
  5. Choose a Reliable Development Partner: Partner with a team that understands the nuances of software decay and knows how to tackle it effectively. If you're in need of guidance, we at Imminently are here to help!

 

In the dynamic world of modern software development, the key to success is embracing the need for continuous evolution. Welcome to the relentless, exhilarating race against time in software development. Remember, it's not just about building software; it's about nurturing it to thrive in an ever-changing digital ecosystem.