Site icon I Manage Products

OMG EOL – LOL (or: How to take a product to end of life)

Person looking out to sea at sunset

end of life /ɛ́nd ə́v lájf/   v. To discontinue, drop, put out of misery, send to sleep with the fishes, take round the back and shoot, go the way of the Norwegian Blue

Product managers are full of contradictions: if we’re not busting a gut to launch something, we’re trying to kill our older products off.

The problem is that software companies have an annoying habit of accumulating cruft. ‘Cruft’ is one of those delightful words that I urge you to use in Board presentations to confuse the audience. Cruft is that unpleasant mixture of dust, fluff and other detritus that accumulates in the corner of your sofa.

Cruft is also is a fairly accurate description of all those legacy versions of your products that accumulate over time and are equally troublesome to get rid of.

How pristine is your product portfolio? #

It is important to have a regular cleaning schedule to prevent the unexpected build-up of cruft. In product terms, this means having a defined, published end-of-life process.

But aside from an unpleasant analogy with poor domestic cleanliness, why is it necessary to worry about the accumulation of legacy products? A few reasons:

What is not a legitimate reason is that it would appeal to product managers’ mild obsessive-compulsive tendencies (just me then?) to have all customers neatly on the most recent version of a product. That may be immensely pleasing, but is generally unrealistic. Your products should serve the needs of the customer, not the other way around.

What’s in the way of your customers’ upgrades? #

There are often perfectly sensible reasons why a customer may not want or be able to move up to the latest version every time you release, such as:

Running your end-of-life programme #

The key to a successful end-of-life programme is transparency. If there are no unexpected surprises, it is more likely that everyone will accept that there will be progress and change, and simply plan for it.

There are many things that you can do in addition to run your end-of-life programme well. A few examples are:

Policy and planning #

You need to define an end-of-life policy and share it with your customers. You may want to consider referring to it in your standard terms and conditions or from your technical support policy. The end-of-life policy itself does not need to be particularly complex; it just needs to set out clearly the mechanics of how you will retire products.

Typically you need to define:

Ad hoc versus rolling schedules #

If you have a few products that release new versions on a regular, periodic basis, it might work well for you to define your end-of-life policy such that you only actively support and maintain a small number of the most recent versions.  This kind of rolling schedule could look something like this:

This particular policy defines that when a new version is released, the version two releases ago ceases to receive bug fixes (engineering support) but continues to receive technical support for a further six months.  At the end of the six months, technical support ceases also.  The advantage of this method is that your customers know that new releases automatically trigger old versions to move into the end-of-life process.

Alternatively, if you plan to release a relatively small and manageable number of products, and update them infrequently, then you may want to decommission them as you need to.  If you adopt this model, it is much more important to ensure that your customers receive adequate warning to allow them to start planning their upgrade.

Over to you… #

What does your end-of-life programme look like?
What do you find tricky?

I’d be really interested to hear from you in the comments or on Twitter.

Exit mobile version