We’ve all used products that have become a mish-mash of multiple features, where we find ourselves using only a small fraction of the available functionality, or the user interface has become so horribly complicated that we have trouble figuring out how to get the simplest of jobs done.
We call this 'feature bloat' - when a product becomes overloaded with excessive features and functionalities often leading to increased usage complexity, lower usability, and higher cost.
Unfortunately, many established software tools suffer from feature bloat, and this creates those frustrating user experiences where navigating through a sea of unnecessary options and features becomes daunting.
This ‘extra functionality’ not only gets in the way of us trying to get our work done, but sometimes also requires the addition of weighty documentation intended to help us understand how to use it. But let’s face it, when was the last time we actually ‘read the manual’? 😩 (Fortunately, you won't encounter these issues with Voyce—we prioritize simplicity and usability to ensure a seamless user experience 😊).
So what is it that causes products to become bloated with features?
A few reasons might include pressure from markets, a lack of focus around prioritization, and the role that internal organizational politics plays. Let’s have a look at these causes, and then at how we can use design thinking to encourage a more robust process.
Market pressure is the force that companies with competing products in a marketplace feel, that compels them to keep adding more features to their product. They do this in order to match the feature-sets of their competitor’s products, or because of pressure from their customers who have come to associate products with more features as being more versatile and therefore valuable.
In a marketplace where you have multiple products competing against each other, this creates a spiraling effect where each product races to add features, either to keep up with or stay ahead of the competition, or to further differentiate itself from other products in the space. Past a certain point you’ve now got products with feature-sets that no longer naturally align with the needs of the original target audience.
Additionally, a lack of focus during prioritization causes features to be added without considering either their relevance to the product, or their (often negative) impact on the overall user experience. This happens when potential features are not properly evaluated for the value that they add, or for their alignment with the overall product’s goals.
With the modern product development processes that are in place in many companies, it’s now easier than ever to tap into the rich seam of ideas that seem to flow endlessly from not only your product development team, but also your customers, other internal teams and team members, and senior stakeholders. It seems that ideas are cheap, and that everybody has at least one. But not all of these ideas deserve to be turned into features just because they exist - they still need to be evaluated carefully against criteria including strategic alignment, and for the value they add to the overall customer experience.
Related, and just as important, is the realization that sometimes features get added because of the role that messy internal politics plays. This may happen for example, when often senior members of staff advocate for certain ‘must have’ features because of the belief ‘they know best’ or that they have the most experience.
These can be extremely tricky situations to navigate and defuse, sometimes involving team members that are trying to ‘mark their mark’, exercise their authority, or save face. It’s crucial to be aware of why these decisions get made, and to come up with robust processes for avoiding these sorts of ‘cult of personality’ situations.
One suggestion that we hinted at above requires the adoption of a product development process that is less likely to be negatively impacted by these sorts of problems.
In our case, a design thinking-based approach can help mitigate feature bloat by keeping us focused on the needs of our users, and by encouraging us to explore feature expansion through iterative problem-solving. Here’s how this can feed into feature prioritization and feature discovery.
First of all, learn to empathize with your users.
This is a skill that needs to be practiced, but you need to really focus on understanding your customers’ needs, their pain points, and their aspirations. We need to engage enthusiastically in user research, conduct interviews, and observe user behavior in order to understand exactly how people are using our software, and what their actual needs are.
We might also need to figure out where the audience is. Online or offline? Where do they commune? How do we talk to them? What sort of language is appropriate? Can we reach enough of them, cost-effectively, in a way that allows us to learn?
Record and take notes from these interactions so that the observations we make aren’t forgotten. Use a tool like Voyce to log these insights and keep them all together where they can be understood and organized, as the first step in the ideation process.
Based on the evidence that we’ve gathered and worked to understand, now clearly define each core problem that we need to solve, and the goals we want to achieve by solving it. This helps establish a clear direction for feature development and prevents scope creep.
If we’ve done a great job of talking to customers, gathering their feedback and insights and organizing these thoughts, problems to solve will start to jump out at us.
We might notice these problems as clusters of insights all centered around a common theme, or we’ll have that ’Aha!’ moment after seeing problems communicated from the perspective of our customers, or using their specific language.
Whatever the source, it’s possible we’ll end up with many problems that all look like they need to be fixed. This is a good thing! But just be aware that not all problems are created equal, and just because a problem has been identified and defined it doesn’t necessarily deserve your immediate attention.
We suggest that problems are prioritized for fixing, just as we would prioritize any set of tasks that need to compete for our limited time, energy, and attention. There are any number of frameworks we could choose to apply here, just be consistent and choose something that feels like the right fit for you and the culture of your organization. Voyce keeps things simple by using a modified Value vs. Effort matrix, but alternatives include the Eisenhower Matrix, the MoSCoW Method, RICE, and WSJF.
By now we’ve distilled the underlying feedback and insights we gathered from our customers into clearly defined problems which have been prioritized into some sensible order. For each problem, we now need to generate one or more potential solutions, keeping in mind both user needs and business objectives.
Use techniques like brainstorming in a diverse group, mind mapping, and prototyping to explore different possibilities for solving these problems. For these solutions (which could be implemented as one or more features) really think of the upside effects of their implementation, and how these effects will be observed and measured - how will we know if a new feature is a success or failure? Which business metrics is it important for these new features to move, how will user behavior be affected, and how will these changes be detected? You need to document all of this.
A key part of this process is to not assume that we have all the answers, but to frame potential solutions as hypotheses to test, or experiments to run - the intent of which is to help us learn more about the behavior of our customers and the solutions we’ve built.
And, as with deciding which problems to solve first, if we have multiple solutions we could choose to implement, we also need to carefully and objectively prioritize these as well. How you do this is once again up to you, but be as consistent and as objective as possible. Voyce encourages you to look at the value of each solution (which is a function of the reach and severity of all the problems it will solve) against the estimated effort of implementation (the cost), but you can choose any approach you like.
Creating low-fidelity prototypes is a great way of quickly visualizing and validating ideas - and we can conduct usability testing to gather feedback from users so that we can refine and iterate on features.
This iterative process helps us identify unnecessary or confusing elements so that we can stay focused on delivering the most valuable features. Listening to feedback from users lets us refine and focus the feature being built, and by listening to the language used to communicate back to us, we can write and tune marketing copy. Stay attentive! There is a ton of useful detail waiting to be uncovered.
A refinement of this idea of iterative development is known as the Minimum Viable Product (MVP) (or its various alternatives). With this approach, instead of aiming for an all-inclusive product all at once, we focus on delivering a minimum viable product that fulfills core user needs. This lean approach allows for faster releases and the continuous gathering of user feedback, which helps to make sure that future development goes in the right direction.
Up until now we’ve empathized with our customers, gathered insights, defined and prioritized problems, generated solutions, prototyped and tested, and along the way we've gathered a lot of user feedback. During the later stages of this process we’ve also been watching usage patterns and monitoring analytics.
Now we use this data to iterate and improve once again on these features, ensuring that our product remains relevant and aligned with user needs as it evolves over time. Think of one development cycle helping to inform the next generation of insights-gathering - the cycle continues!
Any description of a design thinking-based approach for keeping a software product free of feature bloat wouldn’t be complete without a special mention of simplicity.
Always prioritize and pay attention to the user experience, and aim for simplicity and ease of use. With no shortage of ideas and with development resources being comparatively cheap, it’s incredibly easy to get carried away with the thrill of releasing software to users. Remember though, not all software features are equal! Continuously assess the value and impact of each feature being added, and be willing to remove or modify features that don't contribute to the overall user experience.
Use Voyce to apply design thinking principles in your workflow, and mitigate feature bloat by focusing on user needs, iterate based on feedback, and deliver a streamlined product that provides meaningful value to users.