<!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>Evolution of Software Product Development in Startup Companies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mercy Njima</string-name>
          <email>mercy.njima@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Serge Demeyer</string-name>
          <email>serge.demeyer@uantwerpen.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Mathematics and Computer Science, University of Antwerp</institution>
          ,
          <addr-line>Antwerp</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-This position paper addresses the software engineering practices in startups. The focus of most software engineering research has been on established companies. However, startup technology companies have become important producers of innovative and software intensive products despite the fact that they are under severe time-to-market pressure. Given that software engineering is the core activity in said startups, inadequacies in such practices might be a substantial contributing factor to this pressure to keep up with the software industry competitive needs. Startups build non-traditional business architectures by taking the easy path to find a product-market fit and thus, accumulate large amounts of technical debt. We shed light on the major efforts in the domain and indicate the research directions we plan to explore further.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <sec id="sec-1-1">
        <title>A. Software Engineering in Startups</title>
        <p>
          The vast majority of software development projects today
are small, with few people and a very short development
cycle. These are often developed by young companies with
no organizational history, no legacy code, and severely limited
funding. These startup companies may still be in search of
a business model and as a result, many applications are
initially released in a matter of weeks or months (minimum
viable product), rather than being developed and tested over
years. The associated philosophy of “release early, release
often” means that subsequent releases of those applications
are sometimes made frequently [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. As a result of these
constraints, startups tend to be very informal with their
software engineering processes, focusing on key areas such as
the user experience, product feature requirements, and the
ability to use existing frameworks and libraries. These aspects
are central to lean and agile development methods, and are
not included among the key process areas of the traditional
software engineering capability models.
        </p>
        <p>
          Agile software development has been considered the most
viable process for software startups as they allow teams to
respond to the unpredictability of building software through
incremental, iterative sprints [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. In this context, fast
releases with an iterative and incremental approach shorten
the lead time from idea conception to production with fast
deployment. XP is the most used development process across
startup companies, due to its reduced process costs and low
documentation requirements [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. The Lean Startup method [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ],
has been a common variant of Agile which advocates for
the creation of value to customers and elimination of waste
during the development phase. These methods are preferred
as they enable a faster learning process especially since
there’s generally a lack of written architecture and design
specifications. However, the absence of structure might hinder
important activities, such as sharing knowledge, team
coordination or implementing new features. Therefore, in
preparation for growth, startups must plan for scalable processes
that involve formulating initial architectural strategies from
which they can benefit from reuse of components and shared
architectures across projects to ensure long term evolution
without significant schedule overhead.
        </p>
        <p>This research process aims to answer the question “How
can a startup continuously improve it’s products and still meet
customer requirements?” We hypothesize that the effective
management of technical debt and the application of software
product line engineering best practices would allow a startup
to respond to the evolving needs of the market.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>II. RELATED WORK</title>
      <p>
        Over the past couple of years, the software engineering
community has shown interest in the software development
practices of software startups. Unterkalmsteiner et al. provide
a research agenda that focuses on software engineering in
startups identifying, 70+ research questions in the areas of
supporting startup engineering activities, startup evolution
models and patterns, ecosystems and innovation hubs, human
aspects in software startups, applying startup concepts in
nonstartup environments, and methods and theories for startup
research [7]. Pantiuchina et al. [8], conducted a large survey
of 1,526 software startups and examined the use of five agile
practices, including quality related (regular refactoring and test
first) and speed related (frequent release and agile planning)
in an effort to understand how software startups can better
use agile practices and eventually benefit from them. Klotins,
applied a hybrid research method to design and launch a
large scale study into software engineering aspects of startups
[9]. Giardino et al. identified common software development
startup practices in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] while Paternoster et al. presented a
detailed investigation and collection of all known empirical
software engineering sources related to startups and their
engineering practices [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The following papers provide a general
overview of the research done to investigate development
practices in software startups [10], [11], [12], [13], [14], [15],
[16].
      </p>
      <p>The Lean startup method has also been applied in large
software companies through experimentation in internal startups
as they look for new ways to innovate. Edison et al. conducted
a multiple case study at large software companies to shed light
on this issue and examine how a new product was developed
through the internal startup effort [17], [18].</p>
      <p>We hope to build on the work done by Chicote and
YliHuumo et al. in with regards to technical debt in software
startups [19], [20]. Chicote introduces a technique for
managing technical debt based on Visual Thinking. The technique
addresses the problem of knowing how much debt is in
place and how it is affecting the development cycle. On the
other hand, Yli-Hummo et al. investigated one middle-size
Finnish software company with two independent product lines
to understand the causes and effects of technical debt.</p>
    </sec>
    <sec id="sec-3">
      <title>III. RESEARCH DIRECTIONS</title>
      <sec id="sec-3-1">
        <title>A. Technical Debt in Startups</title>
        <p>
          Startups search for product-market fit by building fast,
testing and iterating until they find a solution. In the process
of releasing a product, the development team knows that it has
released software with flaws that must be fixed [21]. Balancing
the choice of releasing poor-quality software early or
highquality software late is challenging. This leads startups to an
awkward situation where they have to decide what quality
is acceptable and what compromises in the development
process they have to take [20], [22]. This is the basis of
how startups accumulate technical debt. Technical debt is
a metaphor reflecting technical compromises that can yield
short-term benefit but may hurt the long-term maintainability
and evolvability of a software system [23]. Accruing large
amounts of technical debt may make new changes harder
to implement especially when a pivot is triggered [24]. A
pivot is a “structured course correction designed to test a new
fundamental hypothesis about the product, strategy, and engine
of growth” [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. A startup that cannot implement new features
quickly or recover swiftly from a failed project because their
code base has technical debt is not likely to succeed [19].
In our opinion, managing technical debt for software startups
deserves research attention. Meir Lehmann’s second law of
software evolution, Increasing Complexity, states that “As
an evolving program is continually changed, its complexity,
reflecting deteriorating structure, increases unless work is done
to maintain or reduce it ”[
          <xref ref-type="bibr" rid="ref7">25</xref>
          ]. This applies to the startup
context as well.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Software Product Line Engineering for Startups</title>
        <p>
          A software product line is a family of systems that share a
common set of core technical assets, with preplanned
extensions and variations to address the needs of specific customers
or market segments [
          <xref ref-type="bibr" rid="ref8">26</xref>
          ]. Software product lines have achieved
substantial adoption by the software industry. Consequently, a
wide variety of companies have substantially decreased the
cost of software development and maintenance and time to
market and increased the quality of their software products
[
          <xref ref-type="bibr" rid="ref9">27</xref>
          ].
        </p>
        <p>
          Startup software companies usually start with a single idea
and thus with a single product. Over time, if the company is
successful, the product matures and the management sees that
it can use the same idea (or slight variations of it) to develop
a new set of products [
          <xref ref-type="bibr" rid="ref10">28</xref>
          ]. However, during this process most
startups still have scarce financial resources, so they cannot
invest heavily in development. Thus, they must make reuse a
reality.
        </p>
        <p>
          A few stages of startup development can be identified as
startup phase, stabilization phase and growth phase [
          <xref ref-type="bibr" rid="ref11">29</xref>
          ]. In
the startup phase the startup is just finding out ways to
make business. In the stabilization phase, the organization
starts gradually to find its way of working and the amount
of uncertainty decreases. In the growth phase, the startup
goes through a series of changes and the organization needs
to restructure itself to support growth in all areas: business,
personnel, the scope of the product, etc.
        </p>
        <p>
          At this stage the company needs to work on how the
systems can evolve later. When the products evolve, features
need to be added, removed, turned into modules or separate
products [
          <xref ref-type="bibr" rid="ref12">30</xref>
          ]. This requires attention to the architecture and
implementation. Software product lines encourage an
organization to reuse existing assets and capabilities rather than
repeatedly developing them for new systems. Therefore, they
use architectures, designs and implementation techniques that
make features modular and independent so that they are easy
to reuse, remove, turn into modules or separate products.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>IV. CONCLUSION</title>
      <p>Software engineering practice for startups is a rapidly
evolving area of research. A mapping study is within our short
term goals by which we aim to obtain an overview of the body
of knowledge and identify inadequacies in used practices and
proposed remedies.
[7] M. Unterkalmsteiner, P. Abrahamsson, X. Wang, A. Nguyen-Duc,
S. M. A. Shah, S. S. Bajwa, G. H. Baltes, K. Conboy, E. Cullina,
D. Dennehy, H. Edison, C. Ferna´ndez-Sa´nchez, J. Garbajosa,
T. Gorschek, E. Klotins, L. Hokkanen, F. Kon, I. Lunesu, M. Marchesi,
L. Morgan, M. Oivo, C. Selig, P. Seppa¨nen, R. Sweetman, P. Tyrva¨inen,
C. Ungerer, and A. Yag u¨e, “Software startups - A research agenda,”
e-Informatica, vol. 10, no. 1, pp. 89–124, 2016. [Online]. Available:
https://doi.org/10.5277/e-Inf160105
[8] J. Pantiuchina, M. Mondini, D. Khanna, X. Wang, and P. Abrahamsson,
Are Software Startups Applying Agile Practices? The State of the
Practice from a Large Survey. Cham: Springer International Publishing,
2017, pp. 167–183.
[9] E. Klotins, “Using the case survey method to explore engineering
practices in software start-ups,” in 2017 IEEE/ACM 1st International
Workshop on Software Engineeting for Startups (SoftStart), May 2017,
pp. 24–26.
[10] C. Giardino, N. Paternoster, M. Unterkalmsteiner, T. Gorschek, and
P. Abrahamsson, “Software development in startup companies: The
greenfield startup model,” IEEE Transactions on Software Engineering,
vol. 42, no. 6, pp. 585–604, June 2016.
[11] X. Wang, H. Edison, S. S. Bajwa, C. Giardino, and P. Abrahamsson,
Key Challenges in Software Startups Across Life Cycle Stages. Cham:
Springer International Publishing, 2016, pp. 169–182.
[12] S. S. Bajwa, X. Wang, A. N. Duc, R. M. Chanin, R. Prikladnicki,
L. B. Pompermaier, and P. Abrahamsson, “Start-ups must be ready to
pivot,” IEEE Softw., vol. 34, no. 3, pp. 18–22, May 2017. [Online].</p>
      <p>Available: https://doi.org/10.1109/MS.2017.84
[13] E. Klotins, M. Unterkalmsteiner, and T. Gorschek, “Software-intensive
product engineering in start-ups: a taxonomy,” IEEE Software, vol. 0,
no. 0, p. 0, 2017, in Print.
[14] R. Chanin, L. Pompermaier, K. Fraga, A. Sales, and R. Prikladnicki,
“Applying customer development for software requirements in a
startup development program,” in Proceedings of the 1st International
Workshop on Software Engineering for Startups, ser. SoftStart ’17.
Piscataway, NJ, USA: IEEE Press, 2017, pp. 2–5. [Online]. Available:
https://doi.org/10.1109/SoftStart.2017...3
[15] S. S. Bajwa, X. Wang, A. N. Duc, and P. Abrahamsson, How Do
Software Startups Pivot? Empirical Results from a Multiple Case Study.</p>
      <p>Cham: Springer International Publishing, 2016, pp. 169–176.
[16] A. Nguyen-Duc, X. Wang, and P. Abrahamsson, What Influences the
Speed of Prototyping? An Empirical Investigation of Twenty Software
Startups. Cham: Springer International Publishing, 2017, pp. 20–36.
[17] H. Edison, Software Product Innovation Through Startup
Experimentation in Large Companies. Cham: Springer International Publishing,
2016, pp. 751–756.
[18] H. Edison, X. Wang, and P. Abrahamsson, “Product innovation through
internal startup in large software companies: A case study,” in 2016
42th Euromicro Conference on Software Engineering and Advanced
Applications (SEAA), Aug 2016, pp. 128–135.
[19] M. Chicote, “Startups and technical debt: Managing technical debt
with visual thinking,” in Proceedings of the 1st International Workshop
on Software Engineering for Startups, ser. SoftStart ’17. Piscataway,
NJ, USA: IEEE Press, 2017, pp. 10–11. [Online]. Available:
https://doi.org/10.1109/SoftStart.2017...6
[20] J. Yli-Huumo, A. Maglyas, and K. Smolander, The Sources and
Approaches to Management of Technical Debt: A Case Study of Two
Product Lines in a Middle-Size Finnish Software Company. Cham:
Springer International Publishing, 2014, pp. 93–107.
[21] B. Curtis, J. Sappidi, and A. Szynkarski, “Estimating the size,
cost, and types of technical debt,” in Proceedings of the Third
International Workshop on Managing Technical Debt, ser. MTD ’12.
Piscataway, NJ, USA: IEEE Press, 2012, pp. 49–53. [Online]. Available:
http://dl.acm.org/citation.cfm?id=2666036.2666045
[22] H. Terho, S. Suonsyrja¨, and K. Systa¨, The Developers Dilemma: Perfect
Product Development or Fast Business Validation? Cham: Springer
International Publishing, 2016, pp. 571–579.
[23] Z. Li, P. Avgeriou, and P. Liang, “A systematic mapping
study on technical debt and its management,” J. Syst. Softw.,
vol. 101, no. C, pp. 193–220, Mar. 2015. [Online]. Available:
http://dx.doi.org/10.1016/j.jss.2014.12.027
[24] S. S. Bajwa, X. Wang, A. Nguyen Duc, and P. Abrahamsson, ““failures”
to be celebrated: an analysis of major pivots of software startups,”
Empirical Software Engineering, vol. 22, no. 5, pp. 2373–2408, Oct
2017.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>H.</given-names>
            <surname>Erdogmus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sillitti</surname>
          </string-name>
          , and T. Wasserman, “Softstart 2017 workshop summary,” in
          <source>2017 IEEE/ACM 1st International Workshop on Software Engineeting for Startups (SoftStart)</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>1</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>E.</given-names>
            <surname>Klotins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Unterkalmsteiner</surname>
          </string-name>
          , and T. Gorschek, “
          <article-title>Software engineering knowledge areas in startup companies: A mapping study</article-title>
          ,
          <source>” in Software Business, ser. Lecture Notes in Business Information Processing</source>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Fernandes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. J.</given-names>
            <surname>Machado</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          K. Wnuk, Eds. Springer International Publishing,
          <year>2015</year>
          , vol.
          <volume>210</volume>
          , pp.
          <fpage>245</fpage>
          -
          <lpage>257</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>N.</given-names>
            <surname>Paternoster</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Giardino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Unterkalmsteiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Gorschek</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Abrahamsson</surname>
          </string-name>
          , “
          <article-title>Software development in startup companies: A systematic mapping study</article-title>
          ,” vol.
          <volume>56</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>1200</fpage>
          -
          <lpage>1218</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C.</given-names>
            <surname>Giardino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Unterkalmsteiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Paternoster</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Gorschek</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Abrahamsson</surname>
          </string-name>
          , “
          <article-title>What do we know about software development in startups?” IEEE Software</article-title>
          , vol.
          <volume>31</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>28</fpage>
          -
          <lpage>32</lpage>
          ,
          <year>Sept 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>G.</given-names>
            <surname>Coleman and R. O'Connor</surname>
          </string-name>
          , “
          <article-title>Using grounded theory to understand software process improvement: A study of irish software product companies,” Inf</article-title>
          . Softw. Technol., vol.
          <volume>49</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>654</fpage>
          -
          <lpage>667</lpage>
          , Jun.
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>E. Ries,</surname>
          </string-name>
          <article-title>The lean startup : how today's entrepreneurs use continuous innovation to create radically successful businesses</article-title>
          . New York: Crown Business,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [25]
          <string-name>
            <surname>M. M. Lehman</surname>
          </string-name>
          , “Programs, life cycles, and laws of software evolution,
          <source>” Proceedings of the IEEE</source>
          , vol.
          <volume>68</volume>
          , no.
          <issue>9</issue>
          , pp.
          <fpage>1060</fpage>
          -
          <lpage>1076</lpage>
          ,
          <year>Sept 1980</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>Software</given-names>
            <surname>Product</surname>
          </string-name>
          <article-title>Lines: Practices and Patterns</article-title>
          . Boston, MA, USA:
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc.,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bosch</surname>
          </string-name>
          , “
          <article-title>Maturity and evolution in software product lines: Approaches, artefacts</article-title>
          and organization,” in Software Product Lines, Second International Conference, SPLC 2, San Diego, CA, USA,
          <year>August</year>
          19-
          <issue>22</issue>
          ,
          <year>2002</year>
          , Proceedings,
          <year>2002</year>
          , pp.
          <fpage>257</fpage>
          -
          <lpage>271</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>P.</given-names>
            <surname>Knauber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Muthig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Schmid</surname>
          </string-name>
          , and T. Widen, “
          <article-title>Applying product line concepts in small and medium-sized companies</article-title>
          ,
          <source>” IEEE Software</source>
          , vol.
          <volume>17</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>88</fpage>
          -
          <lpage>95</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>V.-P.</given-names>
            <surname>Eloranta</surname>
          </string-name>
          , “
          <article-title>Towards a pattern language for software start-ups,”</article-title>
          <source>in Proceedings of the 19th European Conference on Pattern Languages of Programs</source>
          , ser.
          <source>EuroPLoP '14</source>
          . New York, NY, USA: ACM,
          <year>2014</year>
          , pp.
          <volume>24</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>24</lpage>
          :
          <fpage>11</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>A.</given-names>
            <surname>Dande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.-P.</given-names>
            <surname>Eloranta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.-J.</given-names>
            <surname>Kovalainen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Lehtonen</surname>
          </string-name>
          , M. Leppa¨nen, T. Salmimaa,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sayeed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Vuori</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Rubattel</surname>
          </string-name>
          , W. Weck et al., “
          <article-title>Software startup patterns-an empirical study,” Tampereen teknillinen yliopisto. Tietotekniikan laitos</article-title>
          . Raportti-Tampere University of Technology.
          <source>Department of Pervasive Computing. Report; 4</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>