Icsea 2016 5 30 10067 PDF

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

ICSEA 2016 : The Eleventh International Conference on Software Engineering Advances

Challenges of the Digital Transformation in Software Engineering

Michael Gebhart Pascal Giessler, Sebastian Abeck


iteratec GmbH Cooperation & Management
Stuttgart, Germany Karlsruhe Institute of Technology (KIT)
e-mail: michael.gebhart@iteratec.de Karlsruhe, Germany
e-mail: pascal.giessler@kit.edu, abeck@kit.edu

Abstract—Digital transformation describes the changes that the example, in the last years, several new technologies and
increased digitization within society causes or influences in all frameworks have evolved that are especially meant for the
aspects of human life. The digital business transformation can upcoming new devices and technologies. Instead of
be understood as the impact of the increased digitization on the developing the entire functionality from scratch, more and
business domain. Companies are challenged to transform, i.e., more web services are available that are integrated into the
to create new business models that consider and leverage the developed solution [3]. Furthermore, software systems
increased digitization. As a result, from a software engineering become increasingly omnipresent [1], which requires software
perspective, the digital transformation changes the way how developers to consider the consumer of software. The
software is developed. Current trends are the development of
attractiveness of the software for the consumer, i.e., its user
applications for mobile devices and Internet of Things (IoT)
applications. However, with these new application fields, new
experience, has become one of the most important success
challenges for software engineering arise that have to be met to factors for software systems.
successfully conduct software projects in a digitized world. It is To be successful on the market, software companies have
necessary for software companies to solve these challenges if to solve these challenges. However, in most cases, companies
they want to be successful on the market. In this article, these try to respond on the digitization with changes of the
challenges are worked out. Furthermore, solution approaches, development methodology. For example, agile development
such as Application Programming Interface (API) strategy and is wide-spread today. But, the increased digitization requires
an appropriate team culture, are derived to help software more than focusing on the development methodology. It is
developers and companies to prepare for future software more about the attitude when developing software and the
projects and to remain competitive. necessary mindset and environment. It is about the roles and
their responsibilities during the development. The digitization
Keywords-digital transformation; digitization; software requires to deal with the upcoming changes, such as the
engineering; challenge increasing technology heterogeneity, instead of trying to
avoid them.
I. INTRODUCTION
This article examines the challenges caused by the
Digital transformation can be understood as the changes digitization in society. The challenges are systematically
that the digital technology causes or influences in all aspects worked out and described. Purpose of this article is to support
of human life [1]. From a business perspective, companies are software developers and companies to prepare for these
required to react on the increased digitization and to adapt challenges the digitization and the resulting digital
accordingly. The resulting digital business transformation transformation bring with them. For that reason, in addition,
represents the idea of creating new or adapting existing after introducing the challenges, possible solution approaches
business models based on the increased digitization within are presented in this article. The challenges and solutions are
society, such as the usage of mobile devices, social media, and not limited to technological aspects. Instead, they focus both
Internet of Things (IoT) [2]. technological and organizational respectively human-oriented
As software systems are meant for supporting human life, aspects. For that reason, this paper is meant for software
the digitization influences the way how software should be developers and business managers who want to prepare
developed. For example, more and more software projects are themselves or their company for the future.
conducted that focus on the development of applications for The article is organized as follows: Section II examines
mobile devices, such as smart phones and tablets, or the IoT. existing work in the context of digital transformation and its
According to current studies, such as the one conducted by EC impact on software engineering. The resulting challenges of
SPRIDE in collaboration with the University of Darmstadt the digital transformation on software engineering are
and Fraunhofer Institute for Secure Information Technology summarized in Section III. Section IV introduces solution
(SIT) [3], this trend will continue and apps and rather small approaches to overcome the challenges managed in Section
special purpose software predominantly in use on smart III. Section V concludes this article and introduces future
phones and tablets will further propagate. research work.
These new application fields of software systems bear new
challenges for the software engineering discipline. For

Copyright (c) IARIA, 2016. ISBN: 978-1-61208-498-5 136


ICSEA 2016 : The Eleventh International Conference on Software Engineering Advances

II. BACKGROUND certain challenges and trends for software engineering that
This section analyzes existing work in the context of have to be solved. However, a list of challenges of the digital
digital transformation and possible impacts on software transformation in software engineering with concrete advices
engineering. Based on this work, in the following section, the how to solve these challenges is missing. This is the
future challenges for software engineering and solution motivation to investigate this aspect in more detail.
approaches are derived and summarized. III. CHALLENGES OF THE DIGITAL TRANSFORMATION IN
SOFTWARE ENGINEERING
In [1], Stolterman and Fors introduce the term digital
transformation as the changes that the digital technology In this section, the challenges of the digital transformation
causes or influences in all aspects of human life. They state in software engineering described. The challenges are derived
that the most crucial challenge for Information System from existing work and experiences. The challenges consider
Research is the study of the overall effects of the ongoing both technical and organizational, i.e., human-oriented
digital transformation of society. This is, why we focus on the aspects as both are important for successful software projects.
effects of digital transformation on software engineering from They constitute the basis for the solution approaches
a holistic view. We do not focus on software development introduced in Section IV.
methodologies like Scrum. Instead, we describe challenges on A. Reduced Time-To-Market
software engineering as a whole with the involved people in
mind. More than ever, new innovations are expected by the
Opportunities to create new business models based on the customers to be available as soon as possible [4]. Especially
results of the increased digitization in society are described by due to the increasing digitization in society and thus, due to
Berman in [2]. Even though Berman focuses on the business the focus on private customers, the time to market has to be
perspective and does not describe concrete recommendations further reduced. This applies to completely new products and
for the software engineering, the work gives some important new features for existing products.
hints about how the business will evolve. This allows to derive As a result, software developers and companies have to
the impact on software engineering. For example, according prepare their development process in way that allows to
to Berman, the focus should be on digital products and deploy new functionality continuously.
services with better customer experience. This shows the B. Flexibility and Agility
importance of considering the customer experience as
The reduced time to market requires software systems to be
developer as part of the software engineering.
flexible enough to consider new requirements afterwards.
In [3], Ochs presents a study about emerging trends in
Furthermore, the high competitive pressure requires to replace
software development. The study is conducted by EC
originally planned features by other ones. Thus, if not already
SPRIDE in collaboration with the University of Darmstadt
done, the development process has to be agile to react on
and Fraunhofer Institute for Secure Information Technology
changing requirements.
(SIT) sponsored by the German Federal Ministry of Education
Wherever useful, software developers and companies
and Research. The study shows essential characteristics for
have to avoid waterfall development models and work in an
future software systems. We reuse these software
agile way to be flexible enough to consider new and just
characteristics, adapt them to software engineering with focus
needed functionality.
on digital business transformation and combine them with
challenges mentioned in other work. C. New Disciplines
A list of challenges and methodologies to master the In the last few years, a high number of new business words
digital transformation is introduced by Hanna in [4]. The have been established with partially new concepts. Terms like
aspects described by Hanna are business-driven and consider Big Data, Internet of Things (IoT), Industry 4.0, and Machine
companies as a whole. For example, Hanna describes how to Learning comprise complex topics that might be understood
develop the human resources, leadership and institutions, to create competitive products.
policies and regulations. Even though it is not focusing Thus, software developers and companies have to
Information Technology (IT), we use this work to derive understand these new terms and concepts. As described by
challenges that relate to software engineering. Hanna in [4], technological change creates new demand for
The importance of solutions being consumer-oriented is learning. This requires enough time and freedom and efficient
emphasized by Leimeister et al. [5]. They describe that “in trainings for developers.
digital societies, companies must understand that the digital
customers and their preferences are key and at the center stage D. New Devices and Technologies
for developing innovative solutions”. This work shows that it With the increased digitization, new devices are used by the
is necessary to rethink about the way solutions are developed customers [4]: mobile devices, virtual reality glasses, smart
today. watches, intelligent in-ear headphones, and all the intelligent
The analysis of existing work shows that the digitization devices in a smart home [3]. They all create a completely new
within society influences the software engineering. With the device environment with partially completely new
digital transformation, new challenges arise that have to be technologies. The number of programming languages,
considered by software companies. Some work also describes partially device-specific frameworks increases.

Copyright (c) IARIA, 2016. ISBN: 978-1-61208-498-5 137


ICSEA 2016 : The Eleventh International Conference on Software Engineering Advances

Thus, software developers and companies have to prepare mentioned by Berman in [2]. Also, Leimeister et al.
for completely new devices and technologies. This means that emphasize the necessity to create solutions that are consumer-
companies have to establish trainings and give developers the oriented [5].
necessary freedom that allows them to learn new concepts. This means that software developers and companies have
The training of developers is an important success factor as to focus more than ever on the user of the system. An
the new devices and technologies bring new possibilities with appealing user interface with a clear user experience has
them that are necessary to stay competitive in the market. become one central success factor for consumer applications.
Thus, developers and companies have to consider this aspect
E. High Degree of Technology Heterogeneity in their development process and to increase their competence
The high number of devices and technologies results in in this area if not already done.
another challenge: The rapid time to market does not allow to
wait for a homogenization of the technology portfolio. As a I. Business-Awareness
result, software developers and companies are challenged to One central idea of the digital business transformation is
deal with a high number of devices and technologies in to consider and leverage the increased digitization within
parallel. Within one project, several different technologies society to create new business models. According to Hanna
might be used with all their specifics. [4], product innovation has become crucial for sustained
For that reason, developers and companies have to find a growth, competitiveness, and moving up the value ladder. As
solution to deal with this high degree of heterogeneity. innovations require technological knowledge, the creation of
Possible solutions are on the one side to standardize the business models is not a pure business task any longer. More
interfaces between these technologies and on the other side to than ever, developers themselves are invited to communicate
enable a continuous integration that considers different new business ideas and models to the management.
technologies. For that reason, the developers within a company are
required to think more business-oriented and to think outside
F. Stronger Networking the box. On the other side, the management is required to
Software systems developed today are mostly connected support developers in this task. This requires on the one hand
to other already existing software systems. This kind of freedom to give new ideas a trial and on the other side to open
networking can be the classical usage of programming up to new ideas from developers.
interfaces to exchange data (e.g., by means of web services
[6]) or the integration with social networks for authentication. J. Combination with Legacy IT
In every case, software systems are less often isolated The increased speed with which new devices and
components. Instead, customers want them to interact with a technologies arise results in a faster aging of existing IT [3].
bunch of existing components [2][3]. Especially in grown landscapes as they exist in bigger
For that reason, for developers, it is necessary to know the companies, the existing IT cannot be replaced rapidly. For that
requirements customers have on the networking aspect of reason, developers and companies will be more often
software. challenged to combine their new and modern software
systems with IT that can be considered as legacy in the
G. Extended Service Market meanwhile. In [4], Hanna states that “adjusting the social and
Today, we find more and more services providers that offer institutional environment to take advantage of a technological
infrastructure, platform, and software as a service [2]. revolution and its associated techno-economic paradigm
Compared to traditional software development, the trend is to involves painful adjustments, often disruptions to, and even
reuse existing functionality instead of developing it from destruction of, legacy systems, institutions, practices, and
scratch [3]. Even though, using software from within the cloud processes”. For example, in some cases, the new intelligent
includes operational costs, the development speed and the solutions have to exchange data with existing systems. In
quality of the results can be much higher when reusing other cases, the new solution has to be deployable in an
provided services. infrastructure that is not as modern as the new software
Thus, the way how to develop software systems changes system.
from coding the required functionality to assembling existing Thus, software developers and companies have to keep in
solutions. Software developers and companies have to mind where the software system is expected to be executed.
understand the opportunities this way brings with it. As a Possibly, it is necessary to work out a more complex
result, the new service market has to be overseen. Software integration and deployment process to combine the new and
developers and companies have to inform about services that modern software system with existing legacy IT.
are currently available on the market.
IV. SOLUTION APPROACHES
H. Consumer-/ Customer-Orientation
In Section III, challenges of the digital transformation in
Today, more and more software systems are used by software engineering were introduced. To overcome these
ordinary people. Especially with the advent of smart phones challenges, next, solution approaches are described. These
and tablets, there is a new understanding about how software approaches are meant to help software developers and
systems are expected to be used. The opportunity to enhance companies to prepare for future software projects and to
products and services for a better customer experience is remain competitive.

Copyright (c) IARIA, 2016. ISBN: 978-1-61208-498-5 138


ICSEA 2016 : The Eleventh International Conference on Software Engineering Advances

A. Microservices C. Automation
Microservices can be seen as “small and autonomous Automation can be a key factor in the success of a
services that work together” [8] via well-defined web company since it can drastically reduce the time and effort
interfaces. The size of a microservice is usually given by incurred by recurring tasks. This in turn increases the team
bounded contexts derived from business boundaries [8][9]. productivity because the team does not have to deal with these
Therefore, the business has direct influence on the resulting tasks anymore.
system design which is also known as Conway’s Law. But, For instance, deploying new applications or services
there is also an influencing factor towards the opposite should be as easy and fast as possible to reduce the time-to-
direction especially when evolving the service landscape [8]. market. At best, there is only one command for the
The concept behind microservices results in a large deployment. That is why, Platform as a Services (PaaS)
number of benefits that address the mentioned challenges in solutions, such as Heroku, DigitalOcean, or Amazon Web
Section III: First, reduced time to market when developing Services (AWS), are particularly popular among companies
new functionalities through service autonomy. Each service since it simplifies and reduces the necessary effort for
can be developed and deployed separately without a central deployment or infrastructure configuration.
release coordination between different development teams. If But, deployment is just one of many examples, such as
this is not possible, the bounded context of the microservice application monitoring or log analysis. It should be clear that
should be usually revised and adapted to fit current needs. an initial invest has to be taken, but it will pay off.
Second, the support of technology heterogeneity when
designing service landscapes especially microservice D. Technical Governance
landscapes. We can decide to use different technologies inside The technical governance provides corporate-wide
each microservice based on our needs instead of using a guidelines that have to be respected by all development teams
company-wide standardized one [8]. For example, one service to keep the heterogeneity within limits. Although, it is
can be written in Java, another one in C#. It is not necessary desirable when development teams take individual design or
to have company-wide unification. The communication technological decisions, it makes, for example, no sense to
between microservices with different technological setup is choose a different coding style or to use a distinct deployment
ensured by the service interface. This service interface must workflow. Sometimes, some technological decisions taken by
follow a technology-independent approach, such as the team are not appropriate within the company due to bad
architectural style Representational State Transfer (REST) experience in the past or other business related reasons.
introduced by Fielding [7]. Particularly important are corporate-wide guidelines when
Third, the reuse aspect that is the core idea behind service composing software components or services since the
landscapes [10]. Each service can expose different guidelines lay the foundation of the API that forms a contract
functionality via a well-defined service interface so that other for communication (see Section IV.B). For instance, the usage
services can benefit from that offer. For discovering existing of different naming styles of exposed functionality can
services in a service landscape, a service discovery solution, impede the reusability. Or in the worst case, when choosing a
such as Consul or Eureka, is usually set up. technology-dependent API, it can even prevent the reuse
entirely.
B. API Design and Strategy In our opinion, any decision that affects the whole system
An Application Programming Interface (API) can be seen should be covered by one or more guidelines and governed by
as a contract prescribing how to interact with the underlying a technical committee.
system. In the context of a service landscape, the system can
be an operable service that exposes business functionality via E. Accepting and Dealing with Heterogeneity
an API. As mentioned, the technical governance tries to limit the
Today, APIs are a big deal and the growth of public APIs heterogeneity in case of, for example, API design, but it does
regarding their activity measured in requests is still unbroken not want to avoid it when it comes to technological decisions.
[11]. Popular examples for public APIs are Facebook with the The company has to get used to the fact that several different
Graph API or Google with several APIs, such as YouTube technologies are applied. This is not a weakness but a strength
Data API or Cloud Vision for image recognition. because the new technologies offer new possibilities.
There are several reasons for serving an API, such as Furthermore, a heterogeneous technology landscape avoids
offering business functionality for a mobile application, more that too many people get used to a technology that becomes
flexibility in providing content, and allowing external outdated one day. Developers are challenged to learn new
developers or partners to transform new use cases in reality technologies. As a result, developers remain attractive for the
[11]. labor market. Finally, also, the company remains attractive for
When designing an API, it is very important to have clear developers and young applicants that prefer to work and learn
vision and business objective. In addition to the business view, new and modern technologies.
it also crucial to comply with some design principles and best
practices to simplify the usage of the API. For instance, in
[13], several best practices for RESTful Web APIs are
identified, collected, and explained.

Copyright (c) IARIA, 2016. ISBN: 978-1-61208-498-5 139


ICSEA 2016 : The Eleventh International Conference on Software Engineering Advances

Thus, heterogeneity is nothing that should be avoided. H. Team Culture


Instead, the company should learn to deal with and get used to The team culture of the development team can have a
it. The attempt to homogenize the IT at any price will result in positive impact on the productivity and the self-awareness of
a reduced adoption of new technologies, thus less innovative each member. It can be difficult to form a good team culture
software projects and business models. It is more important to since there are several factors that have to be considered, such
accept the coming changes and to make it part of the company as the identification of each member with the company or how
philosophy. proud someone is about shipped or developed products.
F. Critical Analysis of new Trends Nevertheless, there are some key points that should be
achieved within a company.
Every day, new technical solutions in form of libraries, First, you should give each member of the development
frameworks, and tools appear on the internet. Some of them team the feeling that (s)he is unreplaceable and essential for
offer a comparable solution to a recurring problem or use case. the success for the product.
Then again, others offer a completely new approach to solve Second, each manager should be open for discussions and
the same problem. ideas since innovation comes from ideas. Each developer
The rapid growth of new technologies, the necessary should be encouraged to be more business-oriented and think
learning and training effort as well as the lack of detailed and outside the box.
objective comparison between technologies in the same This leads to the third important key point: The employees
domain make it difficult to choose one technology over the are the most important asset of a company and should be
other. In many cases, the taken decision has also to be treated accordingly. For development teams, you should give
reasoned especially when some people or the whole company them the opportunity to learn and teach as much as possible to
must be convinced to rely on this technology for upcoming keep up with the industry leaders since no developer wants to
projects. There is no silver-bullet on how to choose the right
work with “old” technologies for the rest of his working life.
technology since there are several factors that have to be If this is not possible in current projects, then the company
considered. Furthermore, it is often an illusion to choose one should find a compensation for the developers, perhaps by
technology for the next ten or more years since at some point starting an open source project that allows to study new
a new technology or new approach will arise and form a technologies. Thus, the management is responsible to give the
community around it. Then, the cycle starts from the necessary freedom and to provide trainings wherever possible.
beginning.
We recommend to be open for new technologies or V. CONCLUSION AND OUTLOOK
approaches and not hang on prior decisions based on the motto
“It still works and will also be a suitable solution for the next Digital business transformation can be understood as the
years. We do not need a new technology”. In our opinion, new idea of creating new or adapting existing business models
technology should be analyzed as soon as possible to get a based on the increasing digitization within society. As these
clear picture if it makes sense to follow the further new business models influence the way software systems have
development and how this approach can improve the already to be developed, software developers and companies have to
used technology in a specific application field. Thereby, it is adapt to these changes. For that reason, in this article, we
important to look behind the scenes and get an idea of how the derived and described challenges for software engineering the
technology works and how it is build up since this is crucial digital business transformation brings with it. Furthermore,
for a proper and reasoned decision. we listed solution approaches for software developers and
companies for overcoming these challenges.
G. Design Our list of challenges and solution approaches is expected
A lot of great services and (digital) products pop up every to help software developers and business managers of
day on the market. The design is the first impression that a software companies to remain competitive in times of digital
potential customer will get from a product. It is often a transformation. Furthermore, more than ever, it is important
misunderstanding that the design is only the user interface of to remain attractive for the labor market. Competitiveness
an application. Instead, we should see the design as a method requires companies to be attractive for talents. For that reason,
for problem solving that can be applied on different contexts, the challenges and solution approaches are not limited to
such as the user interface of an application but also on an API technological aspects. Instead, we considered aspects that are
of a service. For instance, if the API design is not easy to both technological and organizational, i.e., human-oriented.
understand or easy to try and use, it can have a negative impact For the future, we plan to refine the solution approaches.
on the adoption rate. Similar to this, if the frontend of an In the past we started with methodologies for designing
application looks confusing, customers could look after the services in service-oriented architectures [12]. We extended
opponent’s solution. The design is therefore an essential this work for API design and strategy including best practices
ingredient of a product that decides if a potential customer is for RESTful web services [13] and approaches to measure the
interested or not. compliance regarding these best practices [14]. We will
When developing new products, the whole development continue this technological work to provide guidelines for
team should concentrate on a good design for the target user designing a clear and maintainable API. In addition, we will
group instead of only focusing on the functionality aspect of focus on the non-technological, the human-oriented aspects.
the product. We will investigate solution approaches for being attractive

Copyright (c) IARIA, 2016. ISBN: 978-1-61208-498-5 140


ICSEA 2016 : The Eleventh International Conference on Software Engineering Advances

for talents as this is significant for remaining competitive on


the market. Furthermore, we will investigate how to adjust the
mindset within companies so that new innovative and
competitive business models can be created. This will help
companies to benefit from the increased digitization and to
prepare for the future.
REFERENCES

[1] E. Stolterman and A. C. Fors, “Information technology and the good


life,” in Information Systems Research: Relevant Theory and Informed
Practice, pp. 687-692, 2004.
[2] S. J. Berman, “Digital transformation: opportunities to create new
business models,” Strateg. Leadersh., vol. 40, no. 2, pp. 16–24, 2012.
[3] C. Ochs, “Emerging trends in software development & implications for
IT security: an explorative study”, EC SPRIDE, 06/2014.
[4] N. K. Hanna, Mastering Digital Transformation: Towards a Smarter
Society, Economy, City and Nation. Emerald Group Publishing
Limited, 2015.
[5] J. M. Leimeister, H. Österle, and S. Alter, “Digital services for
consumers,” Electron. Mark., vol. 24, no. 4, pp. 255-258, 2014.
[6] S. Varghese, “Web Development with Go: Building Scalable Web
Apps and RESTful Services,” Berkeley, CA: Apress, pp. 159–209,
2015.
[7] R. Fielding, “Architectural styles and the design of network-based
software architectures,” University of California, Irvine, 2000.
[8] S. Newman, “Building Microservices – Designing fine-grained
systems,” O’Reilly, 2015, ISBN 9781491950357.
[9] E. Evans, “Domain-Driven Design: Tacking Complexity In the Heart
of Software,” Addison-Wesley Longman Publishing Co., Inc., 2003,
ISBN 0321125215.
[10] T. Erl, SOA – Design Patterns, Prentice Hall, 2008.
ISBN 978-0-13-613516-6.
[11] D. Jacobsen, G. Brail, and D. Woods, “APIs – A Strategy Guide,”
O’Reilly, 2012, ISBN 9781449308926.
[12] M. Gebhart and S. Abeck, “Metrics for evaluating service designs
based on soaml,” International Journal on Advances in Software,
4(1&2), pp. 61-75, 2011.
[13] P. Giessler, M. Gebhart, D. Sarancin, R. Steinegger, and S. Abeck,
“Best Practices for the Design of RESTful web Services,“ International
Conferences of Software Advances (ICSEA), pp. 392-397, 2015.
[14] M. Gebhart, “Query-based static analysis of web services in service-
oriented architectures,” International Journal on Advances in Software,
7(1&2), pp. 136-147, 2014.

Copyright (c) IARIA, 2016. ISBN: 978-1-61208-498-5 141

You might also like