Teaching Globally Distributed Software Development in the Classroom
Posted by adam feber on Thu, Oct 06, 2011 @ 10:36 AM
Most major software development projects today are done utilizing distributed teams, many times across multiple continents. But how do you prepare computer science students in the classroom for this reality? How do you give students hands-on training in globally distributed team development before they are thrown into the real world?
In 2009, Stuart Faulk and Michal Young, professors at the University of Oregon, received a grant from the National Science Foundation to build a course and curriculum around Globally Distributed Software Development.
The course is collaboratively taught with Peking University in China. Teams are created and divided so that half of the team is in the United States and half is in China. Due to a tight 10-week course schedule, teams are given a project to save time. Last semester students worked on a face recognition Android application.
“The course gives students real-life experience with the issues of globally distributed software development, such as the difficulty of communication and coordination from a distance and language and cultural difference.” Said Stuart Faulk, Professor in the Department of Computer Science and Information at the University of Oregon.
The classes used Assembla Public Workspaces to coordinate projects, facilitate communication, and teach distributed software development best practices. Through the workspaces, teams shared all of their project files, document requirements and team roles in wiki pages, created tickets for tasks, kept conversations centralized with the message board, and used code repositories for project code; all from 10,000 miles apart.
This past summer, the University of Oregon also hosted a two-week workshop that brought together students from the Pacific Northwest and Asia to learn about globally distributed software development in a cross-cultural classroom setting. Assembla workspaces were used again for project collaboration.
“Assembla’s collaboration tools are very effective when it comes to organizing a distributed team and keeping team members in sync as projects progress” said Faulk. “The Web-based workspaces also provide a way for the instructors to monitor progress and evaluate the collaborative efforts of each team.”
The course has been a success and will be offered again in the Spring semester of 2012. The ultimate goal of the course is to create a curriculum that can be introduced into colleges and universities around the world.