What is a Feature?

A qualitative study of features in industrial software product lines.

What is a Feature?

The notion of features is commonly used to describe the functional and non-functional characteristics of a software system. In software product line engineering, features often become the prime entities of software reuse and are used to distinguish the individual products of a product line. Properly decomposing a product line into features, and correctly using features in all engineering phases, is core to the immediate and long-term success of such a system. Although many definitions of the term feature exist -- not mentioning all the different feature modeling notations -- many companies are uncertain when to introduce a feature and how to realize it.

Empirical Study

We conduct an empirical study of actual features engineered in industry. Our goals are: (i) to improve the empirical understanding of the notion of features, (ii) to present concrete examples of features in all their different facets, (iii) to analyze successful and failed practices, and (iv) to develop a prediction model for features. The study is based on semi-structured interviews with a range of roles involved with software engineering, such as developers, architects, domain experts, team leads, or marketing experts.

Benefit

If you participate, your involvement will contribute to the understanding of feature-oriented software engineering in practice -- to build better tools and methodologies. The interview will not only allow your organization to reflect on the existing practices, but also to learn about other companies’ practices and experiences.

Interviews

The interview will take around 45-60 minutes and comprise questions about a selection of 3-4 features. We will ask you to select one 'typical', one 'good', one 'bad', and one 'outlier' feature that you were involved with or familiar with. It is up to you to decide which features are considered as typical/good/bad/outlier. A typical feature would be a very average feature, neither especially good, bad, or in any sense an outlier. A good feature could be one that is well-received by stakeholders, popular with customers, commercially successful, or on-time, on-budget, easily reusable, or has a low defect count. A bad feature could be one that is problematic, troublesome, difficult to develop, confusing, buggy, or which destroyed user confidence, showed unexpected behavior. Finally, an outlier feature is a rather untypical feature, but which is still considered and managed as a feature. In the main part of the interview, we have around 20 short questions about different 'facets' of each feature. For instance, we are interested why the feature was introduced, how it was defined, realized or tested, how it evolved, and how its relationship to other features is. We are especially interested in the experiences and the rationales behind any decisions taken. The interview will be recorded, and later transcribed and analyzed. The recordings and transcriptions will remain absolutely confidential. Before any publication of the results, we will get back to you for a confirmation.

Results

First results from three companies are available in a paper published at the Software Product Line Conference (SPLC) 2015 (see the first literature reference below). The planned extensions to this work will be a feature prediction model and a feature description language.

Team Members

 

Related Former Publications

This work follows-up on our previous studies, specifically: