<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Behavior-Driven Development in Product Configuration Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sara Shafiee</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lars Hvam</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Anders Haug</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yves Wautelet</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Mechanical engineering department, Technical University of</institution>
          <country country="DK">Denmark</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>1 Product Configuration Systems (PCS) are increasingly used by companies to automate the performance of the sales and engineering processes. Since the benefits from such projects have huge variations, it is crucial to make the right decisions when scoping and developing PCSs. The development of PCS is influenced by both business interests and technical insights. Developers of PCS face various challenges while working in team, including different stakeholders such as business owners, developers, project managers, and product experts. The more diverse the team is, the more significant are the challenges. This paper suggests that Behavior-driven Development (BDD) may provide configuration teams with a specific structure to express scenarios (and thus constraints) on PCS in natural language. BDD may yield benefits such as a better expression of PCS constraints, more efficient communication of requirements and incorporation of the expressed rules in a software transformation process. In other words, applying BDD may eliminate unnecessary tasks when gathering knowledge, developing, and testing PCS projects. In this paper, we present a novel approach from an ongoing project on how to relate BDD to the development process of PCS while using Scrum-based methods.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        Product Configuration Systems (PCS) are expert systems that can
support and facilitate the sales and engineering processes [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] by
incorporating information about product features, product
structure, production processes, costs and prices [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Thereby,
configurators can support decision-making processes in the sales
and engineering phases of a product [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Configurators enable
companies to develop product alternatives to facilitate sales and
production processes [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. However, the companies that have
managed to implement and utilize configurators also face various
challenges [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Even though advantages of PCS are evident, there are still some
difficulties associated with high costs [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and considerable
chances of failure [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] in their implementation projects. This is
because companies must overcome various challenges to
implement and utilize configurators. For example, the development
of a PCS often requires highly complex technical or commercial
knowledge, which domain experts often have a hard time
communicating to configuration experts [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Furthermore, the
knowledge base that contains this knowledge has to be adapted
continuously because of the changing components and
configuration constraints [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The difficulty of acquiring and
modeling the required technical or commercial knowledge depends
on whether it is available in a clear and formal form [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] which in
turns may be contingent to company size [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], product complexity
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], degree of customization [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], or other factors such as
knowledge management and scoping process [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The challenges to
manage technical and commercial knowledge when implementing
and maintaining a PCS may highly influence PCS costs and
development time, as well as its lasting effectiveness.
      </p>
      <p>
        The complexity in the development of PCSs comes from that it
involves highly complex technical knowledge from domain
experts, [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Hence, Scrum and agile methods attracted
attention in PCS development. The main reasons that can be
mentioned as their ease of use, the constant communication with
the stakeholders and the team and fast development time [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ],
[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. In spite of the potential benefits of Scrum, many
organizations are reluctant to throw their conventional methods
away and jump into agile methods. This to some extent may be
attributed some of the issues experienced with the use of Scrum,
including significant reduction of documentation, insufficient
testing for mission/safety-critical projects, inadequate support for
highly stable projects, only successful with talented individuals
who favor large degrees of freedom, and inappropriate for
largescale projects [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>
        As the discussion above indicates, it is very challenging to
specify a PCS at analysis stage. In Scrum-based development this
is traditionally done using user stories [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. The latter nevertheless
do present some drawbacks because their narrative alone is not
enough to express the constraints related to PCS. This is precisely
where BDD could offers complementary representation abilities
destined to address user stories limitations. Because of the use of
BDD next to user stories narrative, the PCS can be expressed
without any other requirements representation artifact (traditionally
the Product Variant Master is used for this [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]). Other positive
aspects of the use of BDD to further describe user stories are their
expression in (structured) natural language making them easy to
understand by non-technical stakeholders. They thus present
advantages for communication. Finally their dynamic and process
oriented nature can be used in a systematic transformation process
for the configurator design [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. All of these elements bring
potential positive contributions with the use of BDD and needs to
be more formally studied. This paper presents a first attempt
towards such a research.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2 LITERATURE STUDY</title>
    </sec>
    <sec id="sec-3">
      <title>2.1 Agile and Scrum</title>
      <p>
        Scrum is an agile software development methodology. The
Agile Manifesto outlines the values and principles that should be
supported by the various agile processes applied in software
development. Agile principles emphasize customer satisfaction,
change and collaboration between domain experts and developers
[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Rubin [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] highlighted that with an agile approach, the team
starts by creating a product backlog, which is a prioritized list of
the features and other capabilities that need to be developed.
Guided by the product backlog, team members address the most
important or highest priority items first; priority is based on various
factors, but delivered business value is most often the first priority.
Scrum is an agile approach for developing innovative products and
services [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <p>
        Scrum facilitates cross-team coordination and collaboration
[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Vlietland et al. (2016) determined that Scrum improves
coordination through additional events, such as interteam sprint
planning meetings, interteam daily Scrums, interteam product
refinements and interteam sprint reviews. A Scrum development
life cycle normally consists of short iterations of two to four weeks,
an approach that enables swift feedback from software users and
related stakeholders regarding the developed solution [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
      </p>
    </sec>
    <sec id="sec-4">
      <title>2.2 Behavior-driven Development</title>
      <p>
        In the movement of agile development, Test-Driven Development
(TDD) has been around for a long time and can be traced back to
eXtreme Programming practices developed in the late 1990s [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
In particular, TDD employs so-called acceptance tests as the
starting point for the development process to address some of the
challenges related to Scrum. Following [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], these TDD relies on
two simple principles:
· Don’t write any code until you’ve written a failing test that
demonstrates why you need this code.
· Refactor regularly to avoid duplication and keep the code
quality high.
      </p>
      <p>
        Behavior Driven Development (BDD) has been proposed as a
result of the problems that arose with TDD when applying agile
software practices [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. It should be noticed that the language used
for describing the tests, i.e. class names and operation names, plays
an important role both for writing test cases and for finding bugs in
case of a failed test. Inspired by [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], for this purpose BDD uses
natural language as a ubiquitous communication mean to describe
the acceptance tests by means of scenarios.
      </p>
      <p>
        The cornerstone of TDD is the idea of writing a unit test before
writing the corresponding code. However, BDD is much more than
ensuring that every user story has a corresponding set of unit tests;
BDD is also about writing specifications, as opposed to tests. In
BDD, as an agile software development technique, acceptance tests
are written in natural language in order to ensure a common
understanding between all members of the project [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
Consequently, as the first step, the sentences are mapped to actual
source code [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ].
      </p>
      <p>
        The shift from TDD to BDD is subtle but significant. Instead of
thinking in terms of verification of a unit of code, the focus is on
specifying how that code should behave, i.e., what it should do
[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. In order to be sure that of building code that matters, there is
a need for specifications that describe what the code should do and
how to relate it directly to the business requirements.
      </p>
      <p>
        Figure 1 shows an example of the BDD flow as it is employed
in a specific tool [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
      </p>
      <p>
        In BDD, as compared to TDD, the task is to write a specification of
system behavior that is precise enough for it to be executed as code
[
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. More specifically, the whole point of BDD is to ensure that
the real business objectives of stakeholders are met by the software
we deliver. If stakeholders are not involved, if discussions are not
taking place, BDD is not going to work. BDD yields benefits
across many important areas such as: (1) Building the right thing,
(2) Reducing the risks, (3) Evolving the design [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ].
      </p>
      <p>
        The first Phase in BDD is to understand the business goals and
defining features [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. Vision statement templates make it possible
to have a well-defined set of business goals. For a good product
vision statement, Moore at al. [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] propose the following contents
of a template:
· For (Who will benefit from this product?)
· Who (What do they need?)
· The (What sort of thing are you proposing?)
· That (What makes it so cool?)
· Unlike (What are you competing against?)
· Our product (Why customer prefer your solution?)
Secondly, the features have to be illustrated in natural language
to execute the specifications. Consequently, the scenario has the
structure [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]:
· Given [context, initial conditions]
· When [event occurs]
· Then [outcome]
      </p>
      <p>
        There are several studies investigating how to automate all these
scenarios such as Cucumber or Jbehave [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
      </p>
    </sec>
    <sec id="sec-5">
      <title>2.3 Requirement artifacts in traditional PCS projects: the Product Variant Master</title>
      <p>
        Generic product structures can be illustrated using the so-called
“product variant master” (PVM) notation, which in many cases has
functioned as a common language between different product,
process and IT experts [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Different definitions of the PVM
notation have been proposed, and among them the definition of the
PVM notation by Haug [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is one of the most extensive and
formalized. A principal example of the PVM technique used to
model a toy car solution space is shown in Figure 2. On the left
side of a PVM model, part-of-structure is shown, and on the right
side, kind-of structure is shown. Classes (typically components and
assemblies) are represented by circles and may include attributes
and constraints (or rules).
      </p>
    </sec>
    <sec id="sec-6">
      <title>PROBLEM STATEMENT</title>
      <p>
        Using Scrum for PCS development introduces both potential
benefits and challenges (as for general IT projects in Table 1). One
of the challenges is the level of knowledge complexity in PCS that
has to be communicated clearly to all Scrum team members in
terms of all attributes, constraints and acceptance criteria. An
additional challenge from Scrum concerns the lack of visualization
(modelling techniques [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]) for product structure. BDD supports
Scrum with vision statements [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] to be able to demonstrate the
product details and even user interface step by step. Another
related challenge is the testing of the PCS as assessing PCSs
implies to assess system features with respect to the many possible
data and system outputs that might occur when a user is interacting
with them. Testing PCSs is an arduous testing activity due to the
wide range of user tasks and the different combinations of testing
data. BDD, as an add-on of user stories, supports the testers with
the detailed defined acceptance criteria.
      </p>
      <p>In short, these concerns bring us three main guidelines for using
Scrum methods in PCS projects:
·
·
·</p>
      <p>Formalize user requirements in such a way to provide
testability in an ever-changing environment;
Guarantee consistency between user requirements and their
representation in multiple artefacts during development
phase; and
Lay on a validation approach that could be reused to ensure
such a consistency for the artefacts along the project.</p>
    </sec>
    <sec id="sec-7">
      <title>4 RESEARCH METHOD</title>
      <p>The aim of this paper is to test the application of BDD in PCS
projects in real case projects and gather the data regarding the BDD
application. Firstly, we review the literature of BDD to gain deeper
understanding of its definition and steps. Secondly, we would
apply the findings from literature regarding BDD to the Scrum
management in PCS. The authors’ ultimate goal is to outline what
the contribution of BDD to PCS can be and discuss its importance
in promoting the collaboration and communication of knowledge
within the organization.</p>
      <p>Based on the mentioned challenges in PCS projects, BDD can
be an effective solution to improve the definitions of different
features and testing the codes in PCS projects next to the user
stories. Hence, we posit the following three propositions:
Proposition 1: (expressiveness) BDD allows expressing all of
the necessary constraints required for documenting a
Configurator using Scenarios.</p>
      <p>Proposition 2: (performance) BDD represents an effective
approach for communicating the product specifications when
implementing PCS as a replacement for PVM.</p>
      <p>Proposition 3: (acceptance) BDD represents an effective and
practical approach (requirements artifacts comparison) for unit
testing of the implemented features in development and testing
phases of PCS projects.</p>
      <p>
        We use a qualitative exploratory design based on multiple data
sources: requirements artifacts, workshops, interviews and
participant observation [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]. The study is ongoing in one case
company using Scrum method for developing PCS for more than 4
years. Workshops are conducted to train the team for BDD to be
implemented as part of the Scrum. Finally, feedback meetings are
held as semi-structured interviews to collect knowledge about the
team’s satisfaction with BDD. Table 1 summarizes some of the
details of the case projects.
      </p>
    </sec>
    <sec id="sec-8">
      <title>5 OUTLOOK</title>
      <p>It is yet an open question, how much BDD can contribute in the
development phase of PCS projects. As PCS projects own their
specific challenges, there is a need for further studies to test BDD
influence specifically for PCS projects. The results from case
studies and interviews will serve to verify or falsify the mentioned
hypothesis when the study is accomplished. The structure of a user
story presented to the case projects is demonstrated bellow:
Concerning the adoption next to user stories narrative as a
replacement for PVM and the vocabulary proposed in the ontology,
an advantage is that requirements and tests in user stories are kept
in a natural and high-level language. Based on Figure 3, the team
should be able to demonstrate the prototype for user interface. The
evaluation criteria of using BDD approach in the team can be
considered as:
1. To support enterprise modeling within agile (user centric)
methods
2. To estimate different scenarios, architecture and integration
3. Correct evaluation of available attributes and constraints for the
product
4. To support the analysis of requirements communication
5. To analyze the compatibility with business modelling
6. To prototype the desired user interface</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Felfernig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hotz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bagley</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Tiihonen</surname>
          </string-name>
          , KnowledgeBased Configuration From Research to Business Cases. Newnes: Morgan Kaufman,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Forza</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Salvador</surname>
          </string-name>
          ,
          <article-title>Product information management for mass customization: connecting customer, front-office and backoffice for fast and efficient customization</article-title>
          . New York: Palgrave Macmillan,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L.</given-names>
            <surname>Hvam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. H.</given-names>
            <surname>Mortensen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Riis</surname>
          </string-name>
          , Product customization. Berlin Heidelberg: Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Felfernig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Reiterer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Reinfrank</surname>
          </string-name>
          , G. Ninaus, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Jeran</surname>
          </string-name>
          , “
          <article-title>Conflict Detection and Diagnosis in Configuration,” in Knowledge-Based Configuration</article-title>
          : From Research to Business Cases,
          <string-name>
            <given-names>A.</given-names>
            <surname>Felfernig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hotz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bagley</surname>
          </string-name>
          , and J. Tiihonen, Eds. Morgan Kaufman,
          <year>2014</year>
          , pp.
          <fpage>73</fpage>
          -
          <lpage>87</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L. L.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , “
          <article-title>Product configuration: a review of the state-of-theart and future research</article-title>
          ,”
          <source>International Journal of Production Research</source>
          , vol.
          <volume>52</volume>
          , no.
          <issue>21</issue>
          , pp.
          <fpage>6381</fpage>
          -
          <lpage>6398</lpage>
          , Aug.
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Haug</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hvam</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N. H.</given-names>
            <surname>Mortensen</surname>
          </string-name>
          , “
          <article-title>Definition and evaluation of product configurator development strategies,” Computers in Industry</article-title>
          , vol.
          <volume>63</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>471</fpage>
          -
          <lpage>481</lpage>
          , Jun.
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Shafiee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kristjansdottir</surname>
          </string-name>
          , and L. Hvam, “
          <article-title>Business cases for product configuration systems,” in 7th international conference on mass customization and</article-title>
          personalization in Central Europe,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Shafiee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kristjansdottir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hvam</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Forza</surname>
          </string-name>
          , “
          <article-title>How to scope configuration projects and manage the knowledge they require</article-title>
          ,
          <source>” Journal of Knowledge Management</source>
          , vol.
          <volume>22</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>982</fpage>
          -
          <lpage>1014</lpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Felfernig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. E.</given-names>
            <surname>Friedrich</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Jannach</surname>
          </string-name>
          , “
          <article-title>UML as domain specific language for the construction of knowledge-based configuration systems</article-title>
          ,”
          <source>International Journal of Software Engineering and Knowledge Engineering</source>
          , vol.
          <volume>10</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>449</fpage>
          -
          <lpage>469</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>S.</given-names>
            <surname>Shafiee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hvam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Haug</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dam</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Kristjansdottir</surname>
          </string-name>
          , “
          <article-title>The documentation of product configuration systems: A framework and an IT solution</article-title>
          ,” Advanced Engineering Informatics, vol.
          <volume>32</volume>
          , pp.
          <fpage>163</fpage>
          -
          <lpage>175</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Haug</surname>
          </string-name>
          , “
          <article-title>The illusion of tacit knowledge as the great problem in the development of product configurators,” Artificial Intelligence for Engineering Design, Analysis and Manufacturing</article-title>
          , vol.
          <volume>26</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>37</lpage>
          , Dec.
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>C.</given-names>
            <surname>Forza</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Salvador</surname>
          </string-name>
          , “
          <article-title>Product configuration and inter-firm coordination: An innovative solution from a small manufacturing enterprise,” Computers in Industry</article-title>
          , vol.
          <volume>49</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>37</fpage>
          -
          <lpage>46</lpage>
          , Sep.
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Myrodia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kristjansdottir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Shafiee</surname>
          </string-name>
          , and L. Hvam, “
          <article-title>Product configuration system and its impact on product's life cycle complexity</article-title>
          ,” in
          <source>2016 IEEE International Conference on Industrial Engineering and Engineering Management (IEEM)</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>670</fpage>
          -
          <lpage>674</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>E.</given-names>
            <surname>Sandrin</surname>
          </string-name>
          , “
          <article-title>An empirical study of the external environmental factors influencing the degree of product customization An Empirical Study of the External Environmental Factors Influencing the Degree of Product Customization,” no</article-title>
          .
          <source>December</source>
          <year>2016</year>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          , “Agile Documentation, Anyone?,” IEEE software, vol.
          <volume>26</volume>
          , no.
          <issue>6</issue>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ambler</surname>
          </string-name>
          ,
          <article-title>Agile modeling: effective practices for extreme programming and the unified process</article-title>
          . John Wiley &amp; Sons,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Cho</surname>
          </string-name>
          , “
          <article-title>A Hybrid Software Development Method for LargeScale Projects: Rational Unified Process with Scrum,” Issues in Information Systems</article-title>
          , vol.
          <volume>10</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>340</fpage>
          -
          <lpage>348</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wautelet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Heng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kolp</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Mirbel</surname>
          </string-name>
          , “
          <article-title>Unifying and extending user story models</article-title>
          ,
          <source>” in International Conference on Advanced Information Systems Engineering</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>211</fpage>
          -
          <lpage>225</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wautelet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Heng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kiv</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Kolp</surname>
          </string-name>
          , “
          <article-title>User-story driven development of multi-agent systems: A process fragment for agile methods</article-title>
          ,
          <source>” Computer Languages, Systems and Structures</source>
          , vol.
          <volume>50</volume>
          , pp.
          <fpage>159</fpage>
          -
          <lpage>176</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>F.</given-names>
            <surname>Paetsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Eberlein</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Maurer</surname>
          </string-name>
          , “
          <article-title>Requirements engineering and agile software development</article-title>
          ,
          <source>” Proceedings. Twelfth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises</source>
          ,
          <year>2003</year>
          ., pp.
          <fpage>308</fpage>
          -
          <lpage>313</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Rubin</surname>
          </string-name>
          , Essential Scrum:
          <article-title>A practical guide to the most popular Agile process</article-title>
          .
          <source>Addison-Wesley</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>K.</given-names>
            <surname>Vlaanderen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Jansen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Brinkkemper</surname>
          </string-name>
          , and E. Jaspers, “
          <article-title>The agile requirements refinery: Applying SCRUM principles to software product management</article-title>
          ,
          <source>” Information and Software Technology</source>
          , vol.
          <volume>53</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>58</fpage>
          -
          <lpage>70</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>J.</given-names>
            <surname>Vlietland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. Van</given-names>
            <surname>Solingen</surname>
          </string-name>
          ,
          <string-name>
            <surname>and H. Van Vliet</surname>
          </string-name>
          , “
          <article-title>Aligning codependent Scrum teams to enable fast business value delivery: A governance framework and set of intervention actions</article-title>
          ,
          <source>” Journal of Systems and Software</source>
          , vol.
          <volume>113</volume>
          , pp.
          <fpage>418</fpage>
          -
          <lpage>429</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>K.</given-names>
            <surname>Beck</surname>
          </string-name>
          ,
          <article-title>Test-driven development: by example</article-title>
          .
          <source>Addison-Wesley Professional</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Ferguson</surname>
          </string-name>
          , BDD in Action:
          <article-title>Behavior-driven development for the whole software lifecycle</article-title>
          .
          <source>Manning</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>D.</given-names>
            <surname>North</surname>
          </string-name>
          , “Behavior Modification:
          <article-title>The evolution of behaviordriven development,” Better Software</article-title>
          , vol.
          <volume>8</volume>
          , no.
          <issue>3</issue>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>E.</given-names>
            <surname>Evans</surname>
          </string-name>
          ,
          <string-name>
            <surname>Domain-Driven</surname>
            <given-names>Design</given-names>
          </string-name>
          :
          <article-title>Tackling Complexity in the Heart of Software</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>M.</given-names>
            <surname>Soeken</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Wille</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Drechsler</surname>
          </string-name>
          , “
          <article-title>Assisted behavior driven development using natural language processing</article-title>
          ,” in
          <source>International Conference on Modelling Techniques and Tools for Computer Performance Evaluation</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nelson-Smith</surname>
          </string-name>
          ,
          <article-title>Test-Driven Infrastructure with Chef: Bring Behavior-Driven Development to Infrastructure as Code.</article-title>
          <string-name>
            <surname>O'Reilly Media</surname>
          </string-name>
          , Inc.,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Moore</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>McKenna</surname>
          </string-name>
          ,
          <article-title>Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers</article-title>
          .
          <source>HarperBusiness</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <surname>A. H. Van de Ven</surname>
          </string-name>
          , “
          <article-title>Nothing is quite so practical as a good theory,” Academy of Management Review</article-title>
          , vol.
          <volume>14</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>486</fpage>
          -
          <lpage>489</lpage>
          ,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <surname>D. M. McCutcheon</surname>
            and
            <given-names>J. R.</given-names>
          </string-name>
          <string-name>
            <surname>Meredith</surname>
          </string-name>
          , “
          <article-title>Conducting case study research in operations management</article-title>
          ,
          <source>” Journal of Operations Management</source>
          , vol.
          <volume>11</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>239</fpage>
          -
          <lpage>256</lpage>
          , Sep.
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>