Conference PaperPDF Available

Follow The Sun Software Development: New Perspectives, Conceptual Foundation, and Exploratory Field Study

Authors:

Abstract and Figures

Follow The Sun (FTS) is a special case of global software development. FTS means that software work is handed off every day from one development site to the next -- many time zones away. The main benefit is reduction in development duration. Surprisingly, unlike the broader trend of offshore outsourcing, FTS is practiced rarely and misunderstood often.In this article we present a foundation for understanding FTS including a definition, a description of its place in the life cycle, and choice of methodologies. We also present the outcomes of a first quasi-experiment designed to test FTS and measure the speed of software work. This quasi-experiment is part of our comprehensive research to explore FTS and its implications.
Content may be subject to copyright.
Follow The Sun Software Development:
New Perspectives, Conceptual Foundation, and Exploratory Field Study
Erran Carmel
Univ. of Maryland, Univ. Coll.
ecarmel@umuc.edu
Yael Dubinsky
IBM Haifa Research Lab
dubinsky@il.ibm.com
Alberto Espinosa
American Univ.
alberto@american.edu
Abstract
Follow The Sun (FTS) is a special case of global
software development. FTS means that software work
is handed off every day from one development site to
the next -- many time zones away. The main benefit is
reduction in development duration. Surprisingly,
unlike the broader trend of offshore outsourcing, FTS
is practiced rarely and misunderstood often.
In this article we present a foundation for
understanding FTS including a definition, a
description of its place in the life cycle, and choice of
methodologies. We also present the outcomes of a first
quasi-experiment designed to test FTS and measure the
speed of software work. This quasi-experiment is part
of our comprehensive research to explore FTS and its
implications.
1. Introduction
Follow The Sun (FTS from hereon; also called: 24-
hour development and round-the-clock development) is
a rather simple idea: Hand-off work every day from
one site to the next as the world turns (USA to India,
for example). Thus, reduce the development duration
by 50% if there are two sites and by 67% if there are
three sites.
FTS is a subset of global software development and
shares with global software development the many
issues and challenges of coordination, culture, and
communication. However, FTS, is uniquely focused on
speed in that the project is designed to reduce cycle-
time (also known as time-to-market reduction, or
duration reduction). Unfortunately, there have been
few (if any) successful cases of FTS due to
coordination difficulties. Meanwhile, our Management
Information Systems (MIS) literature has devoted
some attention to investigating the time domain but has
largely focused on perceptions of time [25] rather than
approaches to increasing speed.
1.1 Why is Time-to-market interesting?
FTS team structures are configured in order to
achieve time-to-market reduction.1 Time-to-market is
the length of time it takes from a product conception
until the product is available for use or sale [26].
Figure 1 depicts this definition. Time-to-market is
most important in industries where products become
outmoded quickly, such as, these days, mobile
telephone handsets. Therefore time-to-market is critical
for handset software. Time-to-market is also important
for strategic information systems such as competitive
e-commerce systems or innovative Supply Chain
Management systems.
Define Design Make Distribute
Time-to-market
Figure 1. Timeline of time-to-market, measured from
inception to use/sale
A desire for rapid development -- a sense of
urgency -- is shared by most firms and projects in a
competitive marketplace, but such a desire usually
tends to be a reactive behavior rather than a proactive
one. We see FTS as a proactive way to achieve time-
to-market, hence we emphasize what FTS is not. In
software work, reactive techniques include: speed-up,
setting deadlines, and adding personnel. Speeding up,
or "stepping on the gas," means doing what needs to
be done -- only faster. This is generally not
recommended because of fatigue [22]. Adding
personnel is of little interest in software because of the
wisdom gained from the seminal Brooks' Law [3]
1 Time-to-market reduction needs to be seen within the larger
context of other competitive factors and project goals: One
needs to make possible trade-offs between features, project cost,
and quality [24].
Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009
1978-0-7695-3450-3/09 $25.00 © 2009 Crown Copyright
("adding manpower to a late software project makes it
later"). In contrast, FTS is set up proactively with a
high awareness of time-to-market [5] by rethinking
development processes. In summary, time-to-market
reduction achieved by using FTS requires a deliberate
design around the objective of speed.
Time-to-market is an important area of inquiry
because it is relatively understudied in the disciplines
of MIS and software engineering (an exception is
found in [16] where multi-site software teams took
longer than in co-located teams).
1.2. Follow the sun literature and history
The first global software team specifically set-up to
take advantage of FTS was at IBM in the mid-1990s
and is documented extensively in [7]. This team was
set up from inception to work in FTS. It was spread out
in 5 sites across the globe. However, FTS was difficult
to achieve. It was uncommon to move the software
artifacts daily as had been hoped. Since FTS was not
working the managers gave up on that objective rather
quickly while continuing global software development.
Others have claimed implementing FTS but did not
succeed in implementing it [31][30]. Cameron [4] has
claimed some limited success at FTS at the global
American firm EDS (now HP). Hawryszkiewycz &
Gorton were the first to examine FTS in a series of
small controlled experiments [13] though they did not
continue their line of inquiry. In recent years others
have written about the promise and failures of FTS
[14][15][8][2][13]. Contrary to myth, Indian offshore
firms do little, if any, FTS [6].
With rather limited progress in theory or practice in
the last decade, recent FTS literature has moved in
another interesting trajectory: mathematical modeling
of FTS [11][20][27][28][29]. Each one of these papers
uses somewhat different approaches and assumptions.
All of them focus, to some extent, on the issue of
speed, while making critical assumptions that deal with
the hand-over/ coordination issues.
2. Follow the sun: definition and practice
Central to FTS is the hand-off of work from one
site to the next. Most global teams do the utmost to do
the exact opposite – to reduce the number of hand-offs
as much as possible. See Figure 2 for typical
configurations of global teams. Note that the other
three approaches, other than FTS, attempt to minimize
hand-offs.
Functional exper tise A
Functional exper tise B
Component A
Component B
Site 1
Site 2
Site 1
Site 2
Site 1
Site 2
time time
time
By expertise By product
By phase
Integr ation
Integration
handoff
handoff
Site 1
Site 2
time
Follow The Sun
handoff
handoff
handoff
handoff
handoff
handoff
Figure 2. FTS compared to other globally distributed
configurations.
FTS is the least common of these global
configurations. Partially because of its rarity, we have
noticed confusion about FTS in industry. The two
most common misconceptions are that FTS is:
a. Global knowledge work. Knowledge workers are
working around the world. However in most cases
these knowledge workers have little dependency
and do not pass on work in order to reduce
duration. Therefore this is not FTS.
b. 24h work/ shift work (3 shifts a day). A call
center scheduler routes calls to workers as the
earth revolves. However in most cases these
knowledge workers have little dependency and do
not pass on work in order to reduce duration.
Therefore this is not FTS.
2.1 FTS definition
In light of the above, we propose a formal
definition of FTS. We claim that software development
FTS means satisfying all 4 of these criteria:
1. Production sites are far apart in time zones.
2. One of the main objectives is duration reduction/
time-to-market reduction.
3. At every point of time there is only one site that
owns the product. (We must specify this criterion
in order to make the dependency unambiguous).
4. Hand-offs are conducted daily, where a hand-off is
defined as a check-in of a work unit that the next
site is dependent upon in order to continue. (We
specify this in order to make the dependency
unambiguous).
Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009
2
Therefore, FTS is defined as:
A type of global knowledge workflow, designed
in order to reduce project duration, in which the
knowledge product is owned and evolved by a
production site and is handed-off daily to the next
production site that is many time-zones apart to
continue that work.
We also state one key assumption and several other
points. The key assumption is that each production site
works during their day because most people around the
world tend to work during the day and sleep at night.
Related to this is an assumption that each production
site works as a team and coordinates inside the team.
Some other foundational points and assumptions:
1. In software work there is one common repository.
This allows all sites to “commit” the code/objects
at the end of the workday.
2. Exception condition: the unit of work can be
sometimes = zero, in cases of holidays etc. While
work is usually passed on daily, this cannot
happen for every team every day.
3. A team can consist of one or more members.
4. Since Time To Market is a major goal then it is
measured using objective units and possibly
benchmarked.
Our definition is consistent with other, broader
definitions of global software development. For
example, it assumes full cooperation between
production sites, as defined by [19].
Our careful definition allows us to expand our
thinking of FTS. We can all envision FTS with 2 or 3
sites. Assuming 6 hours of intensive software
development per day, it is possible to do FTS with
even 4 sites spread out across time zones of the globe.
It may even be beneficial. We assume that each team
will work intensively for 6 hours and during the
beginning and end of day will perform other
admin/work tasks.
2.2. Why is FTS so difficult?
Globally distributed development adds difficulties
to productive work. The frenetic pace of development
will tend to pull apart teams by Carmel’s [7] five
centrifugal forces of global software teams: loss of
communication richness, coordination breakdown, loss
of ‘teamness’, cultural differences, and geographic
dispersion.
FTS is even more difficult and quite uncommon
because the production teams are handing off work-in-
progress (unfinished objects). The production objects
require daily “packaging” so that the task is understood
by the next production site without synchronous
interaction.
Naturally there are times when the next production
site needs more information. When clarification is
required then an entire day may be wasted because the
previous site has already gone home. Sometimes a
misunderstanding causes the need for re-work. This is
also wasted time, or more formally known as
vulnerability costs.
2.3. What methodology is best for FTS?
Those who have examined FTS closely have
recognized the importance of selecting and adapting a
methodology for the special needs of daily hand-offs.
FTS requires very careful considerations of
methodology and process. Cameron at EDS crafted a
special methodological adaptation [4]. Similarly,
IBM’s classic FTS team of the 1990s constructed a
unique organization structure and process [7].
Some practitioners have told us that waterfall-like
approaches seem best for FTS. Others have proposed
other process models.
There are many special conditions that seem even
more acute for successful FTS. Clearly, software
engineers will need to be trained in cooperation and
collaboration skills. Managers cannot micro-manage or
they will lose the 24-hour capability. Reward systems
balancing individual recognition and team recognition
issues would have to be worked out.
We considered several development methods
including iterative methods (e.g., RUP) and Agile
methods [1][17]. We selected the Agile approach as
promising for FTS—and we explain why below.
Later, we describe our first FTS exploratory
experiment using an Agile approach.
2.3.1 FTS with waterfall-like approaches. Let’s
begin by examining the generic software development
lifecycle (SDLC) phases. While some phases can work
easily for FTS, at least over short periods (see Figure
3), others do not.
Testing has worked well in FTS for many
companies. One team searches for bugs, documents
these in the bug database, which is then accessed and
worked on by the software team at another site. Testing
works well with FTS because the hand-off is
structured, granular-- and with trained staff-- will
usually not suffer from miscommunications.
Prototyping is another specific phase that suits FTS.
Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009
3
Define Design Code Test Integrate
•Ma inte na nc e
Helpdesk
Test & Fix
Rapid Prototyping
Figure 3. Generic waterfall SDLC. Notation above the arrows
points to specific phases that are a good fit for FTS
The peculiarities in each phase means that the
theoretical advantages of FTS (reducing time-to-
market by 50%), tend to be in isolated phases. If one
manages to perform FTS in one specific phase, it does
not mean that those techniques are transferable to the
other phases. Thus, if only testing used FTS
successfully then overall project duration is reduced by
only 12.5% rather than the ideal 50% (see Figure 4).
Define Design Code Test Integrate
10% 30% 25% 25% 10%
Typical per cent of schedule
Figure 4. Typical percent of project schedule duration in each
SDLC stage
2.3.2 FTS with the Agile approach. There has been
some research on synthesis of distributed global teams
and the Agile approach [e.g., 18]. We focus on FTS
with Agile. In the case of FTS, examining the SDLC
when using the Agile approach shows that in every
agile iteration all software development activities
(define, design, code, test, integration) are performed
for a smaller scope which is usually feature-based
(conceptually described in [1][23]). The iteration
length varies from two weeks to four weeks depending
on the specific agile method that is used. We argue that
in FTS agile environment, testing of small portions
along the way should lead to a duration reduction of at
least 12.5% as in waterfall-like approaches (see
Section 2.3.1), and possibly more if we take into
account the accumulative effect of testing on the
development process and software quality (stability,
maintainability, etc.).
We further argue that the Agile approach has some
characteristics that assist in structuring FTS settings:
Support daily hand-offs. Continuously
integrating using an automated integration
environment enables each team to develop in its
own code-base in its own time period. Yet, each
team maintains an updated testable code base to be
used by the next production site. The policy of
keeping the integration green (all test pass) at the
end of the work day is common in Agile teams and
nicely fits with FTS requirements. Note that we
mainly focus on the technical side of the code
integration versus practices like continuous
coordination [23] that involve other aspects. We
further note that also other approaches are iterative
and can handle daily hand-offs, e.g., RUP and
specifically Agile RUP which can fit in this case.
Deal with communication. The Agile approach
places emphasis on communication espousing
face-to-face. We advocate this kind of
communication as intra-site communication.
However, in FTS settings we aim at reducing the
inter-site communication between production sites
to the bare minimum, relying more on tools and
mechanistic processes to support the technical,
managerial, and social aspects of development.
Elicit cooperation / collaboration. Collaboration
is vital in software development processes [19].
The Agile approach emphasizes collaboration
among all people involved in the development --
and especially the customer. In FTS settings, the
collaboration significant in the way team members
keep the process rules, such as protocols to allow
the next site to be able to continue the work with
minimum inter-site synchronous communication.
3. Long-term research strategy for FTS
We plan to investigate FTS in different settings
with the goal of improving measures -- on one hand --
and deriving actionable practical lessons on the other
hand. In the first quasi-experiment described in Section
4 we have taken one step in setting this foundation.
What needs to be done? Given the paucity of
knowledge in both theory and practice, we propose five
action points:
Controlled lab projects. Study FTS under
controlled conditions. See for example some
similar research in [12].
Quasi-experiments. In spite of limitations, quasi-
experiments allow for learning and refinement of
research techniques (such as controlled
experiments) and practical FTS techniques. We
see the quasi-experiment as a first step in
systematically studying FTS using multiple
research methods. We describe our first quasi-
experiment further below.
Expand on a meta-study of FTS. Highlight true
successes from industry. With the caveat that there
are very few of these, we do see promise. The
problem in such a study is that an industry FTS
project is quite unlikely to have benchmark data:
Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009
4
what would be duration in “normal” development
conditions versus FTS?
Develop research frameworks for time separation
and create mathematical and simulation models to
better understand how to optimally architect FTS
and how to evaluate its costs and benefits.
4. First quasi-experiment
In this introductory article we describe our first step
in the broader long-term research strategy. That is, a
first quasi-experiment (also called a field experiment).
A quasi-experiment is a research design having some -
- but not all -- of the characteristics of a laboratory
experiment. Our experiment is focused on measuring
speed in software work conducted by distributed teams
working according to the Agile software development
approach. We describe our design in a manner
consistent with [21].
Experiment goals: investigate FTS in an Agile
environment. Specifically, measure duration in order to
test the central premise of time-to-market reduction.
Experiment participants and setting: Subjects
were experienced computer science and electrical
engineering students at an elite university, all between
ages 20-30. Most of the students were working part
time in software engineering roles in sophisticated
firms during their studies.
The experiment was conducted as part of practicum
course in software engineering. This was a semester-
long course of fourteen weeks. The project was the
principal component of the course grading, so students
were motivated to do well. During the entire process
of development there was an active electronic website
for course and group communication. The following
Agile practices were integral to the project and student
learning: time boxing, testing, continuous integration,
and constant customer availability for requirements
clarifications.
The general approach of a semester project was not
new [9]. It had been guided by one of the authors every
year since 2002. The only new dimension, this time,
was to impose a FTS approach on one of the student
groups.
Experimental task: The groups were required to
build a simulator of processes and threads scheduler in
the Unix operating system. There was no programming
language that was enforced. There was a requirement
to use a CVS2 server for the integration build. Both
groups developed a software project on the same
subject and same functionalities.
2 See http://sourceforge.net/cvs/?group_id=3630.
Experimental Design: There were two project
teams which were measured: one FTS team of 8
students and one control (CO) team of 7 students.
Thus, we had two data points.
Special Rules for the FTS team: While the CO
team worked in a typical student manner without any
time constraint, the FTS teams were split into two
subteams and had very strict communication rules in
order to simulate the time differences of FTS.
The FTS team was divided into two subteams of 3
and 5 students to simulate working in two non-
overlapped time zones. The team of 3 students (we
shall call it SubTeamA) worked between 21:30 and
11:00 while the team of 5 (SubTeamB) worked
between 11:30 and 21:00. The 30-minute gap permits
overtime of 30 minutes in each team. Most students
also had demanding part-time jobs, so the odd hours
were not a hardship.
The FTS team was required to perform the task
using the same effort (in man-hours) in 2.5 weeks
instead of the 5 weeks that the control team had.
The academic supervisor operated in the same time
zone as SubTeamA for the entire semester. Weekly
meetings were planned to be face-to-face with
SubTeamA and over phone with SubTeamB.
Direct communication was prohibited between
SubTeamA and SubTeamB: no voice, no IM, no SMS.
Every access to the CVS integration server was
only allowed in prescribed working hours, e.g. a
SubTeamA student could only access the CVS in the
13.5 hour period of the day allotted to SubTeamA.
Measuring duration in FTS: Our main objective
was to measure differences in project duration. Given
the constraints of a class project we had to find a
reasonable way to do this and we did this by artificially
imposing a deadline at exactly the halfway point for
the FTS team. Figure 5 illustrates it. The logic is that 2
FTS teams would theoretically reduce duration by half
= 50%.
Note that both teams, CO and FTS, had the same
amount of development hours (effort) and the same
functionalities to develop.
t+5
Control Team (CO)
FTS Team
t+2.5
Figure 5. Planned duration for measured iteration
Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009
5
Other measures and data: The experimental data
were generated by the CVS server, e.g. number of
check-in operations and number of revisions per file.
Further, we examined the electronic forum for work
logs compiled by students and we analyzed students’
reflections during the semester.
4.1 Experimental outcomes
Our primary goal was to examine development
duration. We conclude that there was an approximate
10% reduction in development duration -- rather than
the theoretical 50% of FTS. That is, instead of
completing the development work at t+2.5 weeks, it
was completed at t+4.5 weeks.
The FTS team had no incentive to stop at the 2.5
week FTS milestone. So, with most functionality done
by the 2.5 week milestone, they kept on tweaking and
improving their software for much of the “extra” 2.5
weeks. While this was a weakness in the experimental
design, it points to the relative success of the team in
duration reduction.
Examining the last half week before the
presentation, The CO team performed 385 check-in
operations with average of revision level of 8.8, while
FTS team performed 336 check-in operations (13%
less) with average of revision level of 18 (100% more).
Meaning the FTS group changed less files with much
higher refinements level. In other words, the FTS team
was tweaking, while the CO team was performing
coarser, more fundamental tasks.
It is very important to emphasize that both teams
(CO and FTS) met the project’s requirements with
respect to the functionality and level of quality.
We note some additional data in the remainder of
this subsection.
Working hours. We checked the data from the
CVS server to see if the artificial time-zone rules were
obeyed. They were. Figures 6 and 7 present file check-
in operations for CO and FTS which spanned from
24.12.07 to 28.1.08.
Examining the graphs we found the following:
CO generally worked while the sun was up,
mostly from about 9:00 and until about 22:00. The
7 students performed 754 check-in operations
(average of 108 operations per student).
FTS kept the time zone rules. We can see clearly
that both time zones are occupied. The lines across
09:00 and 21:00 mark the artificial time zones.
Note that SubteamA worked between 21:30 and
11:00 while the SubteamB worked between 11:30
and 21:00. Therefore there were more operations
between 11:30 and 21:00 since that subteam had
more students. In total FTS had 8 students and
they performed 971 check-in operations (average
of 121 operations per student).
0
6
12
18
24/12/0
7
31/12/0
7
07/01/0
8
14/01/0
8
21/01/0
8
28/01/0
8
Time (Hours)
Figure 6. File check-in operation in for Team CO
0
6
12
18
24/12/0
7
31/12/0
7
07/01/0
8
14/01/0
8
21/01/0
8
28/01/0
8
Time (Hours)
Figure 7. File check-in operation in Team FTS
Revision level. Figure 8 shows revision
information during the critical last week. The revision
level indicates the level of refinement, where a high
number is a very fine revision. A low number is an
early revision.
As can be observed, the levels of revisions in FTS
are higher, meaning time was invested to revisit further
issues and make advanced refinements. All together
CO had 515 check-in operations in a lower level of
revision whereas FTS had 400 check-in operations
(28% less).
0
20
40
60
80
100
Revisions of last week
Revision level
FTS
CO
Figure 8: Revision level of last development week
Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009
6
Role scheme. Each of the students had a personal
role in addition to his development work [10]. Typical
roles were designer, tester, and tracker. We began the
semester with a specific role scheme that we had used
in previous years. However, the FTS students asked at
t+2 weeks that they need another role – a liaison
person. Specifically, the students asked to add the
liaison role in the two subteams such that the two
liaisons will be in charge of the communication and
coordination between the two subteams.
The liaison role is well-known in distributed
environments [7]. In this case, it shows us that the
students keep the communication rules since they
encountered problems that occur in such environments.
Development log documentation. When asked to
reflect on the process, the FTS students described the
special way they hand off the work at the end of their
working hours. When we checked the electronic forum
we found that the level of development log
documentation was markedly better for FTS. This is to
be expected since each subteam needed to inform the
other subteam about their main changes.
Metaphorically, we like to call this the passing of the
baton – just as one does in a relay race. A sample
dialogue appears in Appendix A.
4.2 Limitations of first quasi-experiment
As we noted before, quasi-experiments are
conducted as stepping stones for learning and
refinement and naturally have many limitations to
generalization. The main limitations were, first, that we
had a very small sample. Second, our measures were
imperfect. We forced a duration on the FTS team and
had to derive a number for the duration reduction.
We list additional secondary limitations: students
self-selected to the experimental condition. Students
could have “cheated” (although we monitored them
and are rather certain that they did not).
In a real world situation, there are about 8 iterations
in an Agile release before producing a deliverable.
Since the experiment was in an academic setting we
had to ask for a deliverable after only 1 measurable
iteration. This compression of the project life-cycle led
to the situation where the main time span we measured,
of the students’ iteration, included additional tasks
which are not usually done in a typical “real” iteration.
We note refinements for future quasi-experiments.
First, since our students were perfectionists and
continued working even past the deadline we shall
enforce the deadline, perhaps through incentives.
Alternatively, we have also designed a staggered
timeline for the FTS team that reduces the
programmers’ daily work window. In either case, we
have learned from the first experiment and our future
measures will be stronger.
Second, we will introduce some of our own process
learning into the next FTS teams by imposing some
process improvements. We could enforce the liaison
role in each subteam and the development log
documentation as coordination and synchronization
tools.
5. Conclusions
Our goal was to explore FTS and its implications
on speed in software development environments. We
presented the details of the FTS concept and the
outcomes of a first quasi-experiment designed to test
FTS and measure the speed of software work.
We point to two important conclusions that
emerged and need further investigation.
The first conclusion relates to our finding that both
co-located and FTS teams completed their work in the
same time. This is in contrast to previous results like in
[16] in which the software work of distributed teams
takes longer than in co-located teams. We suggest that
this happened in our case because of Agile
implementation-- specifically the tight iteration.
The second conclusion deals with the continuous
integration practice. We found out that implementing a
work procedure that includes developing small pieces
of code and test and continuous check-in every day
into one common repository may be significant to the
professional FTS hand-offs.
6. References
[1] Beck, K. Extreme Programming Explained. Addison-
Wesley, 2000.
[2] M. Betts, “24/7 global application development? Sounds
good, doesn't work”, Computerworld. September 16th,
2005.
[3] Brooks, F.P. The mythical man-month: readings in
software engineering. Reading, MA: Addison-Wesley,
1975.
[4] A. Cameron, ”A Novel Approach to Distributed
Concurrent Software Development using a “Follow-the-
Sun” Technique.””, Unpublished EDS working paper,
2004.
[5] E. Carmel, “Cycle-Time In Packaged Software Firms”,
Journal of Product Innovation Management, 12(2),
March, 1995.
[6] E. Carmel, “Building your Information Systems From
the Other Side of the World: How Infosys manages time
differences”, MIS Quarterly Executive, 5(1), 2006.
[7] Carmel, E. Global Software Teams: collaborating across
borders and time zones, 1999. Published by Prentice
Hall-PTR.
Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009
7
[8] Denny, Nathan, Igor Crk, and Ravi Sheshu Nadella,
Agile Software Processes for the 24-Hour Knowledge
Factory Environment, in Gupta, A. :Outsourcing and
Offshoring of Professional Services: Business
Optimization in a Global Economy, Publisher: IGI
Global, Hershey Pennsylvania, 2008.
[9] Y. Dubinsky, and O. Hazzan, “ The construction process
of a framework for teaching software development
methods”, Computer Science Education, 15:4, 2005, pp.
275–296.
[10] Y. Dubinsky, and O. Hazzan, “Using a Role Scheme to
Derive Software Project Metrics”, Journal of Systems
Architecture, 52, 2006, pp. 693–699.
[11] J.A. Espinosa, and E. Carmel, “Modeling Coordination
Costs Due to Time Separation in Global Software
Teams”, International Workshop on Global Software
Development, part of the International Conference on
Software Engineering, Portland, Oregon, USA, May,
2003.
[12] J.A. Espinosa, N. Nan, and E. Carmel “Do Gradations
of Time Zone Separation Make a Difference in
Performance? A First Laboratory Study”, International
Conference on Global Software Engineering, Munich,
Germany, August 27-30, 2007.
[13] I. Gorton, I. Hawryszkiewycz, L. Fung: “Enabling
Software Shift Work with Groupware: A Case Study”,
HICSS (3) 1996: 72-81.
[14] A. Gupta, S. Seshasai, and R. Aron, "Research
Commentary: Toward the 24-Hour Knowledge Factory -
A Prognosis of Practice and a Call for Concerted
Research" (November 19, 2006). Eller College of
Management Working Paper No. 1038-06 Available at
SSRN: http://ssrn.com/abstract=946012
[15] A. Gupta, Deriving Mutual Benefits from Offshore
Outsourcing: The 24-Hour Knowledge Factory
Scenario” To appear in Communications of the ACM,
2008.
[16] J. Herbsleb, J., et al. “An Empirical Study of Global
Software Development: Distance and Speed”, in 23rd.
International Conference on Software Engineering
(ICSE). 2001. Toronto, Canada: IEEE Computer
Society Press.
[17] Highsmith, J. Agile Software Development Ecosystems.
Addison Wesley, 2002.
[18] T. Hildenbrand, M. Geisser, T. Kude, D. Bruch, T.
Acker, "Agile Methodologies for Distributed
Collaborative Development of Enterprise Applications",
In workshop on Engineering Complex Distributed
Systems (ECDS), Complex, Intelligent, and Software
Intensive Systems (CISIS), 2008, pp. 540-545.
[19] T. Hildenbrand, F. Rothlauf, M. Geisser, A. Heinzl, T.
Kude, "Approaches to Collaborative Software
Development", In workshop on Engineering Complex
Distributed Systems (ECDS), Complex, Intelligent, and
Software Intensive Systems (CISIS), 2008, pp. 523-528.
[20] P. Jalote, G. Jain, “Assigning tasks in a 24-h software
development model”, Journal of Systems and Software
79(7): 904-911 (2006).
[21] B.A. Kitchenham, S.L. Pfleeger, L.M. Pickard, P.W.
Jones, D.C. Hoaglin, K. El-Emam, J. Rosenberg,
“Preliminary Guidelines for Empirical Research in
Software Engineering”, IEEE Transaction on Software
Engineering, 2004.
[22] M.R., Millson, S.P. Raj, and D. A Wilemon, “Survey of
Major Approaches for Accelerating New Product
Development”, Journal of Product Innovation
Management, 9(1): 53-69 (March, 1992).
[23] D. Redmiles, A. van der Hoek, B. Al-Ani, T.
Hildenbrand, S. Quirk, A. Sarma, S. Silveira, R. Filho,
C. de Souza, E. Trainer, "Continuous Coordination: A
New Paradigm to Support Globally Distributed
Software Development Projects". In Wirtschafts
Informatik, (49) , 2007, pp. S28-S38.
[24] M.D. Jr. Rosenau, “Schedule emphasis of new product
development personnel”, Journal of Product Innovation
Management, 6(4): 282-8 (December, 1989).
[25] C.S. Saunders, C. Van Slyke, and D. Vogel, ”My Time
or Yours? Managing Time Visions in Global Virtual
Teams,” Academy of Management Executive, 2004,
Vol. 18, No. 1, 19-31.
[26] Smith, P.G. and Reinersten, D.G. Developing products
in half the time. New York: Van Nostrand Reinhold,
1991.
[27] Setamanit, Siri-on, Wayne W. Wakeland, David Raffo.
Using simulation to evaluate global software
development task allocation strategies. Software
Process: Improvement and Practice, Vol. 12, Num 5,
September/October 2007, 491-503.
[28] Sooraj. P. and Mohapatra, Modeling the 24-hour
software development process, working paper Indian
Institute of Technology, Kharagpur, (2008).
[29] A. Taweel and P. Brereton, “Modelling Software
Development across Time Zones”, Information and
Software Technology, Volume 48, Issue 1 , January,
2006.
[30] J.J. Treinen, S.L. Miller-Frost, “Following the Sun:
Case Studies in Global Software Development”, IBM
Systems Journal, 45(4), October 2006.
[31] M. Yap, “Follow the sun: distributed extreme
programming development”, Proceedings of Agile
Conference, 2005.
Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009
8
Appendix A: Quasi-experiment commit log
messages
We illustrate passing the baton using messages
taken from the electronic forum of the FTS students.
The following are commit log messages that the
students used in order to share information and
coordinate among subteams. The first message is sent
by a student of SubTeamA followed by a message of a
student in SubTeamB, and then two messages of
SubTeamA.
From a student in SubTeamA:
Date: Mon, 14 Jan 2008 00:26:00
Subject: Commit log - 14/01/2008
RunDB:
- Add suspendThread
- Add resumeThread
Logic Package:
- remove unused peek method from all algorithms.
Added tests to algorithms.
From a student in SubTeamB
Date: Mon, 14 Jan 2008 21:27:36
Subject: commit log 14.1.07
UpdateRunInfo - fixed bugs and put
updateRunQueueList in comment (causing
exceptions)
From a student in SubTeamA:
Date: Mon, 14 Jan 2008 23:37:11
Subject: commit log 14/01/08
The "Done" button in addProcessorShell is fixed
accordingly "Meeting points"
There is some problem in addProcessShell with
"Process Memmory" text box.
From a student in SubTeamA:
Date: Tue, 15 Jan 2008 03:05:36
Subject: Re: commit log 14/01/08
Hi all, today - unfortunately - short day. Tomorrow
I'll do better.
Log:
SimulatorGUI:
- Repaired bug in editIODevice - now, when
updating, linked process get updated too.
Process memory works fine. It has been integrated
together with the available free memory in the
system. No memory - no data entry.
In the above commits - the two items in the paper
written today have been solved.
Good night.
Proceedings of the 42nd Hawaii International Conference on System Sciences - 2009
9
... Handoffs are performed on a daily basis to present a status update and to pass on unfinished tasks (project source) from one site to another. The next site will take these tasks in order to start its workday shift [20]. ...
... As team members are distributed across multiple time zones, organizations can develop software continuously for 24 hours. Thus, the development duration may be theoretically reduced by 50% if there are two sites and by 67% if there are three sites [20]. However, when the number of sites in a daily cycle increases, on average, the overall working speed of the sites also increases [18]. ...
Article
Context: Follow the Sun (FTS) development is a special case of Global Software Development. It is applied in the context of global projects to reduce the software development life-cycle duration. A number of studies have attempted to aggregate a better understanding of FTS development, but it is still an immature research area. Objective: This paper aims to investigate the existing empirical evidence about FTS research with a focus on identifying what research has been conducted in the area and which results have been obtained. Method: To achieve this goal, we performed a systematic mapping study to answer our research questions: “Which FTS studies have been published in the literature?” and “What empirical support is provided for them?” We investigated papers published between 1990 and 2017. The synthesis was made through classifying the papers into different categories (research topics, research methods, conferences and journals venues for FTS research, and countries involved in FTS research). Results: We selected 57 papers using a predefined search strategy. The majority of the papers discussing FTS were published in the International Conference on Global Software Engineering (ICGSE). The main research topic addressed is processes and organization development for FTS. Case studies combined with the interview as a research sub-method is adopted in the most studies performed in FTS. The majority of the existing research and the most active researchers in this topic are from the United States and Brazil. However, India and the United States are the countries that appear most often in the studies conducted to investigate FTS. Conclusion: Our findings suggest that FTS software development is an up-to-date research topic in Software Engineering. However, little information about FTS has been published over the last few years. The emergent need in this research is the development of evaluation research for testing FTS feasibility and effectiveness in practice.
... Additionally, due to the massive number of requirements' changes, the development organizations conduct the RCM process in an imprecise manner; thereby, significantly increasing the required amount of development cost, time, and human effort [20]- [22]. On the other hand, poor communication and coordination among the stakeholders can negatively impact the RCM process in GSD [23], [24]. Note that poor communication mainly occurs because of inefficient knowledge sharing, geographical distance, socio-cultural differences, and temporal distances [22], [25]- [28]. ...
Article
Full-text available
Global Software Development (GSD) is expanding quickly all around the world because of the various advantages offered to the customers, vendors, and other stakeholders involved in software project development. However, GSD is not a simple process as it faces multiple challenges that arise due to the mismanagement of the communication and coordination process. Meanwhile, Requirements Change Management (RCM) is a tedious and high resource-consuming process in GSD, which is further negatively affected by the poorly managed communication and coordination mechanisms. Multiple research studies have presented various theoretical and conceptual models to overcome the challenges during RCM in the GSD context. However, the existing methodologies lack in handling the communication and coordination challenges during the RCM process in the GSD context. In the literature, the researchers have concluded that a conceptual model can effectively reduce the communication and coordination challenges during RCM in GSD. Inspired by this, the current work aims at proposing a conceptual model to overcome and mitigate the communication and coordination challenges, while ensuring the effective requirement changes at offshore software development sites. Moreover, it would help the multiple stakeholders in understanding and managing the necessary resources before initiating the RCM process. To validate the proposed conceptual model, we have conducted a questionnaire-based survey to procure the results from the industrial experts working in the GSD domain. After analyzing the obtained results, we found that the proposed conceptual model is effective to handle the communication and coordination challenges up to 87%. In addition, almost 87% of the experts have agreed upon the correctness, identified challenges, and the mitigation practices in the proposed conceptual model necessary to improve the RCM process in the GSD context. Furthermore, it was observed that 75% of the experts also agreed upon the practical implementation of the proposed conceptual model in the software development industry to observe the heuristic performance of the proposed conceptual model.
... Additionally, due to the massive number of requirements' changes, the development organizations conduct the RCM process in an imprecise manner; thereby, significantly increasing the required amount of development cost, time, and human effort [16]- [18]. On the other hand, poor communication and coordination among the stakeholders can negatively impact the RCM process in GSD [19], [20]. Note that poor communication mainly occurs because of inefficient knowledge sharing, geographical distance, socio-cultural differences, and temporal distances [18], [21]- [24]. ...
Article
Full-text available
Global Software Development (GSD) is widely used by software development organizations to ensure the development of a cost-effective software product. GSD has now become a common engineering practice adopted by a significant number of multinational software development organizations, and even individuals (freelancers) are seeking numerous benefits including low development cost, highly skilled workers, and access to better development ideas. However, communication and coordination challenges remain a prominent research issue in the GSD context, while performing different project-related activities especially for Requirements Change Management (RCM). As a result, improper communication and coordination during RCM require additional time, cost, and development resources. Thus, it is of vital importance to ensure proper communication and coordination before initiating a software project. Inspired by this, current work aims at exploring and mitigating the communication and coordination challenges during RCM in the GSD context. To accomplish the targeted research objective, we performed a tertiary study to provide a landscape of the challenges that occurred during RCM in the context of GSD. Based on the performed study, we found 62 communication and 14 coordination challenges. In total, 107 mitigation strategies are explored and reported that effectively address the categorized sub-challenges of communication and coordination. Moreover, we proposed a conceptual model useful to address the communication and coordination challenges for the RCM process in GSD. Furthermore, we consulted the domain experts for the validation of the proposed conceptual model. Based on the promising results, we believe that this work supports the project managers in managing the cost and time-related issues in the GSD context. Consequently, the proposed conceptual model would help in optimally utilizing the scared software development resources.
... The "follow the sun" method refers to the practice of leaving work unfinished, usually software-related, and passing it from one site to another, generally on a daily basis. This practice allows the development of a software with a 24-hour coverage, increasing the speed of development as the work takes place in all shifts (Carmel, Dubinsky, & Espinosa, 2009;Carmel, Espinosa, & Dubinsky, 2010). During an interview conducted by one of the authors of the book, an interviewee from a software house described its participation in a project applying the "follow the sun" method as follows: ...
... The "follow the sun" method refers to the practice of leaving work unfinished, usually software-related, and passing it from one site to another, generally on a daily basis. This practice allows the development of a software with a 24-hour coverage, increasing the speed of development as the work takes place in all shifts (Carmel, Dubinsky, & Espinosa, 2009;Carmel, Espinosa, & Dubinsky, 2010). During an interview conducted by one of the authors of the book, an interviewee from a software house described its participation in a project applying the "follow the sun" method as follows: ...
... RCs in GSD also manage global, sequential and sociocultural gaps [54]. Because of these variables, it hardly occurs that scattered teams are able to mutually correspond and address requirements change in GSD [55]. ...
Article
Full-text available
Presently, global software development (GSD) is growing very rapidly. However, it is not an easy and straightforward process. Requirements engineering (RE) and requirements change management (RCM) both are considered as very challenging activities due to demanding rich communications. Because it is necessary to address geographical and cultural differences in GSD, this requirement makes RE and RCM challenging. This study investigates the importance of project management in RE and RCM processes. First, the frameworks with the phenomena of specialized project management are proposed for RE and RCM. Then, a survey and blind interviews of the experts are conducted to validate the proposed frameworks. Finally, statistical tools are applied to analyze the collected data. By utilizing the analyzed data, our results show the significant impacts of both frameworks (i.e., RE and RCM) in the GSD environment.
... Os estudos conduzidos nas empresas IBM [Treinen e Miller-Frost 2006] [Carmel Dubinsky e Espinosa 2009], Infosys [Carmel 2006], HP e Intel [Conchúir et al. 2006] mostram muitas características da aplicação do FTS. Com base nesses estudos, lições aprendidas foram identificadas para a aplicação do FTS. ...
Conference Paper
Full-text available
Follow-the-Sun (FTS) is a software development strategy applied to global software development by 24 continuous hours. However, the FTS is few practiced by companies and sometimes misunderstood. Thus, with purpose to provide a conceptual basis to FTS implementation, this paper presents the characterization and distinction of the FTS based on the comparison of others definitions found in the literature. In addition, we also present learned lessons with case studies already conducted in the area. Resumo. O Follow-the-Sun (FTS) é uma estratégia de desenvolvimento de software global que é aplicada para o desenvolvimento de software por 24 horas contínuas. No entanto, o FTS é pouco praticado pelas empresas e muitas vezes até mal compreendido. Dessa forma, com o propósito de fornecer uma base conceitual para a aplicação do FTS, neste artigo é apresentada a caracterização e distinção do FTS com base na comparação de outras definições encontradas na literatura. Além disso, apresentamos também lições aprendidas com estudos de caso conduzidos na área. 1. Introdução O Follow-the-Sun (FTS) é uma estratégia de Global Software Development (GSD) 1 que se caracteriza pelo desenvolvimento de software por 24 horas contínuas. O seu principal objetivo é reduzir o tempo de produção do produto para colocação no mercado (time-to-market) [Carmel Espinosa e Dubinsky 2010]. No entanto, o FTS ainda é pouco praticado pelas empresas e muitas vezes até mal compreendido, devido as dificuldades que há em implementá-lo. Na literatura, também não existe uma uniformidade de processos e conceitos entre os autores que abordam o assunto. Nesse trabalho, com o propósito de fornecer uma base conceitual para a aplicação da estratégia FTS pelas empresas, são apresentadas as características que definem o FTS e é realizada uma comparação entre os demais conceitos encontrados na literatura e que são referenciados com o mesmo sentido. Além disso, a partir de alguns estudos de caso publicados, foram identificadas lições aprendidas com a aplicação da estratégia FTS. A contribuição deste artigo está em fornecer um melhor entendimento e 1 O Global Software Development (GSD) é também referenciado na literatura como Global Software Engineering (GSE), Distributed Software Engineering (DSE) ou Desenvolvimento Distribuído de Software (DDS) [Prikladnicki e Audy 2010] [Jabangwe e Nurdiani 2010]. O termo será mantido em inglês, visto que a tradução em alguns casos pode comprometer o uso do termo.
Chapter
In Distributed Software Development, the cooperation among globally distributed development teams can reduce development cost and time. However, such benefits can only be achieved with teams that hold the specific technical background required to implement software modules. As a consequence, it is a key task to contrast technical background possessed by development teams against specified technical requirements expected to implement the various software project modules, making possible to identify the more skilled teams to develop each software module. In such a context, this paper proposes, implements and evaluates a fuzzy-based approach to support selection processes of distributed development teams, which are technically skilled to implement software modules in distributed software projects. As the main contribution, experimental results show that the proposed approach represents and formalizes an extremely complex problem in a systematic and structured way, allowing its direct or customized adoption in selection processes of globally distributed development teams.
Article
Full-text available
Research to date has not attempted to model coordination in global software teams. We formulate a preliminary collaboration model for a dyad to help us understand the consequences of time separation. We first describe the model and its theoretical foundations and we then evaluate the model by simulating several thousand observations and running regression models to inspect the effect of different variables on coordination costs. We then make suggestions for further extension of the model to include more complex scenarios with multiple collaborators and fewer assumptions. Our evaluation shows that the consequences of time separation are complex and that we need to understand them well before we can make claims about coordination outcomes in larger software teams that are separated by time zones.
Article
Full-text available
Advances in technology and group-collaboration software have promoted the use of Global Virtual Teams (GVTs). Because of these and other developments, managers face an increasingly diverse cultural landscape. Differences in GVT members' perceptions of time, or time visions, subtly influence the team's dynamics and performance. Time visions must be managed in order for the full potential of the GVT to be realized. This article explores the different dimensions that are typically employed when defining time. These dimensions are then combined to form four examples of cultural time visions. Three major problems associated with differing time visions in GVTs are identified, and approaches for dealing with these problems in multicultural GVTs are suggested.
Chapter
The growing adoption of outsourcing and offshoring concepts is presenting new opportunities for distributed software development. Inspired by the paradigm of round-the-clock manufacturing, the concept of the 24-Hour Knowledge Factory (24HrKF) attempts to make similar transformations in the arena of IS: specifically to transform the production of software and allied intangibles to benefit from the notion of continuous development by establishing multiple collaborating sites at strategically selected locations around the globe. As the sun sets on one site, it rises on another site with the day’s work being handed off from the closing site to the opening site. In order to enable such hand offs to occur in an effective manner, new agile and distributed software processes are needed, as delineated in this chapter.
Article
With the advent of globalization and the Internet, the concept of global software development is gaining ground. The global development model opens up the possibility of 24-h software development by effectively utilizing the time zone differences. To harness the potential of the 24-h software development model for reducing the overall development time, a key issue is the allocation of project tasks to the resources in the distributed team. In this paper, we examine this issue of task allocation in order to minimize the completion time of a project. We discuss a model for distributed team across time zones and propose a task allocation algorithm for the same. We apply the approach on tasks of a few synthetic projects and two real projects and show that there is a potential to reduce the project duration as well as improve the resource utilization through 24-h development.
Article
The emphasis personnel place on the development schedule is one factor in determining how quickly a new product will reach the market. Normally, each team member will stress different development program aspects in ways that depend on their own background, functional specialty and sense of what their management desires. In this article, Milton Rosenau describes a means to measure the emphasis an individual places on schedule and other program aspects. The results of such a measure can then be used to improve team congruity.