A distributed project for a globalized world
The Distributed and Outsourced Software Engineering course at ETH Zurich (DOSE, internally known as the Distributed Software Engineering Laboratory) includes, as its key component, a distributed project in which student teams over several universities collaborate. Since it started in 2007, this multi-site student project, the first of its kind, has attracted an increasing number of institutions and given hundreds of students the opportunity to learn hands-on about the issues and successful techniques of distributed development.
Participation in the project, and the course as a whole, is open to any interested university meeting the conditions described below.
Distributed Software Development
Industrial software construction is, increasingly, a distributed activity. The scenario of a single team working in a single location for a set period, once the norm, is fast becoming the exception.
Distributed development, however, raises considerable problems. As everyone knows, software engineering is difficult; if it is hard to make a project succeed when everyone is in the same building, splitting the team across continents, time zones, languages and cultures does not help. Hence the many failures reported in outsourced and offshore projects.
Universities, in their software engineering education, should teach the principles and techniques that will avoid such failures, and more generally emphasize distributed development as a key component of modern software engineering, not likely to go away in any near future. The standard curriculum does not yet, however, cover it, in particular because it is difficult to organize project work that mimics the conditions of distributed projects.
The DOSE project provides a controlled environment for such a project. For instructors interested in empirical software engineering research, it also opens the way for interesting studies, as attested by the long list of publications (see below) that have already resulted from the DOSE experience.
How to join DOSE
- The project must be part of a course or lab (students have to get credit points for the participation).
- Students must be at least in their third year of studies (computer science or equivalent).
- Students must have a basic knowledge of Eiffel prior to course. We are happy to provide material if you wish to organize a training session. Eiffel is easy to learn for anyone with O-O experience (say in Java).
- The project starts on the first week of October and finishes on the third week of December.
- There must be at least one contact person (assistant of professor), and preferably a team, able to respond within at most 24 hours to any issue or request arising throughout the project period.
Universities involved in previous DOSE projectsSince 2007, we have developed distributed projects in collaboration with several universities:
- ETH Zurich, Switzerland
- Cairo University, Egypt
- Hanoi University of Science and Technology, Vietnam
- ITMO National Research University, Russia
- IT University of Copenhagen, Denmark
- Innopolis University, Russia
- Korea Advanced Institute of Science and Technology, Republic of Korea
- Odessa Polytechnic National University, Ukraine
- Politecnico di Milano, Italy
- Pontificia Universidade Catolica do Rio Grande do Sul (PUCRS), Brazil
- State University of Nizhny Novgorod, Russia
- The University of Adelaide, Australia
- University of Crete, Greece
- University of Delhi, India
- University of Debrecen, Hungary
- University of Rio Cuarto, Argentina
- University of Zurich
- Universidad Politecnica de Madrid, Spain
- Wuhan University, China
DemosWatch some demos from DOSE projects of previous years:
- Ingenious (DOSE2012)
- Dominion (DOSE2012)
- Astral Masters (DOSE2011)
- Chinese Checkers (DOSE2011)
- Guess Who (DOSE2011)
- Uno (DOSE2011)
- Puerto Rico (DOSE2011)
- Tien Len (DOSE2009)
- Briscola Chiamata (DOSE2009)
H.-Christian Estler, Martin Nordio, Carlo A. Furia and Bertrand Meyer: Awareness and Merge Conflicts in Distributed Software Development. In proceedings of the 9th International Conference on Global Software Engineering (ICGSE), IEEE, 2014.
H.-Christian Estler, Martin Nordio, Carlo A. Furia, and Bertrand Meyer: Distributed Collaborative Debugging In Proceedings of the 7th International Conference on Global Software Engineering (ICGSE), 2013.
H.-Christian Estler, Martin Nordio, Carlo A. Furia, and Bertrand Meyer: Unifying Configuration Management with Awareness Systems and Merge Conflict Detection In Proceedings of the 22nd Australasian Software Engineering Conference (ASWEC), 2013.
H.-Christian Estler, Martin Nordio, Carlo A. Furia, Bertrand Meyer, Johannes Schneider: Agile vs. Structured Distributed Software Development: A Case Study In Proceedings of the 7th International Conference on Global Software Engineering (ICGSE) IEEE, pages 11--20, 2012. [PDF] [BIB]
Martin Nordio, H.-Christian Estler, Bertrand Meyer, Julian Tschannen, Carlo Ghezzi, and Elisabetta Di Nitto: How do Distribution and Time Zones affect Software Development? A Case Study on Communication In proceedings of the 6th International Conference on Global Software Engineering (ICGSE), IEEE, pages 176--184, 2011. [PDF] [BIB]
Martin Nordio, Carlo Ghezzi, Bertrand Meyer, Elisabetta Di Nitto, Giordano Tamburrelli, Julian Tschannen, Nazareno Aguirre, Vidya Kulkarni: Teaching Software Engineering using Globally Distributed Projects: the DOSE course, In Collaborative Teaching of Globally Distributed Software Development - Community Building Workshop (CTGDSD), ACM, 2011. [PDF] [BIB]
Martin Nordio, Mathai Joseph, Bertrand Meyer, and Andrey Terekhov: Software Engineering Approaches For Outsourced and Offshore Development (SEAFOOD), 4th International Conference, St. Petersburg, Russia, Lecture Notes in Business Information Processing 54, Springer-Verlag, 2010. Springer-Online
Martin Nordio, Roman Mitin and Bertrand Meyer: Advanced Hands-on Training for Distributed and Outsourced Software Engineering, In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, ACM. 2010. [PDF] [BIB]
Kay Berkling, Mathai Joseph, Bertrand Meyer and Martin Nordio: Software Engineering Approaches For Outsourced and Offshore Development (SEAFOOD), revised papers, Lecture Notes in Business Information Processing 16, Springer-Verlag, 2009. Springer-Online
Martin Nordio, Roman Mitin, Bertrand Meyer, Carlo Ghezzi, Elisabetta Di Nitto and Giordano Tamburelli: The Role of Contracts in Distributed Development, In Proceedings of Software Engineering Advances For Offshore and Outsourced Development, Lecture Notes in Business Information Processing 35, Springer-Verlag, 2009. [PDF] [BIB] Springer-Online
Bertrand Meyer, Marco Piccioni: The Allure and Risks of a Deployable Software Engineering Project: Experiences with Both Local and Distributed Development, In Proceedings of IEEE Conference on Software Engineering & Training (CSEE&T), Charleston (South Carolina), ed. H. Saiedian, pages 3-16, 2008. [PDF]
Bertrand Meyer: Offshore Development: The Unspoken Revolution in Software Engineering, In Computer (IEEE), pages 124, 122-123, 2006. [PDF]