Bangalore Fort and Palace International Conference on
Global Software Engineering

ICGSE 2008
Bangalore, India
August 17-20, 2008

computer sigse
series
 
Home
ICGSE 2009
Important Dates
Conference Schedule
Keynote Talks
Technical Program
Tutorials
Doctoral Symposium
Workshops
Posters
Organizing Committee
Program Committee
Steering Committee
CFP
Registration
Venue
Helpdesk Information
Hotel Information
Visa and Travel Information
Corporate Sponsors
ICGSE 2007
ICGSE 2006
Contact Us
  Tutorial 4: Processes for Multi-Site Software Development
Half day tutorial

Abstract
Coordinating, managing, and ensuring the quality of development artifacts are difficult for globally distributed software development projects due to time, space, communications, and cultural problems. Global software development projects not only require new processes, but software development tools must also be standardized across the various development sites. A number of experimental processes being used on distributed development projects are summarized, and the lessons learned from such projects are discussed.

Intended Audience
Software engineers and project managers

Tutorial Level
Introductory

Tutor(s)
Daniel J. Paulish (Distinguished Member of Technical Staff, Siemens Corporate Research, USA)
Alberto Avritzer (Member of Technical Staff, Siemens Corporate Research, USA)
Raghvinder Sangwan (Assistant Professor, Penn State University, USA)

Content
Coordinating, managing, and ensuring the quality of development artifacts are difficult for globally distributed software development projects due to time, space, communications, and cultural problems. For example, the author of a design document and the reviewer of the document may sit thousands of miles apart from each other across multiple time zones, which means that the usual review processes used for collocated projects may not be applicable. Global software development projects not only require new quality processes but software development tools must also be standardized across the various development sites. Even simple decisions like "all requirements specifications will be written in English" need to be made before development is initiated and communicated to all the remotely distributed project team members. This half-day tutorial summarizes some of the challenges to developing high quality software that are unique to distributed development projects. A number of experimental practices being used on distributed development projects are summarized, and the lessons learned from such projects are discussed.
Many of the multi-site development processes described were experimentally applied during the Global Studio Project (GSP). The Global Studio Project simulated an industrial multi-site software development project using university students located in four continents. Many of the lessons learned address how to overcome the communications problems of projects where team members do not know each other and may never meet. Geographically distributed projects lose much "informal" communications, such as what may occur around a water cooler or coffee room when software engineers are collocated at one site. Communications problems are often complicated by inadequate requirements and design artifacts and intercultural issues. Some project tasks are amenable to be distributed and others are better done at a single site. In many cases, globally distributed project processes strive to keep individual teams small to be able to apply agile methods. As a result, such processes sometimes have difficulty scaling up for very large projects which often require resources distributed around the world.
This half-day tutorial will describe multi-site development processes that have been successfully used on multiple projects, such as the "Extended Workbench Model" and "System of Systems Model". However, processes which work well in Boston do not always work as well in Bangalore. Thus, tailoring of such processes is necessary and the decisions that must be made by each project team are described. A student taking this tutorial will be given a starting process framework which can be tailored to a specific project using our experiences with practices that worked and didn't work across many projects. Project managers initiating such global developments for the first time can benefit from checklists, best practices, processes, and measures developed from prior successful projects.
The tutorial will be given based on case studies and personal experience from many global software development projects. A couple "proven" processes will be described in detail, although there are many different processes that can be used for multi-site projects. In many cases, the processes used for distributed projects are often the same processes that are used for large software projects. However, for distributed projects, there is additional complexity due to multiple time zones and intercultural variables that make communications among team members more difficult. The processes and tools described are designed to overcome the communications problems among project team members that are inherent in today's global software development projects.

Outline
The tutorial is structured as follows:
  1. Example processes: Extended Workbench Model, System of Systems Model
  2. Example project: Global Studio Project
  3. Lessons Learned
About the tutor(s)

Daniel J. Paulish is a Distinguished Member of Technical Staff at Siemens Corporate Research with over twenty years experience in software engineering management. He performs research on global software development practices, processes, organizations, and tools, and he is the leader of the Siemens Software Initiative in the Americas. He is the author of Architecture-Centric Software Project Management and a co-author of Global Software Development Handbook, Software Metrics: A Practitioner's Guide to Improved Product Development, and the forthcoming Software Systems Requirements Engineering in Practice. Dr. Paulish was a resident affiliate at the Software Engineering Institute, and holds a Ph.D. in Electrical Engineering from the Polytechnic Institute of New York.

Alberto Avritzer is a Member of Technical Staff at Siemens Corporate Research in Princeton, NJ. He has twenty years experience in computers and telecommunications with expertise in global development processes, performance engineering, and software architecture. He is certified as a Project Management Professional (PMP) of the (PMI) Project Management Institute, as a Systems Architect from AT&T's Architecture Certification Program, and holds a Master's Certificate in Project Management. He lectures internationally on performance engineering topics, and he is the General Chair of the Workshop on Software Performance (WOSP) in 2008. Dr. Avritzer holds a Ph.D. in Computer Science from UCLA.

Raghvinder Sangwan is an Assistant Professor at Penn State University in Malvern, PA and a Visiting Scientist at the Software Engineering Institute in Pittsburgh, PA. He has lectured on global development processes and software architecture design methods. He is a co-author of the Global Software Development Handbook. He has been a consulting technical staff member at Siemens Corporate Research and an architect at Siemens Healthcare Systems. Dr. Sangwan holds a Ph.D. in Computer and Information Sciences from Temple University.