=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==
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