Just adding new features to software products is not enough! Here’s why…
When working with software products over a long time I’ve seen that development teams are pretty much focused on only adding shiny new features. Software products tend to “bloat” overtime with features that are seldom used by the end user.
Although such features provide almost no value externally it comes at a huge cost internally in the form of maintenance costs since the code-base may get unwieldy and complicated to work with.
There are times I have seen where such “no value/low value” features cause poor performance of the product resulting in bad UX externally as well.
I think development teams should spend a reasonable amount of time to discuss product features that are obsolete or even hardly used by end users. After analyzing the trade-offs of removing such features the team can narrow down candidates for removal.
So in addition to all the “agily” meetings that we have today, I’d like to suggest product “strip-down” meetings (no pun intended) that identify “low value” or “no value” features which can be removed from the product. Teams can set aside a reasonable amount of time to remove such features during sprints/iterations. Having a solid test suite will be of immense help for this effort.
This will not only result in an easy to maintain code-base for the development team internally, a simpler product may also provide a better UX to the end-user externally as well!