End-of-life, the most important lifecycle of software

Posted by Joep Weijers on March 5, 2021

The most important phase in the lifecycle of software, is the final one: the end-of-life. My apekooi project the Online Watercoolerchat will reach end-of-life on the 16th of March 2021. Read on about the project and why you want to eventually get rid of your code.

A year ago, in March 2020, the government of the Netherlands urged everybody to work from home. One of the biggest things we missed from the office were the informal meetings with colleagues at coffee machines and watercoolers. Can we create a digital replacement that provides a similar experience?

The online watercooler chat

Enter the online watercooler chat. In my apekooi time (TOPdesk’s 10% time for your own projects for personal growth) I quickly created an application to connect random colleagues for an informal video chat. We made it free and open source, so everyone could benefit from it.

Fast forward to the present. We are still working from home. And we have found many different ways to stay in contact with colleagues. We organize (planned) informal meetups and we learned how to pair program remotely. We also made some informal activities asynchronous by creating a Microsoft Teams team called “Hang out”. In this team, we set up many channels for whichever topic or hobby has your interest.

Microsoft Teams also has been improving in the last year, which means that it can fulfill most of our informal meetup desires. Although personally I’m still waiting for Microsoft to build games into Teams (MSN already had this many many many years ago!). We’ll work around it for now with sites like BoardGameArena or Skribbl.io.

With Teams providing a superior videoconferencing experience and having other ways to meet, we stopped using the online watercoolerchat within TOPdesk. This has reflected in the usage metrics, with hardly any users in the last months. Therefore we decided to end of life the online watercooler chat on the 16th of March 2021.

Our decision is based on data. We can prove that there are hardly any users. So we know we can safely pull the plug, without inconveniencing customers. Usage metrics are a very important tool to support you in the process of phasing out software.

Why should you end-of-life software?

Software needs maintenance and it needs to run somewhere. Those are the two most prolific costs any piece of software incurs.

The cost to run software somewhere is the infrastructure cost. For the online watercooler chat I explicitly opted to not run on some TOPdesk infrastructure that is already running somewhere and is already paid for. Instead I experimented with Heroku and Azure App service. These services have clear dashboards to show the cost incurred by your application. A simple application costs around 10 dollars per month. Not a lot for a company, especially considering the integrations these hosting services provide, which saved me a lot of time to set up the project.

The biggest cost however is the maintenance cost. Maintenance cost includes the time handling reported issues, reacting to alerts from your monitoring and keeping dependencies up to date to remediate vulnerabilities. There is also an opportunity cost here. All time spent on maintenance for this project can not be spend on other projects that may offer more value for customers.

In larger codebases, these costs apply to modules, microservices or even individual features. Periodically look at your usage metrics and see if there are features you can remove. A proper end-of-life strategy for old, hardly used features, allows you to shift your time and focus from performing maintenance to creating customer value.

About the author: Joep Weijers

Joep is a Developer Experience Engineer at TOPdesk with a keen interest in delivering quality software continuously. He loves playing around with Jenkins Pipelines, GitLab CI, Selenium, Docker, Kubernetes and keeps in touch with his inner developer by educating his colleagues on testable Java code.

More Posts - Website