What Is A Feature 2015
What Is A Feature 2015
Thorsten Berger1 , Daniela Lettner2 , Julia Rubin3 , Paul Grünbacher2 , Adeline Silva4 ,
Martin Becker4 , Marsha Chechik5 , Krzysztof Czarnecki1
1
University of Waterloo, 2 Johannes Kepler University Linz, CD Lab MEVSS, 3 Massachusetts Institute of Technology,
4
Fraunhofer IESE, 5 University of Toronto
manager ManualConfiguration, UserGuidance the organizational structure of each company, which were
C developer 3 LanguageTranslation,
ProductionOverview, DataManager, then used to guide the definition of the facets. The resulting
HeatUpOptimization set of facets, along with their description and clarifying
Opel
PowerUpFastFuncs
F team lead 8.5 Wobbler, FieldBus, ResetFix, professional background, (ii) how long they have been work-
BoardSupportPackage
ing in the current profession, (iii) how long they have been
1 2
participant (interviewee) experience with the product line in years involved with the product line, (iv) their role in the product
line, and (v) the number of features they were involved with.
a feature being classified as typical, outlier, good, or bad We then asked each interviewee to describe three to four
(Table 4); (iii) a range of values for different facets of concrete features, providing guidance in the selection process. We
features engineered in industry (Sec. 6); and (iv) a set of core asked for one typical, one outlier, one good, and one bad
observations from the cross-case analysis that have practical feature. Our goal was to be as open as possible, leaving
impact on engineering features for SPLs. it to our interviewees’ judgment which criteria to use for
We proceed by outlining our research methodology in Sec. 2. selecting a feature for each type. Yet, to provide some
We then introduce the subject companies and their product guidance, we gave some hints, for instance, that a good
lines in Sec. 3. We address RQ1 in Sec. 4 and 5, where we feature could be one that is well-received and popular with
present features and their classification rationales. In Sec. 6, customers, commercially successful, or on time, on budget,
we address RQ2 with the cross-case analysis of the feature easily reusable, or has a low defect count. For a bad feature,
facets. Finally, we discuss threats to validity in Sec. 7 and we said it could be one that is problematic, troublesome,
related work in Sec. 8, and conclude in Sec. 9. difficult to develop, confusing, buggy, or one that destroyed
user confidence, damaged the brand, or showed unexpected
2. RESEARCH METHODOLOGY behavior. An outlier is a feature whose properties are rarely
observed in other features. Finally, a typical feature is neither
We describe how we selected the companies for our study
especially good nor bad, and not an outlier in any sense.
and present our approach to designing and conducting the
For each feature described by the interviewees, we asked
interviews and analyzing the results.
about the reasons why they considered it to be typical, good,
2.1 Company Selection bad, or outlier. We then asked to discuss the feature from the
perspective of each facet. When interviewees had difficulties
To conduct our study, we focused on companies that (i) de-
answering our questions, we used a “by example” strategy,
velop SPLs; (ii) explicitly record, track, and manage features—
providing possible answers to our facet questions, as described
both common and variable ones; and (iii) maintain an active
in Table 2. In the case of surprising responses, we dug deeper
collaboration with at least one of the authors of this paper.
by asking specific questions, trying to elicit the underlying
Our selection criteria ensured that we consider “meaningful”
reasons for such responses.
examples that are of general interest to the SPL community,
and that allowed us to reliably interpret the findings based 2.3 Data Collection and Analysis
on our understanding of the companies’ product lines and
Each of the conducted interviews was fully recorded, with
their organizational context.
the obtained recordings lasting between 68 and 117 min-
We selected the three companies Keba, Opel, and Dan-
utes. In addition to these, core answers to our facet-related
foss from the domains of industrial automation, automotive,
questions were summarized by the interviewer during the
and power electronics. For each company, we selected up to
interview itself. These summaries were further cross-checked
three interviewees, covering a range of roles, such as product
against the recording by an author who did not participate in
manager, architect, and developer. For Opel, we interviewed
the corresponding interview. Such reviews were used to verify
a single person. Overall, we collected data about 23 fea-
the summaries and to augment them when needed. The ob-
tures: twelve from Keba, three from Opel, and eight from
tained information was used to describe the company-specific
Danfoss. Table 1 summarizes our interviewees, their roles,
features in terms of their facets in Sec. 6.
their experience with the product line, and the features they
Moreover, we created full transcripts for parts of the inter-
described.
views that discuss the rationale behind considering a feature
2.2 Interview Design as good, bad, typical, or outlier. We applied open coding [2]
to identify the main concepts related to this classification,
Feature Facets. The goal of our study was to collect
which are discussed and exemplified in Sec. 4 and 5.
examples of features developed in industrial practice, and
to outline the reasons for specific features being considered
good, bad, typical, or outliers. To gain insights into these 3. SUBJECT COMPANIES
questions, we conducted a set of semi-structured interviews We now provide background information about our subject
with employees of the studied companies. companies and the product lines they develop.
We structured our interviews around feature facets—quali-
ties of features that we aimed at exploring, such as lifecycle 3.1 Keba: Industrial-Automation Provider
purpose and binding time. These facets were initially defined Keba AG is a medium-scale company producing injection
Table 2: Variety of feature facets elicited in interviews
facet question examples
Rationale Why does the feature exist? Business reasons (e.g., customer request, market demand), regulatory needs (e.g., export
restriction, country codes), aspects of the technical environment (e.g., platform, OS, library,
installation environment) or social aspects (e.g., usage context, user needs)
Level At what organizational level does the feature exist? Customer-facing features (e.g., those managed by product managers) or technical features
(e.g., logical and physical architecture, or implementation-level features)
Nature What is the nature of the feature? Primarily a unit of functionality (e.g., to characterize system capabilities, behavior, or data),
a unit of variability (e.g., an optional functionality) or a configuration/calibration parameter
Scope What is the scope of the feature? Local to one component of a system or cross-cutting (i.e., scattered across architectural
components)
Architectural What is the architectural responsibility of the feature? Addresses user-interface requirements, encapsulates some application logic, or
responsibility infrastructure-level tasks
Lifecycle Does the feature have a purpose for the lifecycle of a Testing, debugging, build, optimization, packaging, deployment, simulation, or monitoring
system?
Definition and approval How has the feature been defined and approved? Feature elicitation workshops with customers, systematic studies of similar system, or
market analyses
Representation Which artifacts/tools are used to define the feature? Feature models, configuration tools, code-level configuration options, product maps, or
spreadsheets
Use In what ways is the feature used in the organization? Defining a product line’s scope, explaining a system to a customer, changing behavior at
runtime, or supporting software composition
Dependencies What are the dependencies to other features? Dependencies between features (e.g., require or exclude), dependencies across levels (e.g.,
to logical and physical components)
Implementation and Which languages and technologies have been used to Programming languages used, build-time integration of libraries, feature deployment in app
deployment implement and deploy the feature? stores
Inclusion/Exclusion Which mechanisms are used for including or Configuration tool, configuration file, user preferences at runtime
excluding the feature?
Binding time At what stage is the feature included into the product? Compile, build, load, or run time
Responsibility Which people, roles, or teams are in charge of the Application engineers developing customer-specific features, platform engineers
feature? developing core functionality
Position in hierarchy What are the features above (if any) and the features Concrete feature names or not applicable
below (if any)?
Testing Which methods and tools are used for testing the Automated component test suites or manual system integration tests
feature?
Evolution How did the feature change over time? Changed frequently (e.g., daily, weekly or monthly), mostly stable, rolled out, or retired
Metrics Which metrics are used to characterize the feature? Number of products in which a feature exists, number of feature instances per product
Quality and performance Which non-functional characteristics are important Reaction time, power consumption, or efficiency of a feature implementation
for the feature?
molding machines, energy appliances, and robotics solutions cific I/O-ports; by modifying parameters to influence program
used for industrial automation [22]. Around 700 people are behavior; by adapting configuration files to change system
employed at the head office in the company’s home coun- behavior and performance as well as by pre-processing code
try Austria, while a branch in China exists for the Chinese to integrate specific product variants during compilation.
market. Keba’s industrial-automation solutions include hard- Organizational Structure. Dedicated teams maintain
ware, software, and tools. We focus on the software product the automation platform and the domain-solution platforms.
lines for injection-molding and robotics solutions. Keba ships Project teams then work with customers on individual prod-
about 7,000 injection-molding solutions to 25 customers per ucts. There are also external developers contributing code—
year. Four resellers are available for the injection-molding for example, domain engineers working for OEMs, and appli-
branch. Furthermore, Keba sells about 1,800 robotics so- cation engineers working for resellers. This has a significant
lutions to about 30 customers per year and works with six impact on Keba’s development process, challenging platform
resellers related to the robotics branch. evolution in particular. Domain-solution engineers regularly
Architecture. Layered technological platforms exist in review and prioritize features for upcoming releases.
diverse variants to meet requirements in different market
segments. Keba’s automation platform is organized as a
product line, and different variants are derived to develop
3.2 Opel: Car Manufacturer
domain solutions for injection molding, robotics, and energy Opel is a German subsidiary of GM—a large car manu-
automation. The platform for injection-molding machines facturer operating across 157 countries, comprising 202,000
provides an application framework, while the robotics plat- employees, and having sold 9 million vehicles in 2011.
form uses a DSL-based approach for programming robots. Opel has software product lines aligned with the mechani-
The different layers and their interfaces strongly influence the cal product lines and the engineering culture of cars. The
development process: multiple system platforms are derived product lines discussed in this paper are part of an initiative
from a system platform architecture to support multiple at GM called Next Generation Tools (NGT) [14], created
runtime systems. Domain solutions are built on top of each to handle the complexity introduced as a by-product of new
system platform, by exploiting the interfaces of the platform. technologies, such as hybrid and alternative-fuel engines.
Products are defined by adding new functionality on top of SPLE plays a major role in the NGT and is implemented
the domain solutions using cloning. Products are fine-tuned following the Second Generation PLE (2GPLE) approach, in
using configuration parameters during installation and setup. which features are treated as first-class citizens. Vehicles can
Keba uses a wide range of variability mechanisms to sup- now be described in terms of a bill-of-features, which facili-
port product derivation: Platform and product variants are tates the communication between business, marketing, and
created by exploiting interfaces to hook in new functionality; engineering units. The tool used for modeling the features
by adding, exchanging or reloading modules; by defining spe- is BigLever GEARS. The development process is organized
in five different levels covering feature model, requirements,
logical architecture, technical architecture, and deployment. tended to other artifacts, such as requirements and test
Development activities correspond to the “V-Model”: The cases [30]—enabling the derivation of variants of these arti-
process starts with defining requirements and architecture facts by configuration and improving traceability.
for the future vehicle, and at the bottom of the V-Model Organizational Structure. A dedicated team involving
is the creation of hardware and software components that software architects from all development sites supports and
correspond to the requirements specification. maintains the platform. Application-engineering teams con-
Architecture. Opel uses a system-of-systems architec- tribute new functionality of the drives. However, there is
ture managed as a hierarchical product line of product lines. no real split between application and domain engineering.
It covers domains, subsystems, functions, functional elements, The platform team is also responsible for the feature-model
and components (being aggregations of functional elements). development, and each feature is assigned to a feature owner.
The software components are as general as possible to allow From the product perspective, there are product managers
flexibility with respect to variations. The manufacturing who determine which features will go into a product. When
process is driven by the selection of features and part num- there is a change request for a particular feature, the product
bers of physical car components that determine which ECUs manager has to contact the feature owner.
(electronic control units) are in the car. The ECUs contain
the feature implementation, and their presence determines 4. TYPICAL AND OUTLIER FEATURES
whether a feature is available. The software components are
We now introduce concrete examples of the features we
specifically configured for every produced vehicle. In this
studied, beginning with typical and atypical (outlier) features.
calibration process, the Vehicle Option Codes—parameters
We discuss the rationales behind our interviewees’ classifica-
determining the startup of optional software components
tion, complementing them with quotations. Table 3 shows
installed by ECUs in the car—are saved to a flash database.
all features with their ID and the respective classification-
Organizational Structure. There are different teams,
rationale codes. These codes—indicated by special for-
including individual teams for each product line; they are
matting in the following descriptions—are further explained
referred to as a body of knowledge—the teams have special-
in Table 4.
ized knowledge about the instantiation of their product line.
There is also the concept of a feature owner, referring to the 4.1 What is a Typical Feature?
main technical contact person in charge of a feature. The
Most interviewees argued that typical features represent
feature owner also models the feature in GEARS.
core functionality of the domain and are, thus, a prime prereq-
uisite for a company’s business. The feature Danfoss.Wobbler
3.3 Danfoss: Component Producer is an example: It was not explicitly requested by a customer,
Danfoss is a large producer of electronic and mechanical but is regarded essential in the textile industry domain as it
components for industrial and consumer applications. It has allows frequency converters to operate properly without pro-
23,000 employees globally, distributed across 56 factories in ducing waves. Another feature providing core functionality
18 countries. We focus on Danfoss Drives, a subdivision is Keba.ProfiNetSlave, implementing inter-machine communi-
producing frequency converters (drives), which are used in a cation based on the Industrial Ethernet standard Profinet.
wide range of applications, such as for HVAC or for winding Other typical features are either generally demanded by
machines in the textile industry. Consequently, the drive the market or requested by a specific customer. For instance,
firmware has a high degree of variability, as the motors the feature Opel.LaneKeeping satisfies a very common mar-
to be controlled vary significantly. While the variability ket demand expressed nowadays by car buyers. Customer
had initially been handled using a clone&own approach [12], requests are also considered as common examples, such
Danfoss later adopted an SPLE approach by migrating the as expressed by interviewee E: A typical feature is one re-
cloned products into an integrated platform [16]. quested by a customer, a new motor control for example. It’s
Architecture. Danfoss has multiple product lines, each a functional one. He refers to Danfoss.Torque, which extends
realized with a typical embedded-platform architecture and existing motor-control functionality.
a codebase of a few million lines of C/C++ code. Our focus, Keba.LanguageTranslation is another example of a typical
the frequency-converter product line, consists of a platform, feature, as it was realized following a management decision
which realizes 14 main products, complemented with addi- (internal standard) to offer certain system localizations by
tional repositories of 30 extensions (“sub-products”). The default to support customers in specific regions. It was also
platform’s variability is realized using the C/C++ preproces- marked as typical since it represents ubiquitous functional-
sor by referencing static features in conditional-compilation ity affecting not only the EasyNet control-station program
directives (e.g., #IFDEF); by generating build files; and by for which it was initially conceived, but now almost all parts
using dynamic parameters that influence the run-time of a of the product line.
concrete product.
Features are defined in a feature model and mapped to 4.2 What is an Outlier Feature?
source files using the commercial tool pure::variants from Not surprisingly, there is less agreement in what constitutes
pure::systems. Upon creating a configuration (i.e., a selection an outlier feature, with almost everyone giving different
of features), pure::variants generates the build files and the reasons. Neither did we observe any overlap in the rationales
set of parameters belonging to the product-specific configura- between classifying a feature as typical or as an outlier.
tion. Not all parameters are present in all products, and the For instance, the feature Keba.SilentMode enables instal-
configuration of these parameters (e.g., limits and default lations without user interaction. It is realized as a hidden
values) varies considerably across products. command-line option of the setup program and only used
Initially, only variability in source code was managed. Fol- internally for testing; it does not provide a core functionality
lowing positive experience, variability management was ex- for customers (deployment).
Table 3: Features and their classification rationales
company feature ID feature description classification rationale
Keba LINMovement linear movement command of a robot domain
Keba ProfiNetSlave implementation of the PROFINET standard for the fieldbus communication stack domain, market demand
typical
Keba LanguageTranslation translation of the EasyNet control-station program into several languages ubiquitous, market demand, internal
standard
Opel LaneKeeping driver assistance to keep the lane, including active steering domain, market demand
Danfoss Torque enables high starting-torque for permanent-magnet machines customer request
Danfoss Wobbler smooths the movement of electric motors (to avoid waves) in the textile industry domain
Keba SilentMode non-interactive (“silent”) installation procedure deployment
Keba UserGuidance user guidance for device configuration placeholder, usability
outlier
Keba HeatUpOptimization optimizes heat-up procedures of multiple machines by distributing power peaks optimization, startup
Danfoss PowerUpFastFuncs moves the execution of some functions from the flash drive to the RAM optimization, build
Danfoss BoardSupportPackage new Hardware Abstraction Layer (HAL) to improve board support evolvability, maintainability
Keba Oscilloscope software oscilloscope for recording signals error-free
Keba Wizard wizard-based configuration support for the initial robot setup popular with customers
Keba ProductionOverview historical overview on the production process (operation modes and “shots”) popular with customers, popular
good
with developers
Opel ParkAssist automated steering in parking situation well modularized
Danfoss CascadeController enables control of multi-drive (pump) setup to manage pressure or level well implemented, well modularized
Danfoss FieldBus enables the fieldbus communication stack for frequency converters distinct functionality, well
modularized, thoroughly tested
Keba Euromap enables the Euromap protocol support in the fieldbus communication stack test challenges, frequent changes
Keba ManualConfiguration manual configuration of EncoderBox market demand, rushed development,
customer complaints
bad
Another interesting example is the feature Keba.UserGui- 5. GOOD AND BAD FEATURES
dance, which serves as a placeholder for product managers We also studied features perceived as good or as bad by
to plan future usability improvements regarding device- our interviewees. Similar to the discussion above, we now
configuration support. Specifically, users requested better introduce examples of such features, describe the underlying
dependency resolution and choice propagation in the con- classification rationales, and provide illustrative quotations.
figurator to catch misconfigurations early, which otherwise
could only be discovered at system startup. Our interviewee 5.1 What is a Good Feature?
also classified this as a bad feature since it is too vague (ex-
plained shortly in Sec. 5.2) and needs refinement. B: We In two cases, our interviewees mentioned customer satis-
didn’t really know how to improve it. That’s why we are using faction (popular with customers) as their prime rationale
it as a placeholder for projects where one needs to improve for considering a feature as good. For instance, the feature
something. [...] Basically, it’s an accumulative feature. Keba.Wizard allows performing the initial robot setup and
Two of the outlier features—Keba.HeatUpOptimization and installation within a few minutes by avoiding error-prone
Danfoss.PowerUpFastFuncs—were only introduced for the manual configuration. Keba.ProductionOverview provides
optimization of non-functional aspects as explained by an monitoring capabilities for injection molding machines, in-
interviewee: E: Outliers are technical features for tuning and cluding an overview of operation modes and the history of
tweaking performance. It’s not really a feature from the drive production sequences. In particular, customers like the pos-
perspective, but we can configure a drive to be faster or slower. sibility to inspect variables during system operation. The
We can tweak the product to indirectly fulfill the customer feature is also highly valued by Keba developers who use it
requirements. Furthermore, these two outliers only have a for diagnoses (popular with developers).
specific lifecycle purpose—they control the startup or the Features also need to provide a distinct functionality
build process of the system. For instance, Danfoss.PowerUp- to the product line. On the other hand, ambiguous features
FastFuncs improves system performance by moving functions not meeting this criterion are considered as bad features
from flash to RAM using a dedicated compiler macro. (explained shortly in Sec. 5.2). Recall the outlier feature
Finally, Danfoss introduced the mandatory feature Board- Keba.UserGuidance, which was only vaguely understood by
SupportPackage, a more intelligent hardware abstraction layer customers and the management.
(HAL), to reduce the number of variants. Third-party board Features have also been rated as good if they are perceived
vendors urge Danfoss to update the boards by increasing the as well implemented and error-free. For instance, the
price for old boards. The more robust abstractions provided feature Keba.Oscilloscope provides signal charts and two-
by this feature account for improved maintainability and dimensional plots for monitoring and diagnosing robotics
evolvability to quickly support new boards. This feature is solutions. According to our interviewee A: it just always
not visible to the customer and only exists at the architecture worked. General statements about the implementation aspect
and development level. However, it needed to be approved further emphasize the absence of surprising feature interac-
by the product management and other engineering teams tions and adherence to architectural rules: E: A good feature
to verify that it does not negatively affect existing business fulfills the requirements, but does not introduce any bugs on
logic. In this light, considering this new HAL as a feature the way or impact existing features of the product line. [...]
makes it a unit of maintenance, which various teams can use It has to follow the architecture rules and the coding style.
for communication and management can use for planning. Features are also considered as good if they are well
modularized, not cross-cutting multiple components. For
Table 4: Expressed feature-classification rationales we will discuss in Sec. 6.2.
Interestingly, the necessity to make a feature optional
rationale description occ.1 (variability) has also led to issues. The feature Keba.Data-
domain core domain functionality 4 Manager supports copying mold and protocol data between an
ubiquitous common feature affecting many assets 1
typical
market demand required to be competitive in the market 4 injection molding machine and a PC, allowing modification of
internal standard management decision for an internal 1 the machine cycle. Due to safety concerns of a key customer,
standard
customer request requested by a specific customer 1 the feature had to be made optional, resulting in high effort.
deployment only supports system deployment 1 We also observed features that originated from defects
placeholder placeholder for future improvements 1 (defect fix). This happened for the feature Danfoss.Reset-
usability improves usability for customers 1
Fix, where a bug fix for a reset functionality of counters
outlier
error-free no or very few defects since inception 1 Finally, both duplicate and superfluous features were re-
well implemented implementation adheres to architecture 1
rules and coding styles ported as bad features. Danfoss reported that the same
distinct funct. graspable concept that is easily understood 1 functionality—for instance, the feature ResetFix from above—
thoroughly tested high confidence in correctness 1
was implemented twice due to a lack of coordination between
rushed development implemented under pressure 2
workaround compromise during implementation 1 the application-engineering teams. Superfluous features are
customer complaints bad feedback from the market 1 those that were developed but never used, effectively wasting
implementation modified frequently 2
bad
frequent changes
highly cross-cutting scattered feature implementation 2 development effort. None of our studied features belongs to
test challenges difficult or laborious to test 1 this category, but Danfoss reported such features: E: The
variability need to make a feature optional 1
defect fix defects that became features 1 worst case scenario is a feature which has been implemented
1
but not used at all. It happens.
number of occurrence of the rationale in interviews