software architecture design in global software development ›...

51
Software Architecture Design in Global Software Development Outi Sievi-Korte a , Ita Richardson b , Sarah Beecham b,* a Tampere University of Technology, Finland b Lero - The Irish Software Research Centre, University of Limerick, Ireland Abstract In Global Software Development (GSD), the additional complexity caused by global distance calls for processes to help avoid project delays, ease communica- tion and collaboration overhead, and improve control. How development tasks are broken down, shared and prioritized is key to project success. While many project management solutions are proposed, few guidelines exist that focus on how to architect and design software in distributed settings. In this study we address the question of how to design systems developed by distributed teams. We build on and augment findings in the GSD design literature by conducting an empirical study. Taking a qualitative approach, interviews with 13 GSD archi- tects revealed several new challenges and best practices. Inter-rater reliability testing added a level of objectivity to our synthesis. All seven organizations were using Scrum in a distributed setting, which was found helpful to tackle some of the challenges found in the literature. Practitioners felt that design- ing software for distributed teams requires a new set of practices, particularly regarding adherence to defined processes. While many practices mirror those reported in the GSD literature, the inductive approach revealed new challenges, recommendations and even contradictions. The resulting set of guidelines and a conceptual model go some way towards supporting architects involved in GSD, who now have a more complete and cohesive set of warnings, which are, for the * Corresponding author Email address: [email protected] (Sarah Beecham) Preprint submitted to Elsevier November 16, 2018

Upload: others

Post on 07-Jun-2020

26 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Software Architecture Design in Global SoftwareDevelopment

Outi Sievi-Kortea, Ita Richardsonb, Sarah Beechamb,∗

aTampere University of Technology, FinlandbLero - The Irish Software Research Centre, University of Limerick, Ireland

Abstract

In Global Software Development (GSD), the additional complexity caused by

global distance calls for processes to help avoid project delays, ease communica-

tion and collaboration overhead, and improve control. How development tasks

are broken down, shared and prioritized is key to project success. While many

project management solutions are proposed, few guidelines exist that focus on

how to architect and design software in distributed settings. In this study we

address the question of how to design systems developed by distributed teams.

We build on and augment findings in the GSD design literature by conducting an

empirical study. Taking a qualitative approach, interviews with 13 GSD archi-

tects revealed several new challenges and best practices. Inter-rater reliability

testing added a level of objectivity to our synthesis. All seven organizations

were using Scrum in a distributed setting, which was found helpful to tackle

some of the challenges found in the literature. Practitioners felt that design-

ing software for distributed teams requires a new set of practices, particularly

regarding adherence to defined processes. While many practices mirror those

reported in the GSD literature, the inductive approach revealed new challenges,

recommendations and even contradictions. The resulting set of guidelines and a

conceptual model go some way towards supporting architects involved in GSD,

who now have a more complete and cohesive set of warnings, which are, for the

∗Corresponding authorEmail address: [email protected] (Sarah Beecham)

Preprint submitted to Elsevier November 16, 2018

Page 2: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

most part, matched by recommendations. We also have a better understanding

of architectural practices in companies using Scrum development methods.

Keywords: software architecture, global software development, GSD, Scrum,

GSE, empirical study

1. Introduction

Global software development (GSD) in its many forms has become a stan-

dard way of producing software particularly for larger companies [1]. Tasks

are outsourced and/or off-shored [2] for a variety of reasons, mainly in order

to reduce costs and gain access to local markets and resources [3]. No matter5

how tasks are distributed or what kind of processes are followed, there is one

common denominator for all GSD projects that make them more challenging to

handle than collocated projects, and that is ‘distance’.

Distance [4] has three dimensions: socio-cultural, temporal and geographi-

cal. Geographical and temporal distance are a natural consequence of having10

development sites far away from each other. Geographical distance makes it

impractical to have face-to-face meetings, making teleconferencing and other

substitutions necessary. Temporal distance, if not handled correctly, often re-

sults in delays, as there might be very little overlap in office hours between

sites, making it even more difficult to agree on meeting times. Even asyn-15

chronous communication, such as emails, suffer from temporal distance, as a

simple question may take until the next working day to be answered. Finally,

socio-cultural distance brings a certain flavor to the meetings between different

sites, and good communication skills are required to fluently execute meetings

and allow projects to advance.20

Global distance thus calls for more effort in terms of inter and intra team

communication, coordination and control [5]. Working communication meth-

ods need to be in place to overcome the challenges brought about by distance.

Projects need to be especially well-coordinated [6], so that each site is at all

times aware of their tasks and responsibilities and to ensure a common view of25

2

Page 3: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

the status and requirements of the project [7, 8]. Finally, especially due to the

differences in working cultures, more rigorous control over activities is required.

Due to the aforementioned aspects, GSD is a particularly challenging form

of practicing software development. A common way to alleviate the challenges

is to minimize required communication between sites. Reducing the number30

of different sites that need information from each other to perform their tasks,

leads to fewer meetings, fewer emails sent and fewer misunderstandings due to

cultural differences. Further, it is commonly acknowledged that to achieve this

optimal communication level, the key is to allocate tasks so that there are as

few dependencies between sites as possible [9].35

Tasks are directly derived from the software, and dependencies between sites

are thus a direct result of dependencies within software. Dependencies within

software, in turn, are dictated by the software architecture - how the software

has been designed. Conway’s law [10] states that the organization’s structure

and the software architecture will end up mirroring each other, and this has40

been validated by many studies over the years [11, 12, 13]. Thus, it would seem

that by simply creating a modular architecture that follows the organization’s

structure and available skills would solve a lot of issues with GSD [6].

Software architecture design, however, is a very complicated activity. In ad-

dition to ”simply” considering the modular structure of the software, architects45

need to consider required technologies and dependencies between them, available

resources, available budget and schedule, customer requirements and pressure

from the marketing department - just to name a few points. The modularity

of a software itself is not straightforward either, if there are concerns spanning

multiple layers and components. If tasks are divided by layers, is it clear where50

the boundaries between layers lie? If tasks are divided by components, how can

we handle features that require several components? And vice versa - if tasks

are divided by features, how can we handle situations where several teams need

the same component for their feature?

The overlapping nature of the two challenging aspects - GSD and software55

architecture design - is thus vital to investigate. What kind of practices ex-

3

Page 4: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

ist to handle architecture design in a distributed environment? What are the

recognized challenges and how are they handled? The importance of this inter-

section has already been noted by Babar and Lescher [14], who raise software

architectural design as a key strategy for success in a GSD project.60

A number of published studies highlight a range of architectural issues in a

GSD context, e.g. [15, 16]. However, many of these studies present secondary

results from synthesising or mapping architectural reviews and architectural

knowledge management issues in GSD. Very few directly investigate how to

perform software architecture design in a distributed setting.65

In this paper we present an empirical study of software architectural ap-

proaches to developing software in GSD projects. Thirteen practitioners from

seven organizations were interviewed. This study builds on previous work, par-

ticularly on our in-depth systematic literature review (SLR) on architectural

challenges and practices in GSD [17]. The aim of this study is to validate find-70

ings from our SLR and provide new insights to our research question, What

are the challenges faced and practices used by practitioners involved in software

architecture design in GSD?. In our SLR we found challenges particularly re-

lated to change management, quality management and task allocation, for which

there were no practices found in the literature, and were hoping to complement75

the set of recommendations particularly related to these aspects.

This paper is organized as follows: Section 2 presents the background to this

study through a summary of the related work on software architecting in GSD.

In Section 3 we outline our empirical research method and in Section 4 we sum-

marize the results from the practitioner interviews. Section 5 presents practices80

and guidelines for software architecting in GSD. In Section 6 we compare and

discuss our results with those given in the related literature. Finally, in Section

7, we consider threats to validity and summarize our contribution.

4

Page 5: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

2. Background

2.1. Related Work85

Software architecture related studies in a GSD context were reviewed by

Mishra and Mishra [18] who viewed architecting in terms of either knowledge

management (see, e.g., [19, 20, 21, 22]) or process and quality (see, e.g., [23, 24]).

Additionally, there are several studies on performing software architecture

reviews and evaluation in the context of GSD. Architecture reviews are an im-90

portant part of quality and requirements management, as through them it can be

verified that the architecture fulfills both functional and non-functional require-

ments. Such reviews are traditionally held in workshops and other face-to-face

meetings, which are difficult to arrange in GSD projects. Ali Babar investi-

gated the use and efficiency of tools to perform this task [25, 26]. Evaluation95

of software architecture decisions, in turn, has been studied by Che and Perry

[27].

Further, Conway’s law features widely in the related literature, where ar-

chitectural issues have been addressed in relation to task allocation and coordi-

nation of GSD projects (see, e.g., [28, 29, 30, 31]). Herbsleb and Grinter [32],100

when discussing GSD, explicitly recommend following Conway’s law: ”Attend

to Conway’s Law: Have a good, modular design and use it as the basis for

assigning work to different sites. The more cleanly separated the modules, the

more likely the organization can successfully develop them at different sites.”

From the architectural viewpoint, the separation of modules has been identified105

as key for independent development work already in the 1970s by Parnas [33].

There have been several systematic literature reviews in the area of GSD in

general, as revealed by the tertiary study by Verner et al. [34]. Based on this

study, it can clearly be seen that organizational factors, engineering or the devel-

opment process, and software project management issues are the most studied110

areas in GSD. Notably, from the listed 24 SLR studies, only one involving design

is listed. This is a review concentrating on architectural knowledge management

(AKM) issues by Ali et al. [15], where they captured key concepts of AKM in

5

Page 6: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

GSD, to include architecture knowledge coordination practices and the most

crucial challenges. Based on a meta-analysis of the literature, they presented a115

meta-model for AKM in a GSD environment. Several practical design related

issues were found, but the focus of the study is knowledge management, rather

than the more technical process of designing the software architecture, which is

the focus of our research. What the meta-analysis does reflect is a clear delin-

eation between architectural management in a co-located setting compared to120

a distributed development setting.

Besides the study of Ali et al. [15], several studies consider software con-

struction [16], but they take a process viewpoint. This strongly suggests that

there is a gap in design related research within GSD. This mismatch between

industry needs and research conducted was identified in an evaluation of 10125

years of research and industry collaboration in Global Software Engineering

[35]. Christof Ebert and colleagues listed Architecture and Design as the least

researched area with only 6 out of 260 papers covering the topic over 10 years.

2.2. Concern Framework Overview

In 2018 we conducted a systematic literature review (SLR) on software ar-130

chitecting challenges and practices in GSD [17]. The SLR synthesis enabled

us to construct a concern framework of challenges and practices and present

a conceptual model of architecting in GSD. This conceptual model is given in

Figure 3, where the challenges and practices are grouped under themes. Rela-

tionships between the themes are also shown. Themes (concepts) are presented135

as classes, practices and challenges are given (in condensed form due to space

restrictions) as class members (coded with SLR-P1 – SLR-P9 for practices and

SLR-C1 – SLR-C9 for challenges), and different themes have relationships be-

tween them. We have used the directed labeled association to mark the cases

where the concepts have indisputable relationship between them. We have used140

the directed dependency notation where the relationship between concepts is

clear but how much actions regarding one theme affect another depends on

the case organization and project. Finally, inheritance is used to notate a spe-

6

Page 7: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

cial relationship between themes and directly derived sub-themes. Additionally,

two core concepts of architecting (Design Decisions and Project management)145

are noted with stereotypes to distinguish under which core concept each theme

falls. Classes where these concepts overlap are marked with a special stereotype

”Design decisions and Project Management”.

As shown, the practices and challenges are related to the following key

themes: Organization (Structure and Resources), Ways of Working (AKM,150

Change Management and Quality Management), Design Practices, Modularity

and Task Allocation. This model, in addition to the checklists we also developed

as a result of conducting the SLR, gave us a starting point for our interviews.

We focused on the key SLR themes when constructing our questions ensuring

that the topics were found to be challenging in the literature were covered, and155

where possible we probed the interviewees to elicit practical examples of the

practices listed in the literature.

3. Research Method

We have two research questions to solve in our study.

RQ1: What kind of challenges do practitioners face when designing software160

architecture in GSD projects?

RQ2: What kind of practices are used by software architects to accommodate

the distributed nature of the development work?

3.1. Method and interviewees

To answer our research questions, we performed semi-structured interviews165

with 13 representatives from seven different companies with headquarters in

three different countries. All representatives participated voluntarily. All in-

terviews were performed by the first author, who recorded the interviews and

wrote notes. The interviews lasted between 1 hour and 2.5 hours. The purpo-

sive sample of interviewees all had experience of working in distributed software170

development projects working with architectural issues. Some had additional

7

Page 8: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

dictates protocols for

induce

can be calculatedas

determines

determines

implement

is reponsible for

has

includes determining can be affected by

<<Design decisions andProject management>>

Role

<<Design decisions andProject management>>

Architect

<<Design decisions andProject management>>

Design Process

<<Project management>>

Project Management<<Design decisions and Project

management>>Ways of Working

<<Design decisions>>

Design Decisions

Difficulties with keeping architectureunderstandable (SLR-C2)

Use different diagrams (SLR-P3)Apply analysis methods (SLR-P2)

<<Design decisions>>

Design Practices

Apply commonlyacknowledged practicesand guidelines (SLR-P7)

Incorrectly applied orinsufficiently definedpractices (SLR-C7)

<<Project management>>

Organization

<<Project management>>

Structure

Ensure compliance toorg. structure in design(SLR-P1)

Inability to match org.structure to design(SLR-C1)

<<Project management>>

Resources

<< Project management>>ArchitecturalKnowledge

Management

Use a specific team ofarchitects to distributeknowledge (SLR-P6)

Lack of awarenessbetween distributedteams (SLR-C3)

<<Design decisions andProject management>>

QualityManagement

Insufficient qualityassurance (SLR-C4)

<<Design decisions>>Change

Management

Inability to maintain astable architecture(SLR-C5)Lack of compliance(SLR-C6)

<<Design decisions andProject management>>

Task Allocation

Issues with work itemsspanning across sites(SLR-C9)

<<Design decisions>>

Modularity

Well-definedinterfaces (SLR-P8)

Difficulties identifyingdependencies (SLR-C8)

<<Design decisions>>

Coupling

Ensure knowledge ofarchitectural artefacts(SLR-P4)Establish a singlerepository for arch.artefacts (SLR-P5)

Consider availableresources (SLR-P9) affects

[Conway's law: organization andarchitecture mirror each other.]

Design-driven task allocation may lead torestructuring the organization (teams), whileorganization-driven task allocation mayaffect design decisions

C1...Cn: Challenges (issues)

<<core concept>>Theme name

: Strong relationship betweenthemes

: Relationship depends onorganization

: Theme with core conceptunder which it belongs

P1...Pn: Practices (recommended)Key:

: Inheritance - subthemederived from higher-leveltheme

Figure 1: Model for Architecting in GSD in SLR

experience from project leadership or management. Interviewee and company

backgrounds are summarised in Table 1. Companies are coded with letters A-G.

As shown, in each of companies D, E and G we interviewed three individuals. In

companies D and E the interviews were performed as a group interview, while175

for company G all three practitioners were interviewed separately. In companies

D and E the interviewed practitioners worked in very similar projects or roles,

while in company G the practitioners had much more varying roles, though all

related to architecting. Note, that “Number of sites” indicates the number of

different sites that are or have been involved in the projects where the intervie-180

8

Page 9: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

wee in question has worked on (i.e., sites per project). Different countries, in

turn, indicates in how many and what countries the different sites have resided

in considering all projects.

3.2. Questions

The interview questions were based on the themes found in our SLR [17].185

We ran a pilot interview with a colleague (not involved in the study) having sev-

eral years of experience in software architecture research and teaching. Based

on the pilot interview some questions were clarified and points where possible

clarifications might be needed during the interview were noted. The interview

proceeded in four phases.190

Phase 1: Explaining to the interviewees the purpose of the study and the

background of the field, defining, for example, the terms ”GSD” and ”Software

architecture design” to ensure a common context.

Phase 2: Background information. We asked interviewees about their and the

company’s background, as given in Table 1. Further, we asked about common195

issues often related to GSD, such as, do the teams have a common language?

what are the reasons behind distributing development work? and, what are the

biggest GSD challenges the interviewees have found?

Phase 3: Architecting in GSD. In this phase we attempted to unearth archi-

tecting practices by asking open questions about the principles, practices and200

guidelines that the practitioners had followed or found useful (or not) in their

work. Our motivation for these open questions were to discover new challenges

and practices that have not been previously reported in the literature. We fur-

ther asked about how much effort was usually put into architecture design and

what kind of backgrounds the architects had, as these were issues discovered in205

the SLR.

Phase 4: Themes. Based on our SLR, we identified gaps in the literature re-

lated to architecting in GSD. As shown in our conceptual model in Figure 3,

there are a variety of challenges for which there were no answers found in the

literature. Further, where the practices do address the challenges, they often210

9

Page 10: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Tab

le1:

Inte

rvie

wee

s’b

ack

gro

un

ds

AB

CD

EF

G

Number

of

partici-

pants

11

13

31

3

Field

of

com

pany

Pow

er/

Ele

ctri

cal

au

tom

ati

on

Soft

ware

De-

vel

op

men

tIT

Con

sult

-in

g/

Soft

-w

are

Dev

el-

op

men

t

Soft

ware

de-

sign

Soft

ware

de-

vel

op

men

tM

inin

g/

ma-

chin

ery

an

din

form

ati

on

syst

ems

Tel

ecom

-m

un

icati

on

s

Size

of

com

pany

(em

ploy-

ees)

500

000

30+

100

50-6

01000

35

000

100

000

Size

of

IT/Software

Devel-

opm

ent

section

Most

act

iv-

itie

sin

volv

esw

20+

30

90%

70%

100

30%

Numberof

site

s3

23

43-5

2-5

3-4

,2-5

,12

Numberof

countries

42

44

3-5

52-3

,2-5

,9

Countries

US

A,

IT,

INF

I,P

KN

L,H

R,F

R,

SA

FI,

VN

,D

E,

JP

IE,

FI,

IN,

PL

,R

O,

AR

IN,

FI,

SE

,N

L,

US

AF

I,C

N,

IN,

PH

,R

O,

PL

,D

E,

US

A,

FR

,P

T

10

Page 11: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

mirror the challenge. Thus, we had identified a need to focus on the gaps and is-

sues discovered in the SLR to find out how challenges are addressed in practice.

Also, through these open questions we were in a good position to uncover new

challenges not yet found in the literature. We hence utilized our concern frame-

work to create detailed questions around the themes where we found significant215

challenges in the literature. The themes are as follows:

1. Practices and design agreements (including well-defined interfaces)

2. Aligning software architecture, work structure and resources

3. Communication and lack of awareness between sites

4. Identifying dependencies220

5. Creation of and sharing architectural artefacts

6. Quality assurance

7. Design compliance

3.3. Analysis

The interview recordings were transcribed (and translated into English,225

where necessary), by an independent transcribing and translator company. Due

to the interview questions’ design, conventional content analysis seemed unsuit-

able as an analysis technique. As we had very specific themes in Phase 4 of

the interview, we would unsurprisingly have found recurring words and phrases

repeating the wording of the themes. Because of this, we did not count word230

frequencies, and instead opted for a form of thematic analysis [36, 37, 38] ac-

companied by memoing [39, 40]. The analysis and validation process is depicted

in Figure 2.

When coding the transcripts, the codes “practice” and “challenge” were pre-

determined, but other codes were generated based on the material resulting in235

35 different codes. After creating codes, we went through the material again

creating memos, based on which 18 higher level themes were found. A com-

bination of the coding and memo themes was then used to extract concerns,

formulated as practices and challenges.

11

Page 12: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

We produced a three-level challenge-practice framework containing 26 in-240

dividual concerns related to practices and 23 individual concerns related to

challenges. The framework was validated so that a set of 10 quotes from the

interviews (for both challenges and practices separately) were given to two re-

searchers, and these quotes were mapped to the challenges and practices at all

three levels. The validation process resulted in two major revisions to the frame-245

work. After each revision the framework was revalidated. In the final version

there are 22 concerns related to challenges and 17 concerns related to prac-

tices. We will present the framework in detail in Section 5. The concerns are

mapped to higher level themes together with practices and challenges found in

our SLR to provide a combined framework and model on software architecting250

in GSD. We arranged all the concerns in the SLR together with the concerns

found in this study under a new set of practices and challenges, finding eight of

each. Practices were then mapped to challenges and the conceptual model was

revised, portraying combined knowledge from the literature and our empirical

study. All stages were done so that two researchers individually performed the255

analysis, revised until agreement was reached, which was further validated by a

third researcher.

Coding

Memoing

Extractingconcerns

35 codes

18 themes

26 practices

23 challenges

Validation Revisions 17 practices22 challenges

ComplementSLR framework

Figure 2: Analysis and validation process

4. Architecting in Distributed Software Development Projects

4.1. General views on GSD and Software Development Practices

We began our interviews by enquiring about how distributed development is260

carried out in the companies. To understand the operating environment dictat-

ing architecting practices, we wanted to know what kind of software processes

12

Page 13: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

were followed, what were the drivers behind distributing development, and what

kind of issues the practitioners had found with the distributed setting in general.

We have collected answers to such background questions in Table 2. We have265

condensed some repeating answers for the last question due to space as follows:

• COMM: How to handle communication

• CULT: How to handle cultural differences

• TIME: How to handle different time zones

Firstly, we explored experiences based on different temporal distances be-270

tween sites. In company B the time difference of 4-5 hours was not considered

to be a problem. However, with company E, all interviewees agreed that there

were problems, even though time difference between some sites was less (2 hours)

and about the same (5 hours) as other sites. Most interestingly, in company G

different interviewees had varying views on the effect of time differences. While275

G1 did not work with more or different sites than G2, he had experienced se-

vere difficulties, while G2 did not consider any real problems. Further, G3 was

working with the most number of sites, with expectedly the biggest time zone

challenges, and the problem did not seem as significant.

Secondly, as expected, the dominant reason for distributing development is280

to save costs. However, the second biggest reason for the distribution is access

to resources. In some cases this appeared to be acquisition of resources at a

specific location; in others the companies had bought a smaller local company

to gain access to a required resource.

Thirdly, we note that all the companies are using or at least attempting to285

use some variant of Scrum. The level of how strictly Scrum is applied varies, and

in some cases there were distinct elements of the waterfall process still apparent.

Finally, how distribution is considered in the process varies significantly. In

some cases there are clear implications that the design process makes allowances

for distribution of development and maintenance, but in other cases only prac-290

tical arrangements with regard to communication and meetings are considered.

13

Page 14: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Tab

le2:

Conte

xt

for

Dis

trib

ute

dA

rch

itec

tin

gA

BC

DE

FG

Nu

mb

erof

par-

tici

pants

11

13

31

3

Com

mon

lan

-gu

age

No

share

dla

n-

gu

age

En

glish

use

dE

nglish

use

dE

nglish

main

lyu

sed

,p

rob

lem

sw

ith

Asi

an

cou

ntr

ies

En

glish

use

dE

nglish

use

dE

nglish

use

d

Eff

ect

of

tim

ed

iffer

ence

Issu

esfo

un

d,

requ

ires

good

man

agem

ent

Not

sign

ifica

nt,

4-5

hou

rsT

ime

diff

eren

ceto

US

Are

qu

ires

man

agem

ent

Pro

ble

mof

vary

ing

level

bet

wee

nsi

tes

Som

ep

rob

lem

sare

exp

erie

nce

d3

hou

rsti

me

diff

eren

ce,

not

ap

rob

lem

Ser

iou

sp

rob

-le

ms

/N

ot

ab

igp

rob

lem

/D

oes

have

an

effec

t,re

qu

ires

flex

ibilit

yR

easo

ns

for

GS

DC

ost

Exp

erti

se,

cost

Tale

nt,

cost

Com

pany

ideo

l-ogy

Cost

,acc

ess

top

eop

leC

ost

Cost

an

dfi

eld

of

bu

sin

ess

Use

dso

ftw

are

pro

cess

Agile

met

hod

sS

cru

m-l

ike

Scr

um

Scr

um

der

iva-

tive

Scr

um

Scr

um

-lik

eS

cru

m-l

ike

Isd

istr

ibu

tion

con

sid

ered

inth

ep

roce

ss?

Yes

,su

b-a

reas

per

site

Yes

,in

main

te-

nan

cere

spon

si-

bilit

yan

dco

m-

mu

nic

ati

on

Yes

inm

eeti

ng

arr

an

gem

ents

,oth

erw

ise

no

Yes

,b

asi

cas-

sum

pti

on

Yes

,re

sou

rces

are

con

sid

ered

Part

ially

yes

Yes

ind

evel

op

-m

ent

task

s/

com

mu

nic

ati

on

Per

ceiv

edeff

ort

for

arc

hit

ecti

ng

Sev

eral

yea

rs25%

of

dev

elop

-m

ent

tim

e15-2

0%

of

dev

el-

op

men

tti

me

1fu

ll-t

ime

arc

hi-

tect

Fu

ll-t

ime

arc

hi-

tect

team

Alo

tof

effort

,in

tern

al

com

pe-

titi

on

Not

enou

gh

tim

e,or

tim

esp

ent

bu

tallo-

cate

dto

wro

ng

thin

gs

Big

ges

tch

al-

len

ge

inG

SD

How

toes

tab

lish

tru

stw

ith

inan

db

etw

een

team

s

CO

MM

,C

ULT

TIM

EC

OM

M,

CU

LT

,in

stab

ilit

yC

OM

M,

TIM

E,

CU

LT

,d

ealin

gw

ith

hid

den

org

an

izati

on

an

dvary

ing

stru

ctu

res

TIM

E,

CO

MM

CU

LT

,C

OM

M,

How

toh

an

dle

lost

info

rmati

on

an

dorg

an

ize

join

tm

eeti

ngs

14

Page 15: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

4.2. Architecting

4.2.1. Role of Architect

We proceeded by asking about the role of an architect in the companies

and how architecture design fits into the development processes. The answers295

are presented in Table 3. Firstly, architecting work is handled quite differently

across the participating companies. Several companies have a practice where a

multi-site architect team or even several teams lead the work, with the architect

integrated into development teams to involve them in the daily work (and to

also ensure architectural knowledge distribution to all developers). However, the300

other extreme is that there is one chief architect or a CTO having the final say

on decisions. We observe that cases with one chief architect are quite different:

Company D is extremely distributed (4 main office sites and a number of experts

around the world), as the whole company is based on an ideology that there is

no need for people to work in the same premises in order to get the job done.305

Companies B and F, in turn, have the least number of sites (only 2 active sites

currently) and the lowest number of different teams involved in development.

Secondly, there is near consensus relating to the responsibilities of an archi-

tect - so the role appears to be the same regardless of company size and field of

business. The software architect is expected to be the person who combines dif-310

ferent stakeholders’ concerns and manages design decisions at large. However,

quite radical differences are found particularly within company (G), where G1

considers that the architect’s responsibility is to maintain interface documen-

tation, while G3 views the architect as a negotiator. This would imply that in

large organizations where there might be architecting at various levels (as in315

G, where there are different level architects for feature, component and product

line), the experience of an architect’s role and responsibilities is more subjective.

Finally, there seem to be two main practices on how to fit architecture design

into the (varying) agile practices. One option is to really do agile architecting

so that architecture design evolves as development progresses. In this case,320

architectural tasks are considered in a similar way to other development tasks

15

Page 16: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

in the Scrum framework. The other option is to have “sprint zero”, where the

main portion of the architecture is designed before development actually starts.

This is often required by the customer.

4.2.2. Issues and Recommendations325

We investigated the issues which occur when doing architectural design in

practice. We queried how issues are solved by asking open questions on what

the interviewees considered to be the biggest issues and the most important

things to consider when making design decisions in distributed development.

Issues330

In Table 2 we listed the most important challenges which participants faced

in GSD in general. However, we need to dig deeper to discover the most im-

portant issues affecting architecting work and the ability to design high-quality

software in a distributed environment.

The interviewees raised above all the following issues:335

• Keeping architecture compliant with organization structure

• Handling instability

• Difficulties due to distances

• Understanding architectural decisions

• Achieving modularity and separation of concerns340

• Lacking knowledge management practices

• Deviating from processes

Compliance with organization structure is directly what Conway’s law warns

about. We illuminate this challenge with a quote from a practitioner ”Struc-

ture, structures as well. Its management structures sometimes, and, you know,345

people you are working with, they are working on the same piece of software or

16

Page 17: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Tab

le3:

Arc

hit

ect’

sro

leA

BC

DE

FG

Nu

mb

erof

par-

tici

pants

11

13

31

3

Wh

ois

inch

arg

eof

dec

isio

ns

Arc

hit

ect

team

.M

emb

ers

from

all

site

s.

CT

O,

wh

ole

ad

sa

dec

entr

alize

dte

am

of

arc

hi-

tect

s,ea

chin

charg

eof

on

esu

b-a

rea.

Tw

oce

ntr

al

arc

hit

ects

inch

arg

eof

wh

ole

pro

du

ct,

on

earc

hit

ect

rep

re-

senta

tive

inea

chd

evel

op

erte

am

.

On

eC

hie

far-

chit

ect

for

each

pro

ject

Mu

lti-

site

arc

hi-

tect

team

s,an

din

div

idu

al

arc

hi-

tect

sfr

om

the

team

s.O

ne

team

per

sub

-are

a.

On

ech

ief

arc

hi-

tect

Arc

hit

ect

team

,on

ere

pre

senta

-ti

ve

from

each

site

,d

iffer

ent

level

arc

hit

ects

,ch

ief

arc

hit

ect

for

each

rele

ase

.W

hat

are

the

re-

spon

sib

ilit

ies

of

an

arc

hit

ect

N/A

Res

pon

sib

lefo

rth

ed

esig

nof

thei

row

nsu

b-

are

as,

fin

din

gou

tw

hat

shou

ldb

ed

on

e,m

akin

ga

pre

lim

inary

pla

non

how

shou

ldb

ed

on

e.

Arc

hit

ectu

ral

dec

isio

ns,

wei

gh-

ing

the

bala

nce

of

trad

e-off

s,d

iffer

ent

stake-

hold

erre

qu

ire-

men

ts.

Safe

-gu

ard

ing

the

imp

lem

enta

tion

,co

mm

un

icati

on

.

Ch

ief

arc

hit

ect

isre

spon

sib

lefo

rth

eb

igp

ictu

re

Lin

kage

be-

twee

nco

mpany

goals

an

dh

ow

soft

ware

isd

evel

op

ed.

/D

oin

gre

searc

hon

op

tion

s.E

s-ti

mati

ng

risk

s.R

ever

sabil

ity

Ch

op

the

pro

d-

uct

into

the

right

kin

dof

div

isio

ns,

clea

ran

dre

usa

ble

part

s.

Pre

pari

ng

inte

r-fa

ced

ocu

men

tsan

den

suri

ng

fun

ctio

nality

.K

eep

ing

peo

ple

info

rmed

,en

-ab

lep

eop

leto

make

the

right

dec

isio

ns.

How

isarc

hit

ec-

ture

des

ign

fit-

ted

toA

gile

pro

-ce

sses

N/A

Arc

hit

ectu

red

esig

ned

bef

ore

pro

ject

start

s.

Tre

ate

das

norm

al

dev

el-

op

men

tw

ork

,arc

hit

ectu

ral

task

sare

tick

ets

for

the

PO

top

riori

tize

an

dd

istr

ibu

te.

Pro

ject

start

edw

ith

am

onth

lon

gd

esig

np

e-ri

od

,h

igh

-lev

elarc

hit

ectu

rean

dp

roto

typ

ed

on

e.

Arc

hit

ectu

red

eliv

erab

les

for

each

spri

nt,

som

ed

esig

nb

efore

dev

elop

-m

ent.

Pro

du

ctis

agile,

agile

ar-

chit

ecti

ng

un

der

dis

cuss

ion

.

Pla

nis

toh

ave

arc

hit

ectu

rep

lan

ned

2-3

spri

nts

ah

ead

of

tim

e.D

oes

n’t

alw

ays

hap

pen

.

Dra

ft,

spec

ify,

rep

air

.D

esig

nin

terw

oven

init

erati

ve

work

.S

cru

mn

ot

org

an

izati

on

-w

ide.

Hig

her

level

arc

hi-

tect

ure

not

des

ign

edit

era-

tivel

y.

17

Page 18: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

same product, but they belong to the different, they are reporting to the different

editors”.

Adding to the challenge of keeping the architecture compliant with organi-

zation is the proneness to instability, which is particularly emphasized in dis-350

tributed software development. Instability manifests itself as changing team

structures, changing responsibilities between sites, changes in personnel and in

roles of existing personnel. Personnel changes easily lead to poor communica-

tion, as relevant communication is not reaching the correct targets anymore,

and key people are missing out on information that they should be receiving.355

Communication is further challenged by distance. Practical work suffers when

communication is delayed, there is insufficient technology for web meetings, and

when there are mismatches in how certain terms are understood between sites.

The latter was mentioned by one our interviewees: ”But of course, there are

misunderstandings all the time. That a software is ready and working means360

such different things in Asia and Finland.”.

Difficulties in communication also result in lower commitment. When the

developers at remote sites are not given the kind of responsibility they would

want, the tasks do not match their skills, or they are not included in the meeting

where decisions are explained, they are less committed to the assigned work.365

The aforementioned problems in communication and practical work easily

leads to difficulties in understanding architectural decisions. This is evident

in two ways: people can have conflicting assumptions about the software, or

disagree about the choices behind the software being developed. What is most

alarming is that these conflicts may not be found before they have already370

caused errors in development. A practitioner discusses the issue on conflicting

assumptions: ”the geographical distance comes into play in that there are terribly

many things that are not said aloud, that people assume differently in different

countries and places, in relation to practices and all that, so those are difficult

to detect. Especially if you don’t meet in person, then they don’t really come to375

light.”. The effects of disagreements is identified in another example: ” simple

things like the separation of concerns, that you have the UI separately and that

18

Page 19: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

we don’t go making anything within the UI that is clearly on the logic side, and

these kinds of general practices. But the problem here has been,...that you have

to keep an almost daily watch on things, that it feels like they sort of see the issue380

very differently in India.”. This kind of experience shows how arguing over the

architecture design, or worse, deliberately implementing the software so that it

does not concur with the design, can bring about serious problems and further

emphasize the difficulties on separating concern and achieving modularity.

Understanding architectural decisions can be aided by distributing knowl-385

edge on architectural artefacts across sites. However, in GSD, simple sharing

of artefacts is not enough, as issues arise not just from lack of access, but also

from a lack of unanimous view on what should be shared. This issue is most

notable in documentation. Different sites may have very different backgrounds

in education, and are accustomed to different notations and levels of detail in390

documentation. When there is a mismatch between how one site provides doc-

umentation and what kind of documentation another site expects, this may

result in delays, misunderstandings and even errors in code, as mentioned by a

practitioner: ”What is most certainly an issue, in the matter of intense debate,

its the level of definition that should be provided by architecture.”.395

Finally, practitioners found that even agile processes (which were used in

some way in all the interviewed companies) were sometimes too strict for daily

development work. This may well be a result of conflict caused by an increased

need for coordination in distributed processes while, when using agile proceses,

teams are intended to be self-organizing. For example, developers in teams feel400

that not every small detail needs to go through the defined hoops. This becomes

a problem when developers start to increasingly ignore the defined processes,

ultimately leading to difficulties in task synchronization and mismatch in code

and design. ”if there is a situation that something has happened over there,

that they’ve done something that’s a bit different from the original plan, the end405

result isn’t quite what we’d hoped for originally, and then we make a request

that they’d start to change it back, then it’s... Then they’ve just moved the task

forwards and forwards and forwards despite the request” .

19

Page 20: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Recommendations

Through this research, we have identified concrete recommendations regard-410

ing considerations in architectural design. We have divided them into two cat-

egories: Architecting practices and Task allocation paractices. Architecting

practices are:

• Determine driving architecture style

• Determine platform to base design on415

• Focus on requirements

• Consider existing product and its constraints

• Create a proof of concept

• Create demonstrations

• Create microservices to separate development items420

• Create product boundaries based on APIs

• Apply continuous integration

These recommendations have stemmed from three different drivers. First, there

needs to be a commonly known baseline that forms the backbone of the ar-

chitecture. This would include determining the architecture style or platform,425

considering requirements and constraints and creating quick proofs of concept

and demos to ensure common understanding. Secondly, there is a need to sep-

arate development items so that dependencies are de-coupled, thus alleviating

the problems of distributed development – solutions to these are found in mi-

croservices and API boundaries. Finally, continuous integration is suggested as430

a tested solution to ensure the synchronization of development of distributed

components.

The architects then also had advice which fell more into the realm of task

division once the architecture already exists:

20

Page 21: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

• Base task division on layers435

• Consider maintenance responsibilities as a driver for task division

• Keep development of core product at one site

• Avoid leakage of site-specific functionalities between sites

• Have clearly separated responsibilities to different sites

The common ideology, unsurprisingly, is that clear boundaries should iden-440

tify how tasks are divided. The best place to draw the line between two sites

depends on the product and the architecture - in some cases it is layers, in some

casesit is who will be doing maintenance, and in some cases it is the structure

of the product. The most notable fact is, however, that while we asked for most

important factors in design decisions, over a third of the answers actually con-445

sidered the situation where the architecture exists and tasks need to be divided

based on it.

Additionally, we were able to elicit some recommendations on managing the

architectural design process in general:

• Establish practices to enhance knowledge distribution across sites450

• Have clear roles to aid in governance

• Align architecture and organization

To truly facilitate distributed development, one should not remain content

with simply having mechanisms in place that enable knowledge distribution,

but rather create a working culture where the need for increased communication455

between sites is recognized and even enforced. One mechanism to accomplish

this is to engage developers from all sites into the design work, as discussed

along with our findings on the role of architect.

Practitioners found that engaging developers increased their understanding

of architectural decisions and commitment A practitioner discussed how they460

have utilized developer engagement: ”the team participates in the architecture

21

Page 22: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

work so that its a way to get the team to commit, them taking part in the planning

of the architecture.”. Practitioners also found direct benefits from using Agile

methods particularly in the distributed context. For example, daily or weekly

Scrums increased communication, which in turn led to fewer mismatches in465

assumptions.

In addition to engaging developers, managing the design can be aided by

assigning specific individuals to distinct tasks and having clearly defined re-

sponsibilities. In each of the companies where we interviewed, they had either a

team or a person responsible for architectural work. This is a significant discov-470

ery, as all companies also applied Scrum, where the assumption is that teams are

self-organizing and thus even architectural work could be done independently

within teams. However, in our study, practitioners strongly supported having

someone with the final say on architectural decisions. Further detailing the ar-

chitect’s role, it was advised that architects handle all relevant communication475

between different stakeholders. Additionally, there should be a clearly named

person in charge of managing knowledge distribution, architectural work and

prioritization. Often it was the case that people assumed that someone (a team

leader or just some active individuals) would take care of knowledge manage-

ment, and then it was left unclear whether actually all relevant individuals had480

been informed.

Finally, our material further confirms Conway’s law, as practitioners high-

light the need to align the organization with the software architecture. The

architecture may act as a driver, and resources are acquired based on what

kind of skills and how much workforce is needed to implement the designed ar-485

chitecture under the given schedule. Vice versa, the organization may act as a

driver, and the architecture design is based on the skills and other resources cur-

rently available in the organization. These two approaches together illustrate

the mixed responses we received in our study. One practitioner when asked,

whether the architecture drives the organization or the organization drives the490

architecture, stated: ”It’s an evolution”.

22

Page 23: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

5. Framework for Software Architecture Design

As discussed in Section 3, we elicited detailed concerns from the interview

material. Concerns were linked to either challenges faced by practitioners or

practices they recommended. To create a framework for software architecting in495

the context of global software development, we have combined our findings with

the concerns found previously in our SLR, to provide the most complete set of

recommendations available. We further mapped the practices to challenges and

refined the conceptual model to represent architecting in GSD. In the following

we will first present the updated model of practical architecting and mapping of500

practices to challenges. We will then discuss the found practices and challenges

in more detail and list the associated concerns. The set of concrete concerns

may be used by practitioners as a way to spot possible challenges and prepare

them to solve challenges already present in projects.

5.1. Conceptual Model505

We mapped the presented challenges and practices to a conceptual model,

using the SLR-based model as a baseline. The conceptual model for architecting

in GSD is given in Figure 3, using the same notation as for the SLR-based model

(presented in Sect. 2.2). Each challenge is given the ID tag ”C” with a running

number, so each challenge has a unique ID number. Similarly, each practice is510

given the ID tag ”P” with a running number, so each practice has a unique ID

number. As combining the results from the empirical study with those found in

the SLR lead to a more complex set of practices and challenges, the conceptual

model has also been modified. Further, how practices map to challenges is more

complex. Practices that are under the same theme as a corresponding challenge515

in the model are natural solutions to that challenge. However, practices that

are associated with challenges via relationships in the model can also be helpful.

The interpretation of relationships is further illustrated in Figure 4. For the sake

of clarity the complete mapping of practices to challenges is also given in Table

4.520

23

Page 24: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

dictates protocols for

induce

is reponsible for

may aid

<<Design decisions andProject management>>

Role

<<Design decisions andProject management>>

Architect

<<Design decisions and Projectmanagement>>

Design Process

<<Project management>>

Project Management <<Design decisions and Projectmanagement>>

Ways of Working

<<Design decisions>>

Design Practices

<<Design decisions>>

Design Decisions

Apply design practices for GSD(P2)

<<Project management>>

Organization

<<Project management>>

Resources

<< Design decisions and Projectmanagement>>

Architectural KnowledgeManagement

<<Design decisions andProject management>>

QualityManagement

<<Design decisions andProject management>>

ChangeManagement

<<Design decisions andProject management>>

Task Allocation

<<Design decisions>>

Modularity

affects

Standardize a set of architecturalpractices across sites (P5)

Poor knowledgemanagement betweensites (C2)

Lack of control overquality (C3)

Problems with design decisionsand dependencies (C5)

Dictates

Determines tasks

Influence

has

Influences

C1...Cn: Challenges (issues)

<<core concept>>Theme name

: Strong relationship betweenthemes

: Relationship depends onorganization

: Theme with core conceptunder which it belongs

P1...Pn: Practices (recommended)Key:

: Inheritance - subthemederived from higher-leveltheme; subtheme is part ofhigher-level theme

<<Design decisions>>

Coupling

can be calculated through

Mismatch between organizationand architecture (C1)Align architecture to organization(P6)

Communicate decisions toall stakeholders (P1)

Lack of governance andconformance to processes(C7)Implement softwaredevelopment governance forGSD (P3)

Insufficiently defined or lack ofconformance to practices (C4)

Issues with distributedtask allocation (C6)Implementarchitecture-basedtask allocation (P4)

<<Project management>>

Structure

Difficulties in managingpeople and soft issues(C8)

Use various modeling techniques(P8)

Do continuous improvement(P7)

determines

can affect

Figure 3: Model for Practical Architecting in GSD

Table 4: Mapping of Practices to ChallengesC1 C2 C3 C4 C5 C6 C7 C8

P1 xP2 x x xP3 x x x xP4 xP5 x x xP6 x xP7 xP8 x x

The model we published through our SLR has now evolved by including the

empirical study described in this paper, and we identify particular differences.

Firstly, we added new relationships between Project Management and Role (of

Architect), and Role and Architect, as these concepts were highlighted during

the study. Secondly, we modified the model so that Task Allocation was placed525

24

Page 25: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

<<Design decisions andProject management>>

QualityManagement

Lack of control overquality (C3)

<<Project management>>

Project Management<<Design decisions and Project

management>>Ways of Working

Standardize a set of architecturalpractices across sites (P5)

Lack of governance andconformance to processes(C7)Implement softwaredevelopment governance forGSD (P3)

Insufficiently defined or lack ofconformance to practices (C4)

determines

<<Design decisions and Projectmanagement>>

Design Process

Mismatch between organizationand architecture (C1)Align architecture to organization(P6)

Quality Management”inherits” Practices from

Ways of Working, i.e.,working practices for Ways ofWorking (and by extension – practices for Design Process

and Project Management) willaid also in challenges related

to Quality Management.

C1...Cn: Challenges (issues)

<<core concept>>Theme name

: Strong relationship betweenthemes

: Relationship depends onorganization

: Theme with core conceptunder which it belongs

P1...Pn: Practices (recommended)Key:

: Inheritance - subthemederived from higher-leveltheme; subtheme is part ofhigher-level theme

: Callout explains relationshipsbetween Practices andChallenges throughassociations

Ways of Working”inherits” Practices

from Design Process,i.e., working practicesfor Design Process willaid also in challenges

related to Ways ofWorking

Project Management isassociated strongly with Ways

of Working – ProjectManagement determines the

Ways of Working. Workingpractices related to Project

Management will thus aid inhandling challenges related to

Ways of Working

Relation

Figure 4: Illustration of relationships

as a sub-theme under Ways of Working instead of appearing on its own as before.

Moreover, the relationships between Task Allocation and other concepts were

modified to better reflect current practices. Thirdly, the relationship between

Design Practices and Design Decisions has been modified so that now Design

Decisions are part of Design Practices. Finally, the relationship between Project530

Management and Ways of Working was fortified to be a clear association instead

of depending on the Organization. Further, the relationship between Ways of

Working and Design Practices now works both ways.

The most significant updates to the SLR-derived model are thus the identifi-

cation of increased dependencies on the architect’s role and how task allocation535

fits into the model. In our empirical study we found that the role of architect is

25

Page 26: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

dictated by project management practices. Organizing architecting work to one

chief architect, architects on several levels or distributing the work to a team

of architects, perhaps involved with development as well, has a large impact to

what architecting means in each particular case. Thus, the role determines the540

tasks in which an architect is involved. Depending on the role, an architect may

be involved in practical work regarding architectural decisions and participate

in implementing them, or act more as a mediator between stakeholders and

lower-level architects. Task allocation, in turn, was found to be a part of Ways

of Working, defined by Project Management practices. Ways of Working (and545

by extension, Task Allocation), may influence Design Practices. This depends

on the state of evolution of the organization and the architecture. As in the

previous model, Task Allocation influences on Resources and Design Decisions,

and vice versa.

5.2. Tackling Challenges550

The elicited practices and challenges with their related concerns are given in

Tables 5 - 11. The concerns related to each Practice and Challenge are labeled

with the corresponding ID, followed by ”co” (as in concern), and a running

number. Additionally, each concern is given a postfix of ”slr” if it was derived

in our SLR or ”emp” if it was a result of the empirical study presented in this555

paper. Challenges are presented via themes found in the conceptual model,

and we will discuss how they can be alleviated via the associated Practices. In

the tables, we present those Practices that are placed under the same thematic

concept as the Challenge(s) in question. Please note, though, that as illustrated

by Figures 3 and 4 and Table 4, that Practices under different thematic concepts560

can also aid in answering Challenges.

5.2.1. Design Process and Considering Quality

We combine Challenges for Design Process and Quality Management, as the

Practice for Design Process is the one most closely linked to Quality Manage-

ment.565

26

Page 27: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Table 5: Design Process and Quality Management

ID Challenge/Practice

Concerns

C1

Challenge:Mismatchbetweenorganizationalstructure andarchitecturaldesign anddifficulties indealing withinstability

Lack of alignment between architectural decisionsto organization structure and not reflecting archi-tectural changes to organization (C1 co1 slr)Challenges brought by misalignment between or-ganization and architecture (C1 co2 emp)Challenges brought by personnel changes(C1 co3 emp)Difficulties ensuring compliance of modular designthroughout the lifecycle and changes in organiza-tion (C1 co4 slr)Inability to retain experts from all domains re-quired for change implementation (C1 co5 slr)

C3

Challenge:Lack of controlover softwarequality

Delegating design decisions to local team deterio-rates quality (C3 co1 slr)Insufficient quality management (C3 co2 slr)Decentralized data and state management lead toinferior quality (C3 co3 slr)Insufficient methods for reviewing architecture de-sign against quality demands (C3 co4 emp)Insufficient automation for testing, a lot of manualtests (C3 co5 emp)Insufficient recording of quality requirements.(C3 co6 emp)

P6

Practice: Alignarchitecturewithorganizationarrangement

Include business goals in design (P6 co1 slr)

Base architectural decisions on available resources(P6 co2 emp)

Establish quality management practices(P6 co3 emp)

During the Design Process the architect should carefully consider matching

the architecture with organizational structure (C1), as this will significantly aid

in further decisions and particularly task allocation. An additional aspect to this

challenge, however, is that organizations are seldom fixed, but their structure

is unstable. The concerns brought forward by the practitioners (C1 co2 emp,570

C1 co3 emp) are very similar to those already found in the literature - matching

the architecture and organization is found difficult.

27

Page 28: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

The Quality Management related challenge (C3) highlights the need for

proper quality assurance. While we previously found some concerns related

to deteriorating quality (C3 co1 slr, C3 co3 slr) and general problems in qual-575

ity management (C3 co2 slr) in our SLR, new concerns were brought to light

by practitioners. First, architectural reviews, where quality is often considered,

are more difficult to arrange in a distributed setting (C3 co4 emp). However,

in distributed projects such reviews would be even more beneficial than in a

collocated one, as our practitioners reported concerns on insufficient recording580

of quality requirements (C3 co6 emp). Finally, different sites may have different

aptitudes for running automated tests, which is considered one of the key issues

in quality assurance by our practitioners (C3 co5 emp). These concerns are also

addressed as part of P6 – which raises quality management practices as a sep-

arate concern (P6 co3 emp) when aligning architecture and organization. The585

detailed practices found in our empirical study mention arranging architectural

reviews and having good testing coverage.

We recommend aligning architecture with organizational arrangement (P6)

in addition to purely aligning it with the organizational structure. Organiza-

tional arrangement means the processes, practices and resources that are set up590

in the organization at large. Our practitioners particularly highlight the need to

base decisions on available resources (P6 co2 emp) – here resources means the

developers, the effort they can put into their work, the skills they have, what

kind of technologies they have experience on, and where they are located. It

also means access to hardware, software licenses, and other necessary resources.595

However, as demonstrated, changes in personnel (C1 co3 emp) will easily break

this alignment, and thus the architecture should be flexible enough not to de-

pend on individuals with the potential of creating bottlenecks.

Design Process combines Project Management and the actual Design De-

cisions. Thus, while well-managed Practices from above will reflect well also600

on lower-level concepts (as illustrated in our conceptual model in Figure 3 and

the relationships in Figure 4), in this case Design Process will benefit when the

parts making up this high-level concept are in order. Concerns related to Design

28

Page 29: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Practices as detailed in P2 (Table 8)will further aid in aligning organization and

architecture, and concerns related to P3 (Table 10) and P5 (Table 7) will help605

improve quality.

5.2.2. Handling Architectural Knowledge Management

Architectural knowledge management (AKM) is a major challenge, as dis-

tance makes traditional communication difficult or even impossible. Poor AKM

(C2) is thus quite often experienced and demonstrates itself in many ways.610

Proper knowledge management entails ensuring that all sites have access to the

documentation they need to properly carry out their tasks and that such docu-

mentation is understood (highlighted by concerns C2 co1 – C2 co6). There are

often various documentation repositories, wikis, and tools where documentation

is added. However, in a distributed setting it easily becomes unclear who has615

access to all these systems, who actually accesses them, and if someone does

access the documents, is the system actually structured so that documents can

be found when needed. Further, when projects are distributed, and thus project

management is also distributed, communication across project boundaries be-

comes further challenging (C2 co11 emp).620

In modern software development it is common to rely on shared libraries and

components. Thus, when the maintenance responsibilities of such components

are distributed across a variety of projects, and management of those projects,

in turn, is distributed across the globe, there is an increased threat that shared

libraries are not kept up to date or their ownership becomes unclear, leading to625

a variety of problems when developers unnecessarily attempt to duplicate their

functionality (C2 co12 slr).

One concern from our empirical study draws attention to disagreement in

design choices (C2 co7 emp), which closely relates to insufficient understanding

or incorrect assumptions on said choices (C2 co8 emp, C2 co9 slr, C2 co10 slr).630

While disagreeing and with it raising issues about potential drawbacks of cer-

tain choices is a natural part of architecting, the concern here is specifically

highlighted in the distributed setting due to difficulties in communication and

29

Page 30: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Table 6: Architectural Knowledge Management

ID Challenge/Practice

Concerns

C2

Challenge:Poorarchitecturalknowledgemanagementbetween sites

Difficulties in effective creation and sharing of ar-chitectural artifacts (C2 co1 slr)Difficulties in maintaining a common view of theproject (C2 co2 slr)Inconsistent usage of electronic systems for knowl-edge sharing due to preference of social networks(C2 co3 slr)Insufficient architectural documentation(C2 co4 slr)Insufficient documentation practices(C2 co5 emp)Insufficient knowledge management practicesbetween projects and across organization(C2 co6 emp)Disagreement in design choices (C2 co7 emp)Problems recognizing and caused by conflicting as-sumptions on software (C2 co8 emp)Insufficient understanding of architectural deci-sions in teams and other stakeholder groups (C2co9 slr)Incorrect assumptions made during design(C2 co10 slr)Communication issues due to distances(C2 co11 emp)Unclear ownership of architectural elements(C2 co12 slr)

P1

Practice:Communicatearchitecturaldecisions to allstakeholders

Establish practices enhancing communication andknowledge distribution (P1 co1 emp)Architects should handle communication withdifferent stakeholders, considering stakeholders’background (P1 co2 emp)Communicate architectural artefacts and practicesclearly to all sites (P1 co3 slr)Arrange collocated activities for architecture teamto promote awareness (P1 co4 slr)Establish a team of architects for handling com-munication between different stakeholders andteams (P1 co5 slr)Ensure understandable and accessible documenta-tion for all parties (P1 co6 emp)Maintain a single repository for architectural arte-facts accessible to all (P1 co7 slr)

30

Page 31: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

not having enough access to knowledge. When there are limited possibilities

for developers at remote sites to attend meetings and discuss the design with635

the architect, they are less likely to understand all the constraints and drivers

behind the decisions, and thus end up questioning the selected solutions.

To handle these challenges we recommend communication of architectural

decisions to all stakeholders (P1) - a practice that should be self-evident to ca-

pable architects. However, the more detailed concerns may help notice gaps640

in how communication is handled. It is not enough to simply put information

out there, but architects (or a team of architects responsible for communication

(P1 co5 slr)) should also consider the stakeholders’ background and adjust their

method of communication accordingly (P1 co2 emp), ensuring that documenta-

tion is not just available, but also understandable and accessible (P1 co2 emp).645

In general, communication practices should not just exist to allow communica-

tion, but should be designed in a way that actually enhances communication

(P1 co1 emp), such as visiting remote sites and having common fixed meetings.

Concerns related to software development governance (P3, see Table 10) may

also aid in improving knowledge management, particularly those recommend-650

ing having a representative architect on each site and engaging developers in

architectural work. Further, utilizing various modeling techniques as detailed

by P8 (see Table 8) may improve knowledge management via an increased level

of understanding, as stakeholders with different backgrounds may find some

diagrams more approachable than others.655

5.2.3. Ways of Working

How and what kind of practices are established in design process and de-

velopment are defined in Ways of Working. In our SLR we discovered several

concerns related to insufficiently defined practices or how practices were followed

across sites (C4). To address this is to have a standardized set of practices across660

sites (P5). This essentially means that all sites and persons involved in archi-

tecting work should have a common agreement on what particular practices and

drivers are applied in design (P5 co1 slr), which is not a given in distributed

31

Page 32: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Table 7: Shared PracticesID Challenge/

PracticeConcerns

C4

Challenge:Insufficientlydefined or lackof conformanceto sharedpractices acrosssites

Inconsistent versioning (C4 co1 slr)Insufficient interface specifications (C4 co2 slr)Ignorance of or incorrect use of principles, rulesand guidelines for architectural design and knowl-edge management (C4 co3 slr)Lack of stability in architecture leads to difficul-ties in applying design rules and dividing tasks(C4 co4 slr)A lack of conformance to architectural specifica-tion (C4 co5 slr)

P5

Practice:Standardize aset ofarchitecturalpractices acrosslocations

Ensure that teams develop code based on commondesign agreements (P5 co1 slr)Use common architectural practices and ensurethey are well-defined (P5 co2 slr)Consider a service oriented approach (P5 co3 slr)Take advantage of agile methods (P5 co4 emp)Use prototyping (P5 co5 slr)Ensure fit to requirements (P5 co6 emp)

projects. However, in our empirical study we were able to find further solutions

to how related concerns could be handled. We discovered a concern related665

to ensuring fit to requirements (P5 co6 emp). Architecture design always be-

gins from eliciting functional and non-functional requirements, and creating the

architecture that answers to them. However, particularly when architecting is

distributed, if the design work is not well-coordinated, the original requirements

may easily fade into the background, resulting in compliance issues in the long670

run (C4 co5 slr). This may be aided by utilizing agile methods (P5 co4 emp)

- handling a smaller set of requirements at a given time and being able to

quickly adjust development work in an unstable organization will aid handling

compliance and communication issues, and can often help discovering misun-

derstandings more quickly.675

Ways of Working can be further improved by having solid design practices

particularly suitable for GSD (as detailed in P2, see Table 8), and by imple-

menting software development governance (P3, see Table 10), which is essential

32

Page 33: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

for Project Management, which in turn largely defines Ways of Working.

5.2.4. Architectural Design Decisions680

When architectural design is itself distributed or needs to consider distribu-

tion of subsequent development work, there are bound to be challenges. The

most notable ones relate to reaching viable decisions and handling dependen-

cies (C5). In addition to the most common concern of insufficient decoupling,

as strongly stressed in the literature (C5 co1 slr), practitioners note how the685

complexity of the architecture brings challenges to the design (C5 co2 emp).

The more complex a product in question, the more challenging the design is,

no matter how the project or organization are organized. However, complexity

is an even bigger risk if architecture work is spread over several sites, and a

distributed team needs to gain a common understanding of the solutions and690

choices to deal with the complexity.

While modularity and coupling were already identified as key concerns in

the SLR (C5 co1 slr, C5 co5 slr), in our empirical study such concerns were

complemented by challenges faced by the practitioners: finding entities in the

architecture between which interfaces can be designed (C5 co3 emp), and un-695

derstanding and eliminating dependencies (C5 co4 emp). Modularity is as big a

concern in collocated projects as it is in distributed projects, but as task alloca-

tion is critical for the success of distributed projects, and that, in turn, is highly

dependent on the modularity of the architecture, concerns related to modularity

should be highlighted.700

To address these challenges, we found recommendations on designing based

on practices particularly suitable for GSD. In more detail, we found several prac-

tical concerns related to modularity and separation of concerns in the architec-

ture (P2 co2 emp and P2 co4 emp). Our practitioners particularly stressed the

importance of locating dependencies within the architecture (P2 co5 emp), rec-705

ommending the utilization of checklists, illustrations, tools and feature-based

development. In a related practice concerning continuous improvement (P7),

the practitioners also stressed the possibilities of reuse (P7 co3 emp), which is

33

Page 34: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Table 8: Architectural Design Decisions

ID Challenge/Practice

Concerns

C5

Challenge:Problemsassociated witharchitecturaldesign decisionand identifyingdependencies

Insufficient decoupling, cross-component features(C5 co1 slr)Challenges brought by the complexity of software(C5 co2 emp)Difficulties defining logical entities and finding in-terface boundaries in architecture (C5 co3 emp)Insufficient or no methods for identifying, under-standing or preventing dependencies (between de-cisions, components or other software artefacts)within architecture (C5 co4 emp)Inability to recognize dependencies between or cre-ated by architectural decisions. (C5 co5 slr)Lack of time and schedule pressures affect archi-tectural decisions (C5 co6 emp)A lack of compliance to the business process(C5 co7 slr)

P2

Practice:Applyarchitecturaldesign practicesfor globalsoftwaredevelopment

Implement well-defined interfaces to increase mod-ularization and aid loose coupling (P2 co1 slr)Make interface design a priority (P2 co2 emp)Ensure components that will be dispersed to dis-tributed teams are loosely coupled or otherwiseplan component breakdown to independent mod-ules based on distribution of teams (P2 co3 slr)Strive for high modularity and separation of con-cerns (P2 co4 emp)Locate dependencies within architecture(P2 co5 emp)

P7Practice: Docontinuousimprovement

Do active research on new technologies and prac-tices (P7 co1 emp)Consider long-term effect of design choices(P7 co2 emp)Emphasize reuse (P7 co3 emp)

P8

Practice: Usevariousarchitectingmodelingtechniques

Use (call) graphs/matrices to depict and detectcoupling (P8 co1 slr)Use visualization of decisions/metrics (P8 co2 slr)Use collaborative modeling (P8 co3 slr)Use a variety of diagrams promote awareness(P8 co4 slr)Don’t over-rely on UML diagrams (P8 co5 slr)

34

Page 35: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

also easier if the design is modular. Considering the long-term effect of de-

sign choices (P7 co2 emp) stems from similar experiences – short-term choices710

may lead to difficult dependencies between technologies that will be difficult to

maintain. Finally, design can be aided by utilizing various architecting modeling

techniques (P8), as a variety of models may aid in understanding the decisions.

Additionally, design is aided by general architecting practices as given in P5

(see Table 7).715

5.2.5. Task Allocation

Table 9: Task AllocationID Challenge/

PracticeConcerns

C6

Challenge:Issues with taskallocation in adistributedsetting

Increased amount of effort with modifications in-volving several developers across different sites(C6 co1 slr)Increased needs for coordination when using ex-perts from different sites (C6 co2 slr)Difficulties evaluating work input due to distribu-tion (C6 co3 emp)Difficulties in synchronizing tasks (C6 co4 emp)Insufficient matching of code to available resources(C6 co5 slr)Difficulties with correctly identifying dependenciesbetween work units and thus assigning work todistributed teams (C6 co6 slr)Insufficient prioritization rules (C6 co7 slr)

P4

Practice:Implementarchitecture-based taskallocation inglobal softwaredevelopment

Identify where the domain expertise lies and allo-cate tasks accordingly (P4 co1 slr)Retain tightly coupled work items at one site(P4 co2 slr)Acquire and arrange resources based on architec-ture (P4 co3 emp)Base work allocation on available resources andminimize need for communication between sites(P4 co4 emp)Let the architecture determine how tasks are al-located, and who is responsible for each task(P4 co5 slr)

Task allocation in a distributed setting (C6) easily becomes challenging for

35

Page 36: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

a variety of reasons. Modular design is highly stressed in GSD, as task allo-

cation is often based on the assumption that modules or concerns are clearly

separated and decoupled. However, if dependencies between tasks and subse-720

quently between teams are not identified, work easily becomes very challenging

(C6 co6 slr). Due to communication difficulties there is often more effort and co-

ordination required (C6 co1 slr, C6 co2 slr), while decreased visibility to remote

sites and what resources are truly available may lead to a mismatch between

tasks and resources (C6 co5 slr).725

Additionally, while work items are usually kept separate between sites in

a distributed setup, it often becomes the case that two sites are developing

large modules which ultimately need to be fit together for the final product.

If one module is delayed, development on the other will, at some point, also

come to a halt, as certain testing will need integration to the offshored module730

(C6 co4 emp).

Based on our combined data synthesis we recommend an architecture-based

task allocation (P4). This is already supported by the literature (P4 co1 slr,

P4 co2 slr, P4 co5 slr). Practitioners further raise the issue of alignment. The

architecture may act as a driver, and additional resources may be acquired to735

fulfill the needs of the designed architecture (P4 co3 emp). Another option

of ensuring alignment between the organization and architecture is to allocate

tasks so that resources at a given site actually match the task given to them,

and that communication between sites is minimized (P4 co4 emp).

5.2.6. Project Management740

Governance is an essential part of Project Management. Thus, there are

inevitable challenges if governance is lacking or processes are not being followed

(C7). Lack of governance may showcase as not considering organization man-

agement in the design process (C7 co2 slr) or in dividing tasks (C7 co1 slr).

There are often also problems in knowledge management when poor gover-745

nance has resulted in bottlenecks (C7 co7 slr) or lack of expertise in design

work (C7 co6 slr). Our practitioners also noted problems related to inequality

36

Page 37: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Table 10: Governance and ProcessesID Challenge/

PracticeConcerns

C7

Challenge:Lack ofgovernance andcompliance toprocesses

Difficulties with making the organization report-ing structure match the geographic distribution oftasks (C7 co1 slr)Overlooking organization management(C7 co2 slr)Challenges due to inconsistent standardization,tools and equipment between sites (C7 co3 emp)Schedule is prioritized over processes(C7 co4 emp)Challenges fitting practical work to defined pro-cesses (C7 co5 emp)Problems caused due to not involving a technicalarchitect (C7 co6 slr)Impractical condensing of knowledge due to highdependency on one lead architect (C7 co7 slr)

P3

Practice:Implementsoftwaredevelopmentgovernance forglobal softwaredevelopment

Assign responsibilities for prioritization, manag-ing architectural work and sharing knowledge toteams (P3 co1 emp)Break work items to easily manageable pieces(consider one subsystem, can be handled by oneperson) (P3 co2 slr)Define clear responsibilities for architecture teamto handle changes that span through several com-ponents and/or sites (P3 co3 slr)Ensure each site has representative architect(P3 co4 slr)Engage developers across sites in architecturalwork (P3 co5 emp)

between sites (C7 co3 emp). Problems arose when different sites were using a

different version of hardware or software or simply did not have access to equal

means to perform development work.750

Practitioners further reported problems related to how processes are fol-

lowed. In some cases practitioners were not able to follow the process as defined

when they would have wanted to - this happened when tight schedules dictated

that shortcuts needed to be taken (C7 co4 emp). In a converse case, practi-

tioners felt that the defined process did not match practical development work755

37

Page 38: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

(C7 co5 emp), and work needed to be done ”under the hood” to be able to do

it efficiently.

One key concern to address the aforementioned issues is to engage develop-

ers across sites in architectural work (P3 co5 emp). Engaging developers from

various backgrounds and sites will aid in condensing of knowledge and finding760

expertise. Similar benefits regarding knowledge management can be achieved

with having clearly appointed people for different roles (P3 co1 emp). Further,

practices found in the literature (P3 co1 slr, P3 co2 slr) related to how tasks

and changes spanning across sites should be handled may aid in concerns related

to organization.765

Also note that while we did not particularly map any other Practices to

C7, concerns related to the Decision Process may aid in addressing the afore-

mentioned issues particularly related to concerning organizational aspects, as

demonstrated by the relationship between Project Management and Design Pro-

cess in our conceptual model (Figure 3).770

However, with project management issues we need to note a gap in how the

found practice and the related concerns address concerns raised particularly by

the practitioners. We did not find particular concerns that would directly aid

in issues related to processes.

5.2.7. People Management775

Table 11: Managing People and Soft Issues

ID Challenge/Practice

Concerns

C8

Challenge:Difficulties inmanagingpeople andhandling softissues

Lack of commitment to software development pro-cesses and guidelines (C8 co1 emp)Lack of commitment or interest in work items (dis-tributed across sites) (C8 co2 emp)Misaligned interests and undesirability of tasksmake task distribution challenging (C8 co3 slr)Challenges in development work due to culturaldifferences in getting things done and reportingprogress(C8 co4 emp)

38

Page 39: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Managing people and associated soft issues presents a clear gap in our stud-

ies. This is unsurprising, as we were not particularly searching for recommenda-

tions on how to handle these kinds of issues. What is slightly surprising is that

this challenge was so strongly brought forward in our interview material. While

we were concentrating on unearthing the essentials to design software architec-780

ture in a distributed setting, and were focused on finding recommendations for

constructing the architecture on the drawing board, the practitioners experi-

enced the lack of commitment in various ways (C8 co1 emp, C8 co2 emp) as

’very disturbing’ to ’executing the design’. Further, many practitioners told of

problems raised by cultural differences and particularly when reporting progress785

(C8 co4 emp) – in some cultures it was customary to try to maintain a good

impression (by repeatedly answering that work is progressing even though it was

not) for as long as possible, while in some cultures a more straightforward atmo-

sphere was appreciated (openly discussing delays and difficulties). People easily

became frustrated when they were expecting a certain status of completion and790

then at the last minute it became apparent that this was not achieved.

While we did not find direct Practices to address this Challenge, handling

such soft issues is alleviated when concerns related to Project Management and

Decision Process are well-handled, as shown in our conceptual model. Par-

ticularly P3 (Implement software development governance for GSD) contains795

one concern which encourages engaging developers across sites (P3 co5 emp).

While this relates to governance, the reason why practitioners gave this partic-

ular recommendation is strongly linked to commitment and motivation – giving

a feeling of responsibility.

6. Discussion800

6.1. Architecting in GSD

In this section we discuss and summarise how our study addresses research

questions relating to the challenges practitioners face in software architecture

design in GSD, and how they are solving those challenges.

39

Page 40: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Our empirical study revealed challenges not previously noted which related to805

the design process and issues stemming from the organization. Regarding design

choices, the concerns were quite clearly emphasized by the distributed nature of

software development. When tasks are distributed, finding and defining logical

entities and interfaces between them, and identifying dependencies within the

architecture are critical. However, when the design is also distributed, tackling810

such challenges is difficult.

The practices utilized are mostly based on a common denominator: agree-

ment. Agreeing on management practices and collaboration, agreeing on com-

mon design principles, reaching an agreement on roles for different tasks and

making sure that the organization and architecture are in agreement (i.e., aligned).815

Taking a closer look at the commonly agreed principles for architecture design,

there is the expected emphasis on modularity and loose coupling. However, the

practitioners also have a clear motivation to emphasize reuse of components and

consider the long-term affect of their choices. When development is distributed,

applying commonly agreed principles and loose coupling clearly helps, as there820

is less need to explain choices to remote sites, and the tasks can be more clearly

separated. Paying attention to reuse and long-term effect should aid in unsta-

ble environments - with a library of small, reusable components there is a solid

foundation to build on regardless of what sites are available, and considering

long-term effects, such as dependencies on frameworks, libraries or hardware,825

will further ease design in the future.

The motivation for conducting the empirical study was to broaden our un-

derstanding of architectural design methods applied in distributed software de-

velopment. While the SLR we conducted [17] illustrated general problem areas

and lessons learned, we were uncertain as to the completeness or consistency830

of our results. Both our empirical study and several sources in the SLR (e.g.,

[41, 42, 43, 28]) identified misalignment between organization structure and the

software architecture as one of the biggest challenges. In the SLR we only found

practices that were mostly architecture-driven such as keeping tightly coupled

items at the same site as suggested by, e.g., Mockus and Weiss [41] and Pereira835

40

Page 41: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

et al.[44], or by ensuring loose coupling between components dispersed to dis-

tributed teams, as suggested by Bosch and Bosch-Sijtsema [31] and Salger et

al. [24]. However, our empirical study revealed that, in practice, there is more

support to the opposite approach of using the organization as a baseline and

aligning the architecture to resources. Most notably, the empirical study showed840

that aligning the architecture and organization evolves over time, where one or

the other is often changing.

Both our empirical study and the SLR also revealed similar challenges re-

garding communication and knowledge management. The empirical study, how-

ever, highlighted how much these challenges reflect on the execution of daily845

tasks, and how much the challenges are due to differences in working culture,

while the SLR focused more on the technical challenges of communication, such

as how electronic systems were used [22, 45] or difficulties in effective creation

and sharing of artefacts, as raised by, e.g., Sangwan and Ros [46], and Che and

Perry [27]. Similarly, based on the SLR, we were only able to provide either very850

general solutions, such as ”communicate clearly” or utilizing a team of architects

(as suggested, e.g., by Vaikar et al. [47] and Paasivaara and Lassenius [48]), or

quite technical solutions, such as using a single repository for architectural arte-

facts, (see, e.g. Sauer [49] and Cataldo et al. [50]). However, in the empirical

study, the focus was on establishing collaboration practices across sites – and855

notably, involving others in addition to architects – and having clearly defined

roles for central people. Similarly, both studies raised as an issue how archi-

tectural decisions were made, and solutions were also similar - apply commonly

applied practices and principles. Further, both studies raised the issues of keep-

ing the architecture design modular. However, while it was acknowledged that860

modularity is a desired aspect, and in the SLR, e.g. Pereira et al. [44] and

Clerc et al. [51], recommended the use of well-defined interfaces, our empirical

study revealed that finding the correct boundaries for such interfaces is some-

times very challenging. Furthermore, the SLR design challenges were discussed

more from the perspective of insufficiently defined practices (by, e.g., Ovaska et865

al. [8], Clerc [20], and Popovic et al. [45]), while the empirical study brought

41

Page 42: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

out challenges related to complexity of the software and disagreement between

design choices.

Salger et al. [24] and Clerc et al. [51] found challenges related to stability

of architecture, and, e.g., Betz et al.[30] noted the lack of compliance between870

the architecture and requirements, processes and organization. While we specif-

ically asked our interviewees about these challenges, we did not find concrete

solutions - nor did they consider them a particular challenge in their work. It

would seem that either the architecture was found stable enough or instability

was considered the normal state, or that stability and compliance to business875

processes etc., is such an implicitly evident part of the design process that the

interviewees could not really define how they approached the issues.

Both the empirical study and, e.g., Bass et al. [28] and Sangwan and Ros

[46] found as a challenge the lack of methods for quality assurance. However,

neither the SLR nor our empirical study could provide concrete practices for880

this challenge. Additionally, in the empirical study we found difficulties in fol-

lowing processes a major challenge in the industry. This did not come up in the

SLR, but the practitioners raised the issues of how practical work was difficult

to fit to processes, how processes suffered when people were not committed to

them (usually at remote sites) and when they had to prioritize schedule over885

the defined processes.

6.2. Threats to Validity

We will consider threats to validity as described by Wohlin [52] and cover890

the points which are relevant to our study.

6.2.1. Conclusion Validity

Conclusion validity concerns the correctness of conclusions drawn. Searching

for specific results, i.e,, fishing, is a threat which may occur in interviews that

are poorly designed, on in which participants are chosen to bias the results.895

42

Page 43: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

The interview questions were drafted in a way that they allowed very broad and

thus varied answers. We also only selected interviewees solely based on their

expertise and we had no prior knowledge as to how they would consider the

questions or what their attitude would be towards the topic.

To alleviate the threats related to reliability of treatment implementation,900

the same interview protocol was followed for all interviewees. The only dif-

ference iwas that two interviews were conducted via Skype, while others were

done in person. However, with the Skype interviews video connection was also

included to make it as personal as possible. Small connection problems might

have affected the experience from the interviewees’ viewpoint, though. These905

are also the only occurrences of Random irrelevancies in experimental setting,

which may have affected the interviewees’ attitude and thus the way questions

were answered.

6.2.2. Internal Validity

Internal validity threats are influences that may affect the variables with910

respect to causality. They can be sorted into three categories: single group

threats, multiple group threats and social threats. The ones applicable to our

experiment are single group threats.

There is a risk related to maturation, i.e., that subjects react differently as

time passes. Some of the interviews took over two hours of time, and it could915

be seen that some interviewees were getting tired at the end of the interviews.

However, we had designed the interview protocol so that the most broad and

difficult questions were in the beginning, and in the end were quite straightfor-

ward and simple questions, which should alleviate this threat. The design of

the interview protocol is also an Instrumentation related threat, and has been920

already discussed in relation to Fishing.

6.2.3. Construct and External Validity

Construct validity concerns how well the results are generalizable. It is nat-

ural to assume that the participants had a pre-defined view of especially the

43

Page 44: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

challenges we were looking for, and could perform hypothesis guessing. How-925

ever, in our case, there were no ”right” or ”wrong” answers, and thus ”correct”

guessing of the hypothesis would not have benefited us in any way. Further,

we could observe that the answers often would initially deal with managerial

issues. To undercover practical architecting challenges and practices follow-up

questions were almost always required.930

External validity, in turn, concerns how well the results are generalizable

to the industrial practice. As this study was conducted with a cross-section of

practitioners currently working in the industry, we argue that the results are

generalizable in the field of GSD.

7. Conclusions935

In our previous work [17] we identified several challenges and best practices

in software design in a global software development context. However, given the

limited number of empirical papers to draw on, and lack of context information

in the selected studies, we were unsure of how generalizable the findings were,

plus we found some areas in which the challenges were left with no solution.940

Motivated by the need to add confidence to our results, and fill the gaps, we

conducted our own empirical study. In the empirical study reported here we

were careful to collect detailed information about the context of the software

development (to include development process). Through several interviews with

architects we gained visibility into the kind of challenges that they encountered945

in their day-to-day activities that included how they design and allocate tasks

across their multi-site teams. We also asked each practitioner about how they

tried to solve each of the challenges. In this way, we were able to fill some of

the gaps identified in the SLR [17].

The challenges for the GSD architect are manifold. While we knew about the950

challenges in trying to match the architecture to the organizational structure,

and this was given as a recommendation, we now understand more about why

this is difficult to achieve in GSD. The structure is shown to be continually

44

Page 45: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

changing, and is unstable. Therefore, there are suggestions that the architecture

should be independent of the structure, so that all stakeholders have a clear955

understanding of how tasks are allocated, or that the architecture should align

with the structure (through modularity).

This paper’s main contribution is to elaborate the dependencies associated

with the architect’s role, particularly the architect’s role in task allocation in a

global setting. The architect does not work autonomously since design decisions960

are strongly influenced by project management practices. We observed that in

some companies one architect is responsible for the overall design decisions,

whereas in other cases it would be a group decision (with a team of architects).

The dependencies in our conceptual model further illustrate the complex

inter-relationships of challenges to practices and the holistic nature of architec-965

tural design in GSD, where the recommendation is to implement all practices

to achieve the desired balance.

8. Acknowledgements

The work of the first author was supported by the Academy of Finland.

This work was partially supported (second and third author) with the financial970

support of the Science Foundation Ireland grant 13/RC/2094 and co-funded un-

der the European Regional Development Fund through the Southern & Eastern

Regional Operational Programme to Lero – the Irish Software Research Centre

(www.lero.ie).

References975

[1] S. Sahay, B. Nicholson, S. Krishna, Global IT Outsourcing: Software De-

velopment Across Borders, Cambridge University Press, 2003.

[2] D. Smite, C. Wohlin, Z. Galvina, R. Prikladnicki, An empirically based ter-

minology and taxonomy for global software engineering, Empirical Software

Engineering 19 (1).980

45

Page 46: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

[3] P. J. Agerfalk, B. Fitzgerald, H. Olsson, E. O. Conchuir, Benefits of

global software development: the known and unknown, in: Proceeginds

of ICSP?08, Vol. 5007, Springer, 2008, pp. 1–9.

[4] J. D. Herbsleb, A. Mockus, T. A. Finholt, R. E. Grinter, An empirical

study of global software development: distance and speed, in: Proceedings985

of ICSE 2001, 2001, pp. 81–90.

[5] P. J. Agerfalk, B. Fitzgerald, H. Holmstrom, B. Lings, B. Lundell, E. O.

Conchuir, A framework for considering opportunities and threats in dis-

tributed software development, in: Proceedings of the International Work-

shop on Distributed Software Development, Austrian Computer Society,990

2005, pp. 47–61.

[6] J. Noll, S. Beecham, I. Richardson, Global software development and col-

laboration: barriers and solutions, ACM Inroads 1 (3) (2011) 66–78.

[7] A. Avritzer, D. Paulish, Y. Cai, K. Sethi, Coordination implications of

software architecture in a global software development project, J. Syst.995

Software 83 (10) (2010) 1881–1895.

[8] P. Ovaska, M. Rossi, P. Marttiin, Architecture as a coordination tool in

multi-site software development, Software Process: Improvement and Prac-

tice 8 (4) (2003) 233–247.

[9] J. D. Herbsleb, Global software engineering: the future of socio-technical1000

coordination, in: Proceedings of the Future of Software Engineering (FOSE

’07), 2007, pp. 188–198.

[10] M. Conway, How do committees invent?, Datamation 14 (4) (1968) 28–31.

[11] A. M. D. Santana, F. Q. B. da Silva, R. C. G. de Miranda, A. A. Mascaro,

T. B. Gouveia, C. v. F: Monteiro, A. L. M. Santos, Relationships between1005

communication structure and software architecture: An empirical inves-

tigation of the conway’s law at the federal university of pernambuco, in:

46

Page 47: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

Proceedings of the 3rd International Workshop onReplication in Empirical

Software Engineering Research (RESER), IEEE, 2013, pp. 34–42.

[12] M. Bano, D. Zowghi, N. Sarkissian, Empirical study of communication1010

structures and barriers in geographically distributed teams., IET Software

10 (5) (2016) 147–153.

[13] S. Imtiaz, N. Ikram, Dynamics of task allocation in global software devel-

opment, J. Softw. Evol. and Proc 29. doi:10.1002/smr.1832.

[14] M. Babar, C. Lescher, Global software engineering: Identifying challenges is1015

important and providing solutions is even better, Information and Software

Technology 56 (1) (2014) 1–5.

[15] N. Ali, S. Beecham, I. Mistrik, ‘architectural knowledge management in

global software development: A review, in: Proceedings of ICGSE10, IEEE,

2010, pp. 347–352.1020

[16] S. S. M. Fauzi, P. L. Bannerman, M. Staples, Software configuration man-

agement in global software development: A systematic map, in: Proceed-

ings of the 2010 Asia Pacific Software Engineering Conference, 2010, pp.

404–413.

[17] O. Sievi-Korte, S. Beecham, I. Richardson, Challenges and recommended1025

practices for software architecting in global software development, Infor-

mation and Software Technologydoi:10.1016/j.infsof.2018.10.008.

[18] A. Mishra, D. Mishra, Software architecture in distributed software de-

velopment: A review, in: Proceedings of OTM 2013: On the Move to

Meaningful Internet Systems: OTM 2013 Workshops, Vol. 8186, Springer1030

Berlin Heidelberg, 2013, pp. 284–291.

[19] V. Clerc, P. Lago, H. van Vliet, Architectural knowledge management prac-

tices in agile global software development, in: Proceedings of the Fourth

IEEE International Conference on Global Software Engineering Workshop

(ICGSEW’11), 2011, pp. 1–8.1035

47

Page 48: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

[20] V. Clerc, Do architectural knowledge product measures make a difference

in gsd?, in: Proceedings of the Fourth IEEE International Conference on

Global Software Engineering (ICGSE’09), 2009, pp. 382–387.

[21] M. A. Babar, R. C. de Boer, T. Dingsyr, R. Farenhorst, Architectural

knowledge management strategies: Approaches in research and industry,1040

in: Proceedings of Second ICSE Workshop on SHAring and Reusing Ar-

chitectural Knowledge - Architecture, Rationale, and Design Intent 2007

(SHARK ADI 2007), 2007, p. 35.

[22] G. Borrego, A. Mora, R. Palacio, O.M.Rodriguez, Understanding architec-

tural knowledge sharing in agsd teams: an empirical study, in: Proceedings1045

of the 11th IEEE International Conference on Global Software Engineering

(ICGSE16), 2016, pp. 109–118.

[23] H. R. de Faria, G. Adler, Architecture-centric global software processes,

in: Proceedings of the IEEE International Conference on Global Software

Engineering (ICGSE06), 2006, pp. 241–242.1050

[24] F. Salger, Software architecture evaluation in global software development

projects, in: Proceedings of OTM 2009: On the Move to Meaningful Inter-

net Systems, Springer Berlin Heidelberg, 2009, pp. 391–400.

[25] M. Babar, A framework for groupware-supported software architecture

evaluation process in global software development, J. Softw. Evol. and Proc.1055

24 (2012) 207–229.

[26] M. Babar, A framework for supporting the software architecture evaluation

process in global software development., in: Proceedings of the 2009 Fourth

IEEE International Conference on Global Software Engineering (ICGSE

2009), 2009, pp. 93–102.1060

[27] M. Che, D.E.Perry, Evaluating architectural design decision paradigms in

global software development, International Journal on Software Engineer-

ing and Knowledge management 25 (2015) 1677–1692.

48

Page 49: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

[28] M. Bass, V. Mikulovic, L. Bass, H. James, C. Marcelo, Architectural

misalignment: An experience report, in: Proceedings of The Working1065

IEEE/IFIP Conference on Software Architecture WICSA’07, 2007, pp. 17–

17.

[29] R. B. Svensson, A. Aurum, B. Paech, T. Grschek, D. Sharma, Software

architecture as a means of communication in a globally distributed software

development context, in: Proceedings of the International Conference on1070

Product Focused Software Process Improvement (PROFES 2012), Springer

Berlin Heidelberg, 2012, pp. 175–189.

[30] S. Betz, D. SMite, S. Fricker, A. Moss, W. Afzal, M. Svahnberg, C. Wohlin,

J. Borstler, T. Gorschek, An evolutionary perspective on socio-technical

congruence: The rubber band effect, in: Proceedings of 3rd Interna-1075

tional Workshop on Replication in Empirical Software Engineering Re-

search (RESER), 2013, pp. 15–24.

[31] J. Bosch, P. Bosch-Sijtsema, Coordination Between Global Agile Teams:

From Process to Architecture, Springer Berlin Heidelberg, 2010, pp. 217–

233.1080

[32] J. Herbsleb, R. E. Grinter, Architectures, coordination, and distance: Con-

way’s law and beyond, IEEE Software 16 (5) (1999) 63–70.

[33] D. L. Parnas, P. C. Clements, D. M. Weiss, The modular structure of

complex systems, IEEE Trans. Software Eng 11 (3) (1985) 259–266.

[34] J. M. Verner, O. P. Brereton, B. A. Kitchenham, M. Turner, M. Niazi,1085

Systematic literature reviews in global software development: A tertiary

study, in: Proceedings of EASE?12, 2012, pp. 2–11.

[35] C. Ebert, M. Kuhrmann, R. Prikladnicki, Global software engineering:

Evolution and trends, in: 2016 IEEE 11th International Conference on

Global Software Engineering (ICGSE), 2016, pp. 144–153. doi:10.1109/1090

ICGSE.2016.19.

49

Page 50: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

[36] D. Cruzes, T. Dyba, Research synthesis in software engineering: a tertiary

study, Information and Software Technology 53 (2011) 440–455.

[37] V. Braun, V. Clarke, Using thematic analysis in psychology, Qualitative

Research in Psychology 3 (2) (2006) 77–101.1095

[38] M. Dixon-Woods, S. Agarwal, B. Young, A. Sutton, Synthesising qualita-

tive and quantitative evidence: a review of possible methods, Journal of

Health Services Reseach&Policy 10 (2005) 45–53.

[39] M. Burks, Y. Chapman, K. Francis, Memoing in qualitative research: Prob-

ing data and processes, Journal of Research in Nursing.1100

[40] K. Charmaz, Constructing Grounded Theory – A Practical Guide through

Qualitative Analysis, SAGE Publications, 2006.

[41] A. Mockus, D. M. Weiss, Globalization by chunking: a quantitative ap-

proach, IEEE Software 18 (2) (2001) 30–37.

[42] G. Mustapic, A. Wall, C. Norstrom, I. Crnkovic, K. Sandstrom, J. Froberg,1105

J. Andersson, Real world influences on software architecture - interviews

with industrial system experts, in: Proceedings of the Fourth Working

IEEE/IFIP Conference on Software Architecture (WICSA’04), 2004, pp.

101–111.

[43] R. Britto, D. Smite, L.-O. Damm, Software architects in large-scale dis-1110

tributed projects: An ericsson case study, IEEE Software, Special issue on

Software Architects Role in the Digital Age 33 (6) (2016) 48–55.

[44] T. A. B. Pereira, V. S. dos Santos, B. L. Ribeiro, G. Elias, A recommen-

dation framework for allocating global software teams in software product

line projects, in: Proceedings of the 2Nd International Workshop on Rec-1115

ommendation Systems for Software Engineering, ACM, 2010, pp. 36–40.

[45] K. Popovic, Z. Hocenski, G. Martinovic, Do the software architects get

the needed support for the job they perform?, in: Proceedings of the

50

Page 51: Software Architecture Design in Global Software Development › ...software-architecture-design_gsd.pdf · Keywords: software architecture, global software development, GSD, Scrum,

2010 Fifth International Conference on Software Engineering Advances (IC-

SEA), 2010, pp. 123–128.1120

[46] R. S. Sangwan, J. Ros, Architecture leadership and management in globally

distributed software development, in: Proceedings of the First International

Workshop on Leadership and Management in Software Architecture, ACM,

New York, NY, USA, 2008, pp. 17–22.

[47] S. Vaikar, M. M. Jha, F. Brunner, Using architectural constraints to drive1125

software component reuse while adding and enhancing features, in: Pro-

ceedings of the 11th IEEE International Conference on Global Software

Engineering (ICGSE’16), 2016, pp. 139–143.

[48] M. Paasivaara, C. Lassenius, Scaling scrum in a large globally distributed

organization: a case study, in: Proceedings of the 11th IEEE International1130

Conference on Global Software Engineering (ICGSE’16), 2016, pp. 75–83.

[49] J. Sauer, Architecture-Centric Development in Globally Distributed

Projects, Springer Berlin Heidelberg, 2010, pp. 321–329.

[50] M. Cataldo, C. Shelton, C. Yongjoon, H. Yun-Yin, V. Ramesh, D. Saini,

W. L.-Y. Wang, Camel: A tool for collaborative distributed software design,1135

in: Proceedings of the Fourth IEEE International Conference on Global

Software Engineering (ICGSE’09), 2009, pp. 83–92.

[51] V. Clerc, P. Lago, H. van Vliet, Global software development: Are archi-

tectural rules the answer?, in: Proceedings of Second IEEE International

Conference on Global Software Engineering (ICGSE’07), 2007, pp. 225–234.1140

[52] C. Wohlin, P. Runeson, M. Host, M. C. Ohlsson, B. Regnell, A. Wesslen,

Experimentation in Software Engineering: An Introduction, Kluwer Aca-

demic Publishers, Norwell, MA, USA, 2000.

51