Last Modified 1-1-2011

Shop the Low Price Leader from Home:
Wal-Mart.com USA, LLC

IUSB

Home



Software Engineering

Software Architecture

User Interface Design

Software Reusability

Component Based SE

Service Orientation

Global Software Development


Software Architecture

Architecture Introduction

Software Life Cycle

Architecture Design

Architecture Design Decisions

Architectural Views

Architecture Styles

Main Program with Subroutines

Abstract Data Type

Implicit Invocation

Pipes And Filters

Repository Style

Layers Architectural Style

Architecture Assessment

Architecture Summary


User Interface Design

Seeheim Model

Part-Whole Decomposition

Model View Controller

User Interface Aspects

Human Computer Interaction

Humanities

Artistic Design

Ergonomics

HCI Models

HIP Models

IS Mental Models

UIDC Models

Interactive System Design

Design Activity Structure

Design Collaboration

Task Analysis

HCI Task Analysis

Collaborative Work

Collection Methods

Task Analysis

Specification Details

UVM Dialog

UVM Representation

UVM Evaluation

Decision Evaluation

Specification Evaluation

Prototype Evaluation

Summary


Component Based SE

CBSE Justification

Component Models

Component Forms

Component Architecture

CBSE Development Process

CBSE System Development

Component Assessment

Component Development

Architectural Approaches

Product Lines

COTS Development

Select Approach

Summary


Service Orientation

Description & Communication

Service Oriented Architecture

Web Services

XML

SOAP

WSDL

UDDI

BPEL4WS

SOSE

Summary


Global Software

Challenges


Global Software Development

In Global Software Development projects, work is distributed over sites that operate in different geographical areas, in different time zones. Culture differences can vary widely. These challenges concern the way work is coordinated and controlled.

Members of a collocated team development are usually housed within walking distance. Psychology tells us that if we have to walk more than 100 feet or climb a set of stairs, we are more likely to reinvent the wheel, rather than ask a colleague. This would indicate that teams should share a project room. Experimental studies confirm that frequent informal exchanges occur in a collocated environment. These informal changes foster collaboration, information sharing, mutual learning, and efficient communication.

The tasks of a software development team are interdependent. They coordinate their activities to reach a set of common goals and share the responsibility for reaching those goals. Traditional, collocated software development teams fit this scenario. A global, or virtual team has the same goals and objectives, but it has multiple sites, different time zones, most likely different cultures, and perhaps even different organizations.

Many organizations have outsourced part of the work in an attempt to lower labor cost. Mostly, low-end tasks are outsourced, while high-end activities remain in the high-wage countries. It is unknown if this situation will continue or undergo changes. However, there are many factors that can be considered when deciding where to locate software development activities:

  • Faster Delivery because of follow the sun development. Software development is started by a team of developers at one development site, and when their work day ends, the work can be shifted to a team where the workday has just begun. In theory, work could continue around the clock.

  • Talent Access: In some countries there is a permanent shortage of skilled developers. To alleviate this problem, work can be moved to a country where there is an abundance of skilled developers.

  • Work Modularization: Because of the nature of global software development, work will tend to be split into modules that require a minimum of communication between development teams. In this case, global development encourages desirable design properties.

There is little proof that these alleged advantages actually materialize. For example, around-the-clock development often results in shifts that overlap, so that developers from the different sites can have direct contact and collaborate. Work then shifts to overlapping hours, this can result in quite a bit of overtime at either side ensuring that direct contact is possible. Cost advantages can be offset by high travel costs, higher maintenance costs, and collaboration costs. Studies indicate that if wages in one area are 10% of those in another area, the resultant savings may be in the range of 20-40%.

Challenges of Global System Development

One of the reasons for the success of the collocated team is that many things are shared between team members. The teams will share tools and most likely conform to the same process. The team shares information and they all have an understanding of the job to be done. It has been observed that developers would spend up to 75 minutes per day in unplanned personal interaction. Sometimes development teams will share the same office area on purpose, to stimulate interaction and speed things up. A shared room or office is one of the distinguishing factors of agile development.

These features disappear once the work becomes distributed. The challenges that face global software development all have to do with Distance: temporal distance, geographical distance and sociocultural distance. In a similar manner, the challenges of software development can classified in the following 3 categories:

  1. Communication and Collaboration between team members.

    • Individual Team Members need to share information and work together.

  2. Coordination of tasks: The work done at different sites needs to be coordinated.

  3. Control of the Work: Management must keep in control of the work done at different sites.

Combining the distance aspect with the above classification now yields the following table:



  Temporal Distance Geographical Distance Sociocultural Distance
Communication Effective Communication Effective Information Exchange
Team Building
Cultural Understanding
Coordination Coordinations Costs Task Awareness
Sense of Urgency
Effective Cooperation
Expertise
Control Minimizing Delays Accurate Status Information
Uniform Process
Quality
Tolerance

Figure GSD-1: Global System Development Challenges


Expanding on the table entries in Figure GSD-1:

Effective Communication: When team members are at different locations, communications are often asynchronous (email). Asynchronous communication is less effective than synchronous communication. Receiving immediate clarification on a misunderstood message is not possible. Problems may crop up at a later stage if people are reluctant to contact a colleague at a remote site. They would rather guess at an answer and accept the risks.

Coordination Costs: For global software projects the rule is coordination costs are higher than collocated projects. In some cases, representatives from the client organization are located at a development site for the duration of the project. Key people such as the architects and managers frequently travel to the different teams to have personal contact and have onsite meetings. The infrastructure will also incur some costs: such as video conferencing with the required hardware, software and installation.

Minimizing Delays: When an issue arises that requires information from another site, a delay is inevitable. The other site may have just gone home for the day, reaction time may spread from one day into the next. The resolution may even have to wait until a videoconference can be scheduled. Asynchronous communication easily leads to delays where the same issue would be dealt with immediately at a collocated site.

Effective Information Exchange: For teams located at geographically different sites, informal, unplanned contact is almost non-existent. During unplanned meetings, passing in the hallway, the lunchroom or water cooler, highly valuable and relevant information is often exchanged. Small issues are often easily settled in an uplanned meeting as two developers pass in the hallway. On the other hand, the same issues may have to wait until the next formal teleconference meeting, and with the formal setting with many other developers present may lead to reluctance in sharing ideas and opinions.