Both educational researchers and industry experts agree that there is no substitute for learning by doing when it comes to software development. Our experience at the Department of Computer Science, University of Helsinki, shows the same: you need theory to build mental models of programming and software design,but you also need to test and exercise those mental models in reality to actually produce working software. In addition, you need to experience software development as a collective effort to really understand how your contribution becomes a part of a larger whole, and how your actions in the development process affect both the process and the result.
For these reasons (and because it’s cool), we have built the Software Factory at our department. In the Software Factory, students own their projects, and through a scaffolding and fading process, we transfer the full responsibility of all aspects of the project to our students. (Of course, our teachers and instructors are still there both to raise the bar and to provide support when it’s needed.) This year, our project is a collaboration between several universities and open source projects from around the world. Coordinated by Stanford University and sponsored by Facebook, this project brings together more than 150 students to work on eight different open source projects in virtual teams. To kick off the collaboration, we visiting Facebook in San Francisco, California for a three-day intensive Hackathon.
This blog will follow our students as they are onboarded into the open source projects and experience the cutting edge of software development in a globally distributed environment.
Fabian Fagerholm, Software Factory operational coordinator