Your product update: don’t throw the baby out with the bathwater
During a product update, it’s likely that your software is going to shed a few excess features and lines of code. You might be streamlining your product to make for a smoother experience. Or maybe you’re pushing out a fancy new design.
Whatever the reason for your product update, it’s essential that the core functionality of your software remains clear. You need to continually finetune your product to remain competitive. Too much change too fast, however, can confuse your users.
In other words, your product update should never throw the baby out with the bathwater. But in the midst of continual change, how can you make sure that you aren’t burying your core functions, or losing sight of them altogether?
Product update goals and dangers
Product updates are important for the continued success of your software. There are often two main goals for a product update:
- To add functionality, cater to a new platform, or change designs. (Looking after the baby)
- To streamline your product and make it run smoother and more efficiently. (Throwing out the bathwater)
However, losing sight of your core functionality when aiming for these product update goals can produce negative outcomes.
- Usability rot: burying your core functionality in new features.
- Resource rot: updating features no one uses.
- Experience rot: breaking or removing an essential feature in favour of a ‘nice to have’ feature.
At best, losing sight of your core function can deliver new features that a few of your customers might use. At worst, it dilutes the usefulness of your product and frustrates customers that can’t find the functions they want.
Keeping the baby
It might be a software upgrade, a refreshed user interface design, or compatibility with a new operating system or platform. Whatever it is, releasing a product update is exciting and daunting in equal measure. You want to make sure that you’re not taking important functionality away from your customers, but also want to keep your product as sleek and efficient as possible.
This can lead to trying to keep the baby without getting rid of the bathwater. Keeping both baby and bathwater often manifests as a drive for feature parity; the desire to replicate every feature for the new platform. This, in turn, can lead to feature equality — treating every feature with equal weight, and so updating them all equally. This weighs down your team. Shipping a product update is less agile, and becomes a herculean task.
Not every feature in your software product will need updating, reworking, or replicating. By keeping focus on your core goals, features and functions, you can avoid releasing a product update that improves on things no one needs.
Instead, you need to identify the core functions of your product. They’re the baby you don’t want to throw out. So, it’s essential to recognise the core functionality of your product — and the features integral to achieving it.
Identifying the baby
There are a few ways you can identify which functions and features are core.
- Consider your MVP
Your minimum viable product (MVP) is the foundation of your software. It’s the embodiment of your software’s core functionality. If you are having trouble remembering what the product originally set out to do, consider the functions that your MVP promised.
- Consider your user stories
Similarly, your user stories will highlight the pain points your software seeks to solve. Functions that specifically answer these early pain points are likely core to your product.
- Consider the most used features
If a feature is being used by most of your customers most of the time (or even all of your customers all of the time), it’s obviously integral. Remembering what your most popular features do for your customers, then, is remembering the most valuable (core) functions of your software.
Throwing out the bathwater
To streamline your software, you need to get rid of the bathwater — the bits that haven’t worked, aren’t useful or are broken. This includes surplus features, confusing interface design, or unnecessary layers. But taking your clean-up too far could see the baby — your software product — going down the drain with it.
In your pursuit of removing, revamping or replacing non-performant elements, focus can shift away from the foundational functions of your product. Losing sight of your core functions can mean that your product becomes sort of good at a few things, but not great at the right thing.
So, you need to be able to identify which features and functions are extraneous, and which are ‘nice to have’.
Identifying the bathwater
You can identify the bathwater by questioning each feature.
- How does the feature relate to the core goal of your product?
If the feature isn’t closely related to the core goals you’re seeking to achieve with your product, and instead offers an extra function on top of your core, then it’s a ‘nice to have’ feature.
- Are they used by everyone or are they niche?
If only a small amount of your customers use the feature, but they use it all the time, it’s a niche ‘nice to have’. If the feature is only used by a small number of your customers on rare occasions, it’s likely extraneous and could be a sign of feature creep. These features are the most beneficial to cut out in a product update.
- If you removed it, would the product still offer its core goal to a satisfactory level?
‘Nice to have’ features require you to remember the core goals of your product when you update them, to keep them related to your product function. Surplus and non-useful features, meanwhile, are those you might consider removing or phasing out in your product update.
Product update success
By remembering your core functions, you can cut down on excess features while ensuring your product functionality doesn’t go with it. It will help you avoid making improvements no one wants, and stop you from falling foul of feature creep. Product updates, after all, are about improving the user experience of your software.
So, keep the core goals of your software at the forefront of your mind, and don’t throw the baby out with the bathwater.