Distributed Development and Outsourcing
This course focuses on distributed projects and work in distributed teams, in which software development activities are carried out in multiple locations, and often in different countries. The overall goal of this course is to equip software professionals taking the course with the knowledge of fundamental differences of distributed projects, including outsourcing, in comparison with collocated development and skills necessary to overcome the associated challenges. The course will cover a set of practices useful for participating in, organising and managing distributed projects.
About the course
The course is given by.
MODULE 1 - Basic Concepts
- Organizational forms, including offshoring, onshoring, nearshoring, outsourcing and insourcing;
- Collaboration forms, including distributed, dispersed and virtual setups;
- Project types, including phase-based distribution, dispersed work, follow-the-sun, and a transfer.
MODULE 2 - Key Challenges of Distributed Work and Outsourcing
- The impact of cultural differences;
- The impact of time zone differences;
- The impact of geographic dispersion.
MODULE 3 - Feasibility of Offshoring and Outsourcing
- Realisation of offshoring and outsourcing benefits:
- Motivation for offshoring and outsourcing;
- Company expectations and assumed benefits;
- Realisation of these benefits in different companies;
- Short term versus long term effects.
- Calculating cost-savings
- Hidden costs in offshoring and outsourcing,
- Approaches to calculate the costs and cost-savings for software transfers, outsourcing and distributed development
MODULE 4 - Distributed Teamwork
- Communication practices,
- Coordination of work,
- Prerequisites for virtual teamwork and teleworking,
- Establishing shared mental models,
- The importance of trust-building in distributed projects and virtual teams,
- Cultural differences and bridging mechanisms,
- Knowledge management.
MODULE 5: Distributed Project Management
- Partner selection, project staffing, training and the role of attrition,
- Trade-offs with respect to task selection for distributed work and outsourcing,
- Roles and responsibilities in large-scale projects,
- Modularization and task allocation.
- Understand the risks inherited in global software projects;
- Demonstrate knowledge of practices that alleviate these risks;
- Apply this knowledge and understanding in valuation of feasibility of global projects.
Darja Smite, Blekinge Institute of Technology