=Paper= {{Paper |id=Vol-2047/BENEVOL_2017_paper_3 |storemode=property |title=Evolution of Software Product Development in Startup Companies |pdfUrl=https://ceur-ws.org/Vol-2047/BENEVOL_2017_paper_3.pdf |volume=Vol-2047 |authors=Mercy Njima,Serge Demeyer |dblpUrl=https://dblp.org/rec/conf/benevol/NjimaD17 }} ==Evolution of Software Product Development in Startup Companies== https://ceur-ws.org/Vol-2047/BENEVOL_2017_paper_3.pdf
      Evolution of Software Product Development in
                    Startup Companies
                            Mercy Njima                                                    Serge Demeyer
        Department of Mathematics and Computer Science                  Department of Mathematics and Computer Science
                     University of Antwerp                                           University of Antwerp
                       Antwerp, Belgium                                                 Antwerp, Belgium
                Email: mercy.njima@gmail.com                                  Email: serge.demeyer@uantwerpen.be



   Abstract—This position paper addresses the software engineer-      has been a common variant of Agile which advocates for
ing practices in startups. The focus of most software engineering     the creation of value to customers and elimination of waste
research has been on established companies. However, startup          during the development phase. These methods are preferred
technology companies have become important producers of in-
novative and software intensive products despite the fact that they   as they enable a faster learning process especially since
are under severe time-to-market pressure. Given that software         there’s generally a lack of written architecture and design
engineering is the core activity in said startups, inadequacies in    specifications. However, the absence of structure might hinder
such practices might be a substantial contributing factor to this     important activities, such as sharing knowledge, team coor-
pressure to keep up with the software industry competitive needs.     dination or implementing new features. Therefore, in prepa-
Startups build non-traditional business architectures by taking
the easy path to find a product-market fit and thus, accumulate       ration for growth, startups must plan for scalable processes
large amounts of technical debt. We shed light on the major           that involve formulating initial architectural strategies from
efforts in the domain and indicate the research directions we         which they can benefit from reuse of components and shared
plan to explore further.                                              architectures across projects to ensure long term evolution
                                                                      without significant schedule overhead.
                       I. I NTRODUCTION
                                                                         This research process aims to answer the question “How
A. Software Engineering in Startups                                   can a startup continuously improve it’s products and still meet
   The vast majority of software development projects today           customer requirements?” We hypothesize that the effective
are small, with few people and a very short development               management of technical debt and the application of software
cycle. These are often developed by young companies with              product line engineering best practices would allow a startup
no organizational history, no legacy code, and severely limited       to respond to the evolving needs of the market.
funding. These startup companies may still be in search of
a business model and as a result, many applications are                                    II. R ELATED W ORK
initially released in a matter of weeks or months (minimum               Over the past couple of years, the software engineering
viable product), rather than being developed and tested over          community has shown interest in the software development
years. The associated philosophy of “release early, release           practices of software startups. Unterkalmsteiner et al. provide
often” means that subsequent releases of those applications           a research agenda that focuses on software engineering in
are sometimes made frequently [1], [2]. As a result of these          startups identifying, 70+ research questions in the areas of
constraints, startups tend to be very informal with their soft-       supporting startup engineering activities, startup evolution
ware engineering processes, focusing on key areas such as             models and patterns, ecosystems and innovation hubs, human
the user experience, product feature requirements, and the            aspects in software startups, applying startup concepts in non-
ability to use existing frameworks and libraries. These aspects       startup environments, and methods and theories for startup
are central to lean and agile development methods, and are            research [7]. Pantiuchina et al. [8], conducted a large survey
not included among the key process areas of the traditional           of 1,526 software startups and examined the use of five agile
software engineering capability models.                               practices, including quality related (regular refactoring and test
   Agile software development has been considered the most            first) and speed related (frequent release and agile planning)
viable process for software startups as they allow teams to           in an effort to understand how software startups can better
respond to the unpredictability of building software through          use agile practices and eventually benefit from them. Klotins,
incremental, iterative sprints [3], [4]. In this context, fast        applied a hybrid research method to design and launch a
releases with an iterative and incremental approach shorten           large scale study into software engineering aspects of startups
the lead time from idea conception to production with fast            [9]. Giardino et al. identified common software development
deployment. XP is the most used development process across            startup practices in [4] while Paternoster et al. presented a
startup companies, due to its reduced process costs and low           detailed investigation and collection of all known empirical
documentation requirements [5]. The Lean Startup method [6],          software engineering sources related to startups and their en-



                                                                                                                                    10
gineering practices [3]. The following papers provide a general      wide variety of companies have substantially decreased the
overview of the research done to investigate development             cost of software development and maintenance and time to
practices in software startups [10], [11], [12], [13], [14], [15],   market and increased the quality of their software products
[16].                                                                [27].
   The Lean startup method has also been applied in large soft-         Startup software companies usually start with a single idea
ware companies through experimentation in internal startups          and thus with a single product. Over time, if the company is
as they look for new ways to innovate. Edison et al. conducted       successful, the product matures and the management sees that
a multiple case study at large software companies to shed light      it can use the same idea (or slight variations of it) to develop
on this issue and examine how a new product was developed            a new set of products [28]. However, during this process most
through the internal startup effort [17], [18].                      startups still have scarce financial resources, so they cannot
   We hope to build on the work done by Chicote and Yli-             invest heavily in development. Thus, they must make reuse a
Huumo et al. in with regards to technical debt in software           reality.
startups [19], [20]. Chicote introduces a technique for manag-          A few stages of startup development can be identified as
ing technical debt based on Visual Thinking. The technique           startup phase, stabilization phase and growth phase [29]. In
addresses the problem of knowing how much debt is in                 the startup phase the startup is just finding out ways to
place and how it is affecting the development cycle. On the          make business. In the stabilization phase, the organization
other hand, Yli-Hummo et al. investigated one middle-size            starts gradually to find its way of working and the amount
Finnish software company with two independent product lines          of uncertainty decreases. In the growth phase, the startup
to understand the causes and effects of technical debt.              goes through a series of changes and the organization needs
                                                                     to restructure itself to support growth in all areas: business,
                III. R ESEARCH D IRECTIONS
                                                                     personnel, the scope of the product, etc.
A. Technical Debt in Startups                                           At this stage the company needs to work on how the
   Startups search for product-market fit by building fast,          systems can evolve later. When the products evolve, features
testing and iterating until they find a solution. In the process     need to be added, removed, turned into modules or separate
of releasing a product, the development team knows that it has       products [30]. This requires attention to the architecture and
released software with flaws that must be fixed [21]. Balancing      implementation. Software product lines encourage an orga-
the choice of releasing poor-quality software early or high-         nization to reuse existing assets and capabilities rather than
quality software late is challenging. This leads startups to an      repeatedly developing them for new systems. Therefore, they
awkward situation where they have to decide what quality             use architectures, designs and implementation techniques that
is acceptable and what compromises in the development                make features modular and independent so that they are easy
process they have to take [20], [22]. This is the basis of           to reuse, remove, turn into modules or separate products.
how startups accumulate technical debt. Technical debt is
a metaphor reflecting technical compromises that can yield                                     IV. C ONCLUSION
short-term benefit but may hurt the long-term maintainability           Software engineering practice for startups is a rapidly
and evolvability of a software system [23]. Accruing large           evolving area of research. A mapping study is within our short
amounts of technical debt may make new changes harder                term goals by which we aim to obtain an overview of the body
to implement especially when a pivot is triggered [24]. A            of knowledge and identify inadequacies in used practices and
pivot is a “structured course correction designed to test a new      proposed remedies.
fundamental hypothesis about the product, strategy, and engine
of growth” [6]. A startup that cannot implement new features                                      R EFERENCES
quickly or recover swiftly from a failed project because their
                                                                      [1] H. Erdogmus, A. Sillitti, and T. Wasserman, “Softstart 2017 workshop
code base has technical debt is not likely to succeed [19].               summary,” in 2017 IEEE/ACM 1st International Workshop on Software
In our opinion, managing technical debt for software startups             Engineeting for Startups (SoftStart), 2017, pp. 1–1.
deserves research attention. Meir Lehmann’s second law of             [2] E. Klotins, M. Unterkalmsteiner, and T. Gorschek, “Software engi-
                                                                          neering knowledge areas in startup companies: A mapping study,” in
software evolution, Increasing Complexity, states that “As                Software Business, ser. Lecture Notes in Business Information Process-
an evolving program is continually changed, its complexity,               ing, J. M. Fernandes, R. J. Machado, and K. Wnuk, Eds. Springer
reflecting deteriorating structure, increases unless work is done         International Publishing, 2015, vol. 210, pp. 245–257.
                                                                      [3] N. Paternoster, C. Giardino, M. Unterkalmsteiner, T. Gorschek, and
to maintain or reduce it ”[25]. This applies to the startup               P. Abrahamsson, “Software development in startup companies: A sys-
context as well.                                                          tematic mapping study,” vol. 56, no. 10, pp. 1200–1218, 2014.
                                                                      [4] C. Giardino, M. Unterkalmsteiner, N. Paternoster, T. Gorschek, and
B. Software Product Line Engineering for Startups                         P. Abrahamsson, “What do we know about software development in
                                                                          startups?” IEEE Software, vol. 31, no. 5, pp. 28–32, Sept 2014.
   A software product line is a family of systems that share a        [5] G. Coleman and R. O’Connor, “Using grounded theory to understand
common set of core technical assets, with preplanned exten-               software process improvement: A study of irish software product com-
sions and variations to address the needs of specific customers           panies,” Inf. Softw. Technol., vol. 49, no. 6, pp. 654–667, Jun. 2007.
                                                                      [6] E. Ries, The lean startup : how today’s entrepreneurs use continuous
or market segments [26]. Software product lines have achieved             innovation to create radically successful businesses. New York: Crown
substantial adoption by the software industry. Consequently, a            Business, 2011.




                                                                                                                                            11
 [7] M. Unterkalmsteiner, P. Abrahamsson, X. Wang, A. Nguyen-Duc,              [25] M. M. Lehman, “Programs, life cycles, and laws of software evolution,”
     S. M. A. Shah, S. S. Bajwa, G. H. Baltes, K. Conboy, E. Cullina,               Proceedings of the IEEE, vol. 68, no. 9, pp. 1060–1076, Sept 1980.
     D. Dennehy, H. Edison, C. Fernández-Sánchez, J. Garbajosa,              [26] Software Product Lines: Practices and Patterns. Boston, MA, USA:
     T. Gorschek, E. Klotins, L. Hokkanen, F. Kon, I. Lunesu, M. Marchesi,          Addison-Wesley Longman Publishing Co., Inc., 2001.
     L. Morgan, M. Oivo, C. Selig, P. Seppänen, R. Sweetman, P. Tyrväinen,   [27] J. Bosch, “Maturity and evolution in software product lines: Approaches,
     C. Ungerer, and A. Yagüe, “Software startups - A research agenda,”            artefacts and organization,” in Software Product Lines, Second Interna-
     e-Informatica, vol. 10, no. 1, pp. 89–124, 2016. [Online]. Available:          tional Conference, SPLC 2, San Diego, CA, USA, August 19-22, 2002,
     https://doi.org/10.5277/e-Inf160105                                            Proceedings, 2002, pp. 257–271.
 [8] J. Pantiuchina, M. Mondini, D. Khanna, X. Wang, and P. Abrahamsson,       [28] P. Knauber, D. Muthig, K. Schmid, and T. Widen, “Applying product
     Are Software Startups Applying Agile Practices? The State of the               line concepts in small and medium-sized companies,” IEEE Software,
     Practice from a Large Survey. Cham: Springer International Publishing,         vol. 17, no. 5, pp. 88–95, 2000.
     2017, pp. 167–183.                                                        [29] V.-P. Eloranta, “Towards a pattern language for software start-ups,” in
 [9] E. Klotins, “Using the case survey method to explore engineering               Proceedings of the 19th European Conference on Pattern Languages of
     practices in software start-ups,” in 2017 IEEE/ACM 1st International           Programs, ser. EuroPLoP ’14. New York, NY, USA: ACM, 2014, pp.
     Workshop on Software Engineeting for Startups (SoftStart), May 2017,           24:1–24:11.
     pp. 24–26.                                                                [30] A. Dande, V.-P. Eloranta, A.-J. Kovalainen, T. Lehtonen, M. Leppänen,
[10] C. Giardino, N. Paternoster, M. Unterkalmsteiner, T. Gorschek, and             T. Salmimaa, M. Sayeed, M. Vuori, C. Rubattel, W. Weck et al.,
     P. Abrahamsson, “Software development in startup companies: The                “Software startup patterns-an empirical study,” Tampereen teknillinen
     greenfield startup model,” IEEE Transactions on Software Engineering,          yliopisto. Tietotekniikan laitos. Raportti-Tampere University of Technol-
     vol. 42, no. 6, pp. 585–604, June 2016.                                        ogy. Department of Pervasive Computing. Report; 4, 2014.
[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].
     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.
     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 Experimenta-
     tion 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 Ap-
     proaches 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. Suonsyrjä, and K. Systä, 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.




                                                                                                                                                         12