<!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>Internal Marketplace as a Mechanism for Promoting Software Reuse</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Maria Ripatti</string-name>
          <email>maria.ripatti@insta.fi</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Terhi Kilamo</string-name>
          <email>terhi.kilamo@tut.fi</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Karri-Tuomas Salli</string-name>
          <email>karri-tuomas.salli@insta.fi</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tommi Mikkonen</string-name>
          <email>tommi.mikkonen@tut.fi</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Pervasive Computing, Tampere University of Technology</institution>
          ,
          <addr-line>Korkeakoulunkatu 1, FI-33720 Tampere</addr-line>
          ,
          <country country="FI">Finland</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Insta Defsec Ltd</institution>
          ,
          <addr-line>Sarankulmankatu 20, FI-33901 Tampere</addr-line>
          ,
          <country country="FI">Finland</country>
        </aff>
      </contrib-group>
      <fpage>119</fpage>
      <lpage>133</lpage>
      <abstract>
        <p>Reuse is one of the classic ways to improve productivity in software development. Indeed, bene ting from software components, patterns, and solutions that have been developed in the company potentially leads to savings in all phases of software intensive work. However, putting such an approach to practice is far from being simple. In particular, when considering software companies that specialize in customer-speci c software projects, it is common that similar designs and technology choices are made in parallel without project-crossing knowledge. In such settings, there is a lack of a systematic approach between projects to spread good practices or to eliminate bad ones. In this paper, we propose solving such problems with an information system that acts as a marketplace for promoting software reuse within a project organization, much to the same avor as app stores are used to promote mobile applications. The paper provides insight to the design of our prototype system, as well as contains preliminary views from users in one organization.</p>
      </abstract>
      <kwd-group>
        <kwd>Reuse</kwd>
        <kwd>software projects</kwd>
        <kwd>inner source</kwd>
        <kwd>marketplace</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The business climate today is highly competitive for software companies. This
leads to a constant need to look for improvement in development processes in
order to maintain the competitive edge. One way to achieve this is reuse {
bene ting from software components, patterns, and solutions priorly developed
in the company [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The bene ts reuse promises are improvement in software
quality, performance, and reliability [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ]. When implemented well, code reuse
can shorten development time, which in turn shortens time to market. It can also
help to avoid redundant work in projects, such as analysis phase, thus improving
project productivity and reducing development e ort [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Reuse can also make
software maintenance easier as reuse uni es coding practices between projects
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. All in all, the promise of reuse is undisputable.
      </p>
      <p>Project organizations still largely carry out their businesses in accordance to
the old subcontracting model, where the customer de nes requirements and the
project organization is optimized to perform technical activities needed for
requirements elicitation, design, and nal implementation. In this context, where
each project is treated as a separate entity due to e.g. con dentiality reasons,
spreading word regarding successful technology choices gets overly complex. Each
technology selection will strictly remain in the project silo instead, and
experiences regarding using them are only reused once the developers are allocated to
future projects. Therefore, the developers are constantly faced with a challenge
of nding suitable solutions to current programming tasks. This includes being
constantly on the lookout for components to reuse as such are not readily visible
across project barriers. Furthermore, and even more counterproductively, they
end up assiduously solving the same problems over again. The challenge posed
hence lies in making the components suitable for reuse visible for the developers
across projects and over silo borders.</p>
      <p>
        Commonly used approaches to implement reuse include product-line
architectures [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and inner source [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], both of which introduce established reuse
processes. Product-line architectures provide a common platform for a typically
domain-speci c family of products. Each product is then developed by adding
the product speci c features on top of the shared platform. Inner source,
sometimes coined internal open source or corporate source [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], sometimes progressive
open source [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], in turn refers to the practise of utilizing suitable open source
software development practices and tools within an organization. In general, both
approaches build on creating software repositories [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] as a method to give
developers access to reusable components. Still, nding suitable components from a
large and typically constantly growing repository is challenging [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
Additionally the lack of decent documentation makes it di cult to evaluate how suitable
a component is for reuse. Furthermore, the amount of work required for using
it as a part of another piece of software can be hard to estimate. In this paper,
we propose an approach to turn this around much like modern online
distribution platforms for mobile applications, colloquially app stores, have simpli ed
installing compelling applications that were impossible to nd before they were
made available through an information system that also syndicates users' views.
      </p>
      <p>
        To summarize, while the idea of reuse is decades old and di erent approaches
to classifying and representing reusable components in repositories have been
around for a while [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ] reuse is still not a uent everyday practice at software
companies. This paper addresses the question: how should reuse be implemented
within a project organization in order to avoid the problems and challenges
repositories bring forth?
      </p>
      <p>The paper presents a pilot study on establishing a company internal
component marketplace that engages the ideology of app stores in order to highlight
tting components to developers for reuse across in-house projects. The paper
further presents the systematic reuse process alongside and applied to the
marketplace. As our prototype, such a marketplace was implemented and taken into
use in a mid-sized Finnish software company developing a range of software
products mainly to large customers that require con dentiality, high quality and
predictable delivery. In short, the paper contributes:
{ the concept of using a component marketplace to promote reuse in an
organization,
{ an industry scale prototype implementation, and
{ the reusability process adopted in conjunction with the marketplace.
Here, we address the very rst views to deploying using such a system in a
project organization. A detailed case study regarding the experiences will be
reported later in a separate article, where the resulting increase in reuse will be
evaluated.</p>
      <p>The rest of the paper is structured as follows. Section 2 presents background
on the business environment of the project organization, the challenges of
software reuse and discusses the requirements in the adoption of systematic reuse.
Section 3 describes the concept of a marketplace as a mechanism for supporting
component reuse. Section 4 describes how requirements were gathered from the
target organization. Section 5 presents the implemented marketplace solution
and discusses how it takes the main challenges into account. Section 6 describes
the reuse process adopted at the company. Section 7 discusses the key ndings of
the study. Finally, Section 8 concludes the paper with future research directions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>
        The bene ts of reuse { better quality and reliability, shorter development time,
and uni ed practices { are so overwhelming, that it almost beyond
understanding why so many organizations overlook this opportunity. Then again, when
considered from the viewpoint of a software company, it is usually self-evident
that a lot of e ort must be invested in creating practices needed for systematic
reuse. The enticing prospect of reuse can and often is hindered by the
intimidating challenges in making it a successful ongoing process { if the processes
of reuse are not planned and well-established the organization may end up in
a situation where a better and faster solution would be to just implement each
project on its own. One must be able to identify the reusable components as
reuse is not a t-for-all solution [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The components intended for reuse need
to be generalized and documented properly [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Reuse itself requires nding
the suitable components, getting to know them and making possible changes to
them [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. As a concept, reuse has been around from the sixties [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] { and we are
still struggling with it.
2.1
      </p>
      <sec id="sec-2-1">
        <title>Towards Software Reuse</title>
        <p>
          The best results can be obtained with systematic reuse [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. This also requires
that the challenges and problems that reuse entails are identi ed in the project
organization. Even the best laid plans do not alone guarantee a successful
adoption of reuse. It needs to be encouraged as a best practice on an organizational
level as well as supported by development practices and infrastructure.
        </p>
        <p>
          Jacobson et al.[
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] propose four key processes that are needed in successful
reuse (see Figure 1).
{ Create: The creation process focuses on identifying the needs of and provide
for the projects. The development activities included comprise of numerous
issues, such as domain planning, development and installation environment,
selecting components that are to be reused, and tools that are used for reuse.
In many cases, these need a lot of attention in order to introduce generic
solutions instead of context-speci c ones.
{ Support: Supporting reuse includes numerous human-related issues. For
instance, components to be reused need to be classi ed and packaged in order
to support reuse; distributing them needs common practices; and
instructions need to be in place to make all this happen in accordance to plans.
The focus is on supporting the needed processes and maintaining the
component collection.
{ Manage: Leadership functions { including planning, funding, resourcing,
prioritization, coordination, as well as many other leadership related
functions { is often the main obstacle when considering reuse. Balancing between
the long-term investment in coordinated reuse and everyday needs of going
forward with projects is di cult. Moreover, many of the present agile
software engineering approaches, such as Scrum [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] and Kanban [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], are often
understood as focusing on satisfying customer requirements. They do not
emphasize issues that will help the company in the long run.
{ Reuse: Actual reuse takes place by selecting the components to be reused,
which is a key characteristic for aiming at systematic reuse. Furthermore,
systematic reuse entails customizing and combining the reusable components.
        </p>
        <p>
          Putting all this to practice in a software organization requires management
attention, organizational engineering, and hence time that is away from
productive work. That in turn is the key ingredient for creating revenues in
software companies who specialize in delivering software through customer-speci c
projects. There, it is common that problems hindering reuse emerge. These
include considering only reusing individual components, overly generic designs,
lacking scalability, legacy technology, and reuse only for reuse itself [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. Boehm
further emphasizes the danger of "the eld of dreams": believing that builiding
a software repository of reusable components su ces to make reuse an everyday
practice.
        </p>
        <p>
          The open source software movement [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] with its development ideology and
community-driven approach [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] has risen as a force to be reckoned with when it
comes to developing high-quality software products. The concept of a software
forge [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] {an repository of projects that can be browsed and that provides
the necessary development tools { comes from open source. In its wake, inner
source { internal open source { has been utilized by companies to adopt the
methodology and ideas of open source software development within a software
company. As such, inner source on the development infrastructure level provides
a plausible platform for reuse [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. Inner source does however also pose its set of
challenges [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] such as identifying the suitable components and selecting them
based on evaluation, poor documentation, as well as integration and architecture
issues. These as such are identi able further as the challenges of reuse itself.
However, the factors supporting adoption of inner source [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] { the idea of a seed
software product, practices and tools, and organizational and the
communitydriven approach can also be seen as key factors in supporting reuse.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Context</title>
        <p>The company where the experiment for the proposed approach is carried out,
Insta DefSec Ltd1, is a Finnish software organization that specializes in
developing a range of company software projects. The company delivers software mainly
to large customers that require con dentiality, high quality, and predictable
delivery time. Their potential customer-base includes such governmental
organizations as the defence forces and other organizations that often require a certain
level of independence of other projects in their execution largely due to their
condential nature. In fact, each project may have di erent requirements on levels
of con dentiality, which may have an e ect on the personnel that may
participate in them. Despite these limitations and project boundaries systematic,
wellorganized reuse is bene cial also to the customers. The major programs a ect the</p>
        <sec id="sec-2-2-1">
          <title>1 http://www.insta.fi/en/</title>
          <p>company line structure, for example, due to the requirements and project
restrictions. Each program usually holds and manages its own resources, including
software engineers working on the project as well as almost all the technical project
data. Consequently, information regarding successful or unsuccessful technology
decisions or design practices is mostly distributed across project borders through
word-of-mouth from developer to developer, which though e ective in breaking
the project silo in separate cases lacks in organization wide governance. For
instance, if in one project, the developers perform an analysis regarding the
automated mapping from an object-oriented design to a relational database, the
results of the analysis would be shareable across all in-house projects.
Moreover, experiences from using a certain application-independent component { be
it developed internally or a third party system { could be bene cial across the
projects, as many of them deal with similar technologies simply due to domain
requirements. Without a systematic approach the bene ts, such as joint
maintenance of common technology, are not gained. The company is constantly looking
for ways to improve its ways of working. Thus working towards new methods
for systematic reuse and organization wide dissemination of best practices is one
area where new directions are tried out.
3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Marketplace as a mechanism for reuse</title>
      <p>Despite the promise of reuse code repositories do not seem to provide a su cient
solution to reuse. Instead they seem to bring issues similar to the challenges of
reuse itself to the organization. Aiming for systematic reuse is not hence solved
by setting up a code repository for the reusable components.</p>
      <p>The goal of a company internal marketplace is to combine the idea of a
digital online distribution platforms known from mobile apps such as Google Play2
and Apple's App Store3 { colloquially coined simply app stores { to these
traditional reuse approaches in order to meet the challenges of reuse. This should
increase the amount of reuse within the company and help to lower the
boundaries between projects. The marketplace aims to solve the challenge of projects
acting as knowledge silos. It is used to market components developed with the
organization as well as third party components across projects thus taking them
into use more straightforward for the projects. The app store features of the
marketplace should further make locating of reusable component easier. The
marketplace supports making a decision on reuse with clear descriptions on the
available components as well as developer comments and instructions of use for
them { all features familiar from the app store markets.</p>
      <p>
        Philosophically, the marketplace incorporates the feel of inner source. It
promotes transparency, acts as the "seed" product, and attracts contributions across
the organization [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. A component shared through the marketplace can, in
addition to the components developed in the projects, also be a third party solution
that could be valuable for several in-house projects. For example, in addition to
      </p>
      <sec id="sec-3-1">
        <title>2 https://play.google.com/store/apps</title>
      </sec>
      <sec id="sec-3-2">
        <title>3 https://itunes.apple.com/app/apple-store/</title>
        <p>traditional software components or applications, the reusable component can be
a reference implementation, a description of, or a design decision on, an
architecture. A software library is shareable through the marketplace as well.</p>
        <p>The marketplace can also decrease the e ort required to reuse the components
by o ering the components directly in the marketplace. For reuse, the most
important factor is that the marketplace o ers an easy way to locate, add and
describe components. Hence the components can physically be located outside
the marketplace in a separate repository or online as long as the location is
explicitly shareable through the marketplace. As summary, in order to meet the
needs of systematic, successful reuse the marketplace should:
{ act as an internal information channel for the organization
{ make adopting reusable components more uent
{ guide development of reusable components
{ guide technology choices made in projects
{ motivate development toward reusable components
{ help keeping track of available reusable components.</p>
        <p>
          The marketplace aims to motivate further development of reusable component
by enabling advertizing them through the marketplace [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. Through the
marketplace the projects can also give component recommendations. Finally, open
source components are also shareable at the marketplace which allows the
organization to better keep track of them. This way they can also ensure that the
licence terms are known by the developers.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Requirements Gathering</title>
      <p>Requirements elicitation was done in two stages to ensure that the internal
marketplace would address the true needs of the developers. In the rst stage,
a rough list of requirements were gathered in meetings among a small group
of people taking part in the marketplace research. Based on the requirements
recognized there and from the conversations in the meetings, an inquiry about
software reuse was created. The purpose of the inquiry was to identify more
speci c requirements.</p>
      <p>In the second stage of the requirements gathering, the drafted inquiry was
sent to the project managers, architects and developers of the company. The
results con rmed that the requirements identi ed by the marketplace research
team were accurate. The results also de ned the priority of the requirements.</p>
      <p>According to the results, the marketplace should enable sharing the following
information regarding reusable components:
{ basic information such as the name and version of components and other
useful details
{ the technical and functional descriptions,
{ the locations and contact persons of the components, and
{ prices and licences, if a 3rd party component was included.</p>
      <p>Respondents also considered important that jar packages can be uploaded
directly through the marketplace. If a direct marketplace access is not possible,
it should o er direct links to repository locations of the components and any
other important les such as license conditions, version history or bug databases.
Respondents also pointed out that the marketplace can not be implemented
as a cloud service because of the information security reasons. The gathered
requirements were used in evaluating the possible marketplace implementations.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Marketplace implementation</title>
      <p>The goal of deploying the marketplace within the organization is for it to support
the systematic reuse process. Hence, the implementation should simplify the
reuse process as a whole, including all the activities listed above, but with a
particular focus on managing the reuse. Additional focus is put on promoting
people to reuse both software assets as well as research work invested in selecting
best possible third party libraries as these were the missing link between ad-hoc
reuse and systematic reuse processes. As a solution, an information system was
introduced. The system would gather all the necessary data into one, similarly
to the digital online distribution platforms | app stores | that have become
common in the mobile domain and in online stores.</p>
      <p>Since several app and web stores exist already, we next performed an
evaluation regarding the already existing implementations. As a result of the
evaluation process, OpenCart4 was chosen to the pilot use of the internal marketplace.
OpenCart is free open source e-commerce platform for online merchants.
OpenCart provides a professional and reliable foundation from which to build a
successful online store. This foundation appeals to a wide variety of users; ranging
from seasoned web developers looking for a user-friendly interface to use, to shop
owners just launching their business online for the rst time. OpenCart has an
extensive amount of features that gives you a strong hold over the customization
of your store.</p>
      <p>OpenCart o ers an e-commerce platform and admin portal. The e-commerce
contains for example a front page, category pages, product pages, a shopping
cart, a product comparison and the search of products. The front page is used
for advertising products. Products are introduced at the category, product and
comparison pages and they can be bought via shopping cart. The admin
portal provides user and product management functionalities, reports about the
e-commerce usage and the customization of the store.</p>
      <p>Transforming OpenCart to a software component marketplace required some
changes to both the e-commerce and the admin portal. OpenCart is primarily
intended to selling tangible products and by default it does not support sharing
electrical content. Due to this the product descriptions and the language used
required customization. Furthermore, the e-commerce and admin portal
contained many features and pages that were unnecessary for the marketplace. For</p>
      <sec id="sec-5-1">
        <title>4 http://www.opencart.com</title>
        <p>example, the shopping cart, payment features and unused reports were removed.
These changes were made directly to the source code.</p>
        <p>As shown in Figure 2, the OpenCart design is based on the MVC design
pattern and the language speci c information is separated from the other
content. The OpenCart directory structure contains separate folders for e-commerce
and admin model, view, controller and language les. E-commerce les can be
found in the catalog folder and admin les in the admin folder. The OpenCart
installation contains also other folders such as system and image folder that
contains classes that are used by both the e-commerce and admin portals. The
structure of the OpenCart and the developing process of modules are extensively
explained in the OpenCart documentation, which makes creating new modules
and customization existing modules easy.</p>
        <p>The marketplace is used for promoting reusable components but actual
components are located in the reuse repository because of the absence of electronical
sharing. The modi ed marketplace (Figure 3) contains the front page that is
used for advertising reusable software components. The content of this page can
be customized using the admin portal. In the front page given in the gure, there
is a welcoming message, links to two components, as well as references to some
topic areas according to which components can be grouped.</p>
        <p>Within the system, software components are divided into di erent categories.
The marketplace o ers also an option to search for components. OpenCart's
modi ed product pages are used for introducing components and they contain
the essential information about the component deployment and usage. For
instance, the description of a component might contain the following information:
{ the version of the component,
{ the purpose of the component,
{ a contact person,
{ a technical and functional description,
{ a maintenance information,
{ requirements and constraints,
{ the location of the component, and
{ licence term.</p>
        <p>In addition, the OpenCart system supports user reviews, which in the
marketplace are used for evaluating components.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Reuse process and marketplace</title>
      <p>
        A company wide inner source approach was adopted for collecting and selecting
the reusable components. The marketplace acts as one component in this process.
The goal of the process is the systematic management of the reuse processes and
the ability to control and guide the development of reusable components. This in
turn aims to guide the selection of the technologies used. The process supports
both the viewpoint of design-by-reuse as well as design-for-reuse [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] with the
marketplace as a tool for advocating both views. The goal of the process is to
identify and evaluate reusable components [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
      </p>
      <p>Figure 4 illustrates the complete reuse process within the organization with
relation to the marketplace. The starting point of the component reuse is the
company's internal developer community as they develop the product
components. It is the job of the community, including the projects and product
management, to initially recognize the reusable components and o er them to the
Product Decision Board (PDB) for the evaluation process. As the company's business
domain covers governmental organizations, some of the software components are
tightly coupled with customer project-speci cs and as such project-sensitive with
a requirement of con dentiality. Naturally such components cannot be used in
favor of other projects without major modi cations.</p>
      <p>The role of the PDB is to evaluate the components o ered by the developer
community and prepare a decision proposal in the form of Product Decision
Card (PDC). PDB evaluates and selects the suitable components for the reuse
and instructs the developer community to make the necessary changes to the
component for reuse. After the decision on reusability the selected project will
be responsible in modifying and documenting the component for reuse.</p>
      <p>When the component modi cation for reuse is completed, it is added to the
marketplace together with a description of the component. The description
includes a list of features, an architecture description and user guide instructions.
The administrator of the marketplace is responsible for making the component
accessible for the company's developer community. That means adding the
component and its artifacts to the marketplace. The customer projects can utilize
the available components distributed through the marketplace. The developers
can share reuse experiences with the chat tools o ered there. The administrator
ensures the reliability and correctness of the components. From the maintenance
point of view the selected project takes care of the source code and the con
guration of a component.</p>
      <p>In the following, we evaluate PDB's reusability decision from three di erent
perspectives { business, technology, and customers and stakeholders.</p>
      <p>B usiness. From a business perspective the decision to productize is based
on the evaluation of business model, product strategy, distribution strategy and
revenue model. In addition, PDB takes into account the productization costs
required for changes and possible 3rd party license costs.</p>
      <p>T echnology. From the technological point of view, the evaluation includes
the technical feasibility and quality assessment of the code and the software
architecture. The decision to productize a component also needs assessing the
maturity and the component life cycle as packaging a component too early can
cause the need for multiple updates which in turn will cause extra work and costs.
On the other hand later updates can further lead to software incompatibility
issues.</p>
      <p>C ustomers and stakeholders. Overall, the customer projects and
stakeholders' point of view the component must be utilized in a number of projects and
component deployment process must be faster and cheaper than the creation of
a new solution from the scratch.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Discussion</title>
      <p>Next, we will revisit the four key processes proposed by Jacobson et al. and then
we will discuss the marketplace in relation to them.</p>
      <p>Create: The role of the process is to provide for the reusers. The
marketplace aims to act as a clearer, easier and more accessible platform to share and</p>
      <p>nd reusable components. The development of the marketplace has been largely
a part of the creation process. The needs of the developers were taken into
account prior and during development. The requirements of the marketplace were
prioritized based on developer needs.</p>
      <p>Support: The role of the support process is to maintain the reusable
components, the repository and the reuse processes. The marketplace plays a key role
here. The role of the component descriptions is seen pivotal by the developers.
Good, clear descriptions support reuse and make selection of components easier
while the opposite can be quite harmful for the support process.</p>
      <p>Manage: With the marketplace, the reuse process depicted in Section 5
provides the management for the other processes. The developer's see the role
of the PDB and making correct reusability decidions as key.</p>
      <p>Reuse: To what extent the marketplace increases reuse remains to be seen
at this point. Based on the feedback, the developers see the marketplace as a
welcome addition. The response of the developers will be discussed next.</p>
      <p>Since the marketplace has just been deployed at the target organization, as
a part of the prototype deployment an interview of the key stakeholders was
conducted. Next, we discuss the feasibility of the marketplace through the
estimation interview. In it three representatives of the intended target community
{ a software developer, a software architect and a project manager { was
interviewed in an open interview session. The results indicated that there is a call
for the marketplace at the organization. All interviewees seem to have identical
opinions on the marketplace and how it should be developed further.</p>
      <p>The content of the marketplace was seen as a key element in attracting the
developer community. The content needs to be attractive to the developers and
it needs to be maintained continuously. The interviews also highlighted that
the use of the marketplace needs to be smooth in order to enable updating the
component descriptions as well as to support creation of new components. In
order to get content, all developers should be able to add components to the
marketplace.</p>
      <p>The active role of the developers was also valued. As many developers
currently look for and reuse same components available online, a recommendation
feature for them is seen bene cial. The feature would avoid a similar approach to
be applied to the marketplace as it would relieve projects from doing the
searching themselves in every case. Furthermore, an egalitarian approach to adding
content to the marketplace was emphasized.</p>
      <p>The reusable components themselves were seen as a valuable asset. The
developers should however be able to estimate based on the description alone if
utilizing the component is worth it or not. Hence the description should include
the most restrictive knowledge that can a ect the developers decision. Such are,
for example, the licence, the price of the component and the process needed to
reuse. Especially the ability the evaluate 3rd party components was seen as an
asset, as it could save time and money. The fact that the components can include
best practises and architectural decisions was valued.</p>
    </sec>
    <sec id="sec-8">
      <title>Conclusions</title>
      <p>At this point, the marketplace has been successfully deployed in the target
organization. The developers comments on the marketplace and the organizational
needs for it support the claim that it can make reuse more systematic and help
to put in place and maintain the four key reuse processes. As future research
we also wish that we have enough industrial data to validate these claims with
experience data.</p>
      <p>Presently, the marketplace is meant for company use only but as a future
direction the possibility to share the marketplace with organization partners is
considered. This lends way to future research on reuse over organization
boundaries. The initial results are encouraging and the marketplace has shown its
potential in enabling and supporting reuse over project silos to entire
ecosystems that comprise of several companies. The next research steps are to collect
data on the amount of reuse as well as evaluate what kind of reuse gets done; so
far, the initial experiences look promising.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Krueger</surname>
          </string-name>
          , \
          <source>Software reuse," ACM Computing Surveys (CSUR)</source>
          , vol.
          <volume>24</volume>
          , no.
          <issue>2</issue>
          , pp.
          <volume>131</volume>
          {
          <issue>183</issue>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>D.</given-names>
            <surname>Bauer</surname>
          </string-name>
          , \
          <article-title>A reusable parts center [technical forum]," IBM Systems Journal</article-title>
          , vol.
          <volume>32</volume>
          , no.
          <issue>4</issue>
          , pp.
          <volume>620</volume>
          {
          <issue>624</issue>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. W. C. Lim, \
          <article-title>E ects of reuse on quality, productivity, and economics," Software, IEEE</article-title>
          , vol.
          <volume>11</volume>
          , no.
          <issue>5</issue>
          , pp.
          <volume>23</volume>
          {
          <issue>30</issue>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>J.</given-names>
            <surname>Sametinger</surname>
          </string-name>
          , Software Engineering with Reusable Components. Springer,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>K.</given-names>
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Bockle, and</article-title>
          <string-name>
            <given-names>F. V. D.</given-names>
            <surname>Linden</surname>
          </string-name>
          , \Software product line engineering," Springer, vol.
          <volume>10</volume>
          , pp.
          <volume>3</volume>
          {
          <issue>540</issue>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J.</given-names>
            <surname>Wesselius</surname>
          </string-name>
          , \
          <article-title>The bazaar inside the cathedral: Business models for internal markets," Software, IEEE</article-title>
          , vol.
          <volume>25</volume>
          , no.
          <issue>3</issue>
          , pp.
          <volume>60</volume>
          {
          <issue>66</issue>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>R.</given-names>
            <surname>Goldman</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. P.</given-names>
            <surname>Gabriel</surname>
          </string-name>
          , Innovation Happens Elsewhere:
          <article-title>Open source as business strategy</article-title>
          . Morgan Kaufmann,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>J.</given-names>
            <surname>Dinkelacker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. K.</given-names>
            <surname>Garg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Miller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and D.</given-names>
            <surname>Nelson</surname>
          </string-name>
          , \
          <article-title>Progressive open source,"</article-title>
          <source>in Proceedings of the 24th International Conference on Software Engineering. ACM</source>
          ,
          <year>2002</year>
          , pp.
          <volume>177</volume>
          {
          <fpage>184</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>B.</given-names>
            <surname>Boehm</surname>
          </string-name>
          , \
          <article-title>Managing software productivity and reuse,"</article-title>
          <source>Computer</source>
          , vol.
          <volume>32</volume>
          , no.
          <issue>9</issue>
          , pp.
          <volume>111</volume>
          {
          <issue>113</issue>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. R. Prieto-Diaz and
          <string-name>
            <given-names>P.</given-names>
            <surname>Freeman</surname>
          </string-name>
          , \
          <article-title>Classifying software for reusability," Software, IEEE</article-title>
          , vol.
          <volume>4</volume>
          , no.
          <issue>1</issue>
          , pp.
          <volume>6</volume>
          {
          <issue>16</issue>
          ,
          <string-name>
            <surname>Jan</surname>
          </string-name>
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>W. B. Frakes</surname>
            and
            <given-names>T. P.</given-names>
          </string-name>
          <string-name>
            <surname>Pole</surname>
          </string-name>
          , \
          <article-title>An empirical study of representation methods for reusable software components," Software Engineering, IEEE Transactions on</article-title>
          , vol.
          <volume>20</volume>
          , no.
          <issue>8</issue>
          , pp.
          <volume>617</volume>
          {
          <issue>630</issue>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Allen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Ockerbloom</surname>
          </string-name>
          , \
          <article-title>Architectural mismatch: Why reuse is so hard," Software, IEEE</article-title>
          , vol.
          <volume>12</volume>
          , no.
          <issue>6</issue>
          , pp.
          <volume>17</volume>
          {
          <issue>26</issue>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. I. Jacobson,
          <string-name>
            <given-names>M.</given-names>
            <surname>Griss</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Jonsson</surname>
          </string-name>
          , Software Reuse:
          <article-title>Architecture, process and organization for business success</article-title>
          .
          <source>Addison-Wesley</source>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>M. D. McIlroy</surname>
          </string-name>
          , \
          <article-title>Mass produced software components," in Software Engineering: Report of a conference sponsored by the NATO Science Committee</article-title>
          . NATO,
          <year>1968</year>
          , pp.
          <volume>79</volume>
          {
          <fpage>87</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>W. B. Frakes</surname>
            and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Isoda</surname>
          </string-name>
          , \
          <article-title>Success factors of systematic reuse," Software, IEEE</article-title>
          , vol.
          <volume>11</volume>
          , no.
          <issue>5</issue>
          , pp.
          <volume>14</volume>
          {
          <issue>19</issue>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. K. Schwaber, \
          <article-title>Scrum development process,"</article-title>
          <source>in Business Object Design and Implementation</source>
          . Springer,
          <year>1997</year>
          , pp.
          <volume>117</volume>
          {
          <fpage>134</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>D. J. Anderson</surname>
          </string-name>
          ,
          <article-title>Agile Management for Software Engineering: Applying the theory of constraints for business results</article-title>
          .
          <source>Prentice Hall Professional</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. \Open source initiative," http://opensource.org/, last visited:
          <year>September 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. E. Raymond, \
          <article-title>The cathedral and the bazaar,"</article-title>
          <source>Knowledge, Technology &amp; Policy</source>
          , vol.
          <volume>12</volume>
          , no.
          <issue>3</issue>
          , pp.
          <volume>23</volume>
          {
          <issue>49</issue>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>D.</given-names>
            <surname>Riehle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ellenberger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Menahem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Mikhailovski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Natchetoi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Naveh</surname>
          </string-name>
          , and T. Odenwald, \
          <article-title>Open collaboration within corporations using software forges," Software, IEEE</article-title>
          , vol.
          <volume>26</volume>
          , no.
          <issue>2</issue>
          , pp.
          <volume>52</volume>
          {
          <issue>58</issue>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>K.-J. Stol</surname>
            ,
            <given-names>M. A.</given-names>
          </string-name>
          <string-name>
            <surname>Babar</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Avgeriou</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Fitzgerald</surname>
          </string-name>
          , \
          <article-title>A comparative study of challenges in integrating open source software and inner source software,"</article-title>
          <source>Information and Software Technology</source>
          , vol.
          <volume>53</volume>
          , no.
          <issue>12</issue>
          , pp.
          <volume>1319</volume>
          {
          <issue>1336</issue>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>K.-J. Stol</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Avgeriou</surname>
            ,
            <given-names>M. A.</given-names>
          </string-name>
          <string-name>
            <surname>Babar</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Lucas</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Fitzgerald</surname>
          </string-name>
          , \
          <article-title>Key factors for adopting inner source,"</article-title>
          <source>ACM Transactions on Software Engineering and Methodology (TOSEM)</source>
          , vol.
          <volume>23</volume>
          , no.
          <issue>2</issue>
          , p.
          <fpage>18</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>D.</given-names>
            <surname>Ansorge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Bergner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Deifel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Hawlitzky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Maier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Paech</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rausch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sihling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Thurner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Vogel</surname>
          </string-name>
          , \
          <article-title>Managing componentware development { software reuse and the v-modell process," in Advanced Information Systems Engineering</article-title>
          , ser. Lecture Notes in Computer Science,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jarke</surname>
          </string-name>
          and
          <string-name>
            <surname>A</surname>
          </string-name>
          . Oberweis, Eds. Springer Berlin Heidelberg,
          <year>1999</year>
          , vol.
          <volume>1626</volume>
          , pp.
          <volume>134</volume>
          {
          <fpage>148</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>S.</given-names>
            <surname>Castano</surname>
          </string-name>
          and
          <string-name>
            <given-names>V. D.</given-names>
            <surname>Antonellis</surname>
          </string-name>
          , \
          <article-title>Reusing process speci cations,"</article-title>
          <source>in Proceedings of the IFIP WG8. 1 Working Conference on Information System Development Process. North-Holland Publishing Co., 1993</source>
          , pp.
          <volume>267</volume>
          {
          <fpage>283</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>A. B. Al-Badareen</surname>
            ,
            <given-names>M. H.</given-names>
          </string-name>
          <string-name>
            <surname>Selamat</surname>
            ,
            <given-names>M. A.</given-names>
          </string-name>
          <string-name>
            <surname>Jabar</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Din</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Turaev</surname>
          </string-name>
          , \
          <article-title>Reusable software component life cycle,"</article-title>
          <source>International Journal of Computers</source>
          , vol.
          <volume>5</volume>
          , no.
          <issue>2</issue>
          , pp.
          <volume>191</volume>
          {
          <issue>199</issue>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>