A new research paper discusses ways to assess the most and least useful features of a given product, hoping to help programmers trim the fat and respond to demand in new releases.

Companies that work with market-driven software-intensive products are always looking to streamline their offerings, by removing unhelpful or redundant features and creating those which provide the best experience for the user.

At the moment there are no over-arching methods of identifying what to cut and what to keep – but a paper published by the Free University of Bozen-Bolzano in Italy hopes to change that through automated approaches and some new tools.

A common complaint about today's software-intensive products is that they are overloaded with features, some say this has led to an uncontrollable growth in size and complexity for some companies.

To demonstrate ways of automatically identifying and weeding-out extraneous features, the researchers conducted a case study with Google, BBC and Youtube applications.

Participants were given identical copies of the three pages and asked to manually identify all the ‘features’ of the sites, as defined by the researchers.

The same features were then rooted-out by an automatic tool developed for the purpose.

Both the humans and the software were able to identify a complete list of ‘features’ that could be found in the visible aspects of the page.

However, the feature-finding tool went on to identify a large range of invisible features as well, ranking them by the same standards as the one that users found.

“We found out that our tool is also able to identify hidden features in addition to visible ones, which could not be identified manually by users,” the resulting paper says.

“Some of these features appeared to be with no significant value, that is, they might be candidates to be removed from the system. Therefore, we see this method as a first step towards an automatic feature reduction process.”

Moving on from the promising early findings, the team plans to expand their efforts to create ways to autonomously monitor, assess, change and relocate features based on users’ habits and feedback.

The complete report is accessible here.