This lab is quite diverse. It is comprised of a group of really smart people from all over the world, each with different backgrounds, working in a friendly and welcoming environment. Being part of it has been such an enriching experience.
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.
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.
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.
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.
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.
- Martin Becker (Fraunhofer IESE)
- Thorsten Berger (Univ. of Gothenburg, Chalmers Univ. of Technology, University of Waterloo)
- Marsha Chechik (University of Toronto)
- Krzysztof Czarnecki (University of Waterloo)
- Paul Grünbacher (University of Linz)
- Daniela Rabiser (University of Linz)
- Julia Rubin (Massachusetts Institute of Technology)
- Adeline Schäfer (Fraunhofer IESE)
Related Former Publications
This work follows-up on our previous studies, specifically:
- "What is a Feature? A Qualitative Study of Features in Industrial Software Product Lines", 19th International Software Product Line Conference (SPLC), 2015.
- "A survey of variability modeling in industrial practice", 7th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS), 2013.
- "Three Cases of Feature-Based Variability Modeling in Industry", ACM/IEEE 17th International Conference on Model Driven Engineering Languages and Systems (MODELS), 2014.