Home Search AAA
Number of visits:

Starting from 2003/2004, a number of things have changed in the DSD course. This page aims to present today's state of the course, featuring a presentation showing practical explanations on how things are done nowadays. It also includes 10 advices for successful implementation of such courses, which learned throughout the years.

For more information and details, please refer to research papers written about the DSD course, which go into specifics on several areas of this project-based course.

Today, Distributed Software Development course (DSD) is a joint course between

  • University of Zagreb, Croatia (FER)
  • Mälardalen University, Västerås, Sweden (MDH)
  • Politecnico di Milano, Italy (POLIMI)

It has been running since 2003, as an elective course on the Masters level of software engineering and similar education. Around 500 students have taken the course since the beginning, coming from ~45 countries and 6 continents (studying at one of DSD sites), working on ~75 student projects, out of which ~65 were in distributed project teams. The teaching staff is also diverse and distributed into 3 universities, but aims to run the course as “tightly coupled” and coherent as possible, with joint lectures, student presentations, project supervision and grading.

The course is project-based, but includes a number of lectures related to Global Software Engineering (GSE) and distributed work, best practices in project organization, cultural differences, as well as talks from our industry partners about real-life experiences in GSE. These lectures take place in the first weeks of the course.

The project work, which starts in parallel with the lectures, provides students with the opportunity to work in distributed groups of 6-8 team members, distributed into 2 locations. Each team carries out one complex software project, often proposed by an industry partner, going through all project phases; from detailed project description and requirements gathering from the customers, through architecture design, implementation, to testing and documenting.

Students are exposed to all challenges present in GSE – team organization, distributed collaboration and communication in a foreign language, decision-making process, knowledge transfer, self-assessment, cultural differences, etc. All teams follow the agile development method, in particular, the SCRUM framework. They choose SCRUM Master and Product Owner from the team members and have the freedom in organizing their project work and collaboration, selecting the technologies, etc.

An important part of the project work are also 5-6 presentations throughout the course, where students describe their project status to other teams and teaching staff. Additionally, each team is regularly supervised by two staff members, one per each site, with the purpose of helping students to work effectively in the distributed context - completely new to them - and to make the right technical and organizational choices for the project success.

At the end of the course, a thorough project evaluation takes place, with more than 40 elements being evaluated, related to the quality of product, process, documentation and presentations. Team members are provided a set of points for the whole team and asked to distribute the points among themselves. The final grade of each student is given by the teaching staff based on several course elements, including the points acquired from the team. In 14 years of anonymous course evaluations, students highly regard the course as relevant and useful, different from all the other courses, an example to the others. Evaluation data is available at the DSD website.