Icsea 2016 5 30 10067 PDF
Icsea 2016 5 30 10067 PDF
Icsea 2016 5 30 10067 PDF
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
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.
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.
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.