A platform for teaching applied distributed software development: The ongoing journey of the Helsinki software factory

Teaching distributed software development (DSD) in project courses where student teams are geographically distributed promises several benefits. One main benefit is that in contrast to traditional classroom courses, students can experience the effects of distribution and the mechanisms for coping with distribution by themselves, therefore understanding their relevance for software development. They can thus learn to take more care of distribution challenges and risks when starting to develop software in industry. However, providing a sustainable environment for such project courses is difficult. A development environment is needed that can connect to different distributed teams and an ongoing routine to conduct such courses needs to be established. This article sketches a picture of the Software Factory, a platform that supports teaching distributed student projects and that has now been operational for more than three years. We describe the basic steps of conducting Software Factory projects, and portray experiences from past factory projects. In addition, we provide a short overview of related approaches and future activities.

[1]  Pekka Abrahamsson,et al.  The set-up of a software engineering research infrastructure of the 2010s , 2010, PROFES '10.

[2]  Jürgen Münch,et al.  Teaching software process modeling , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[3]  Bertrand Meyer,et al.  Teaching software engineering using globally distributed projects: the DOSE course , 2011, CTGDSD '11.

[4]  Pekka Abrahamsson,et al.  On the Impact of Kanban on Software Project Work: An Empirical Case Study Investigation , 2011, 2011 16th IEEE International Conference on Engineering of Complex Computer Systems.

[5]  Ivica Crnkovic,et al.  Distributed Software Development course: Students' and teachers' perspectives , 2012, 2012 Second International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[6]  Daniela E. Damian,et al.  Teaching a globally distributed project course using Scrum practices , 2012, 2012 Second International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[7]  Watts S. Humphrey,et al.  Teaching disciplined software development , 2008, J. Syst. Softw..

[8]  Marcelo Cataldo,et al.  Siemens Global Studio Project: Experiences Adopting an Integrated GSD Infrastructure , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[9]  Henrik Kniberg,et al.  Kanban and Scrum - Making the Most of Both , 2010 .

[10]  Pekka Abrahamsson,et al.  Building blocks for self-organizing software development teams a framework model and empirical pilot study , 2010, 2010 2nd International Conference on Software Technology and Engineering.

[11]  Sabrina Marczak,et al.  Towards a GSE international teaching network: Mapping Global Software Engineering courses , 2012, 2012 Second International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[12]  Jaakko Kurhila,et al.  Extreme apprenticeship method: key practices and upward scalability , 2011, ITiCSE '11.