Be the first to like this
Experiences in using GitHub for collaborative software development in project seminars using and creating open source software.
Daniel Nüst (email@example.com, 52°North Initiative for Geospatial Open Source Software GmbH)
Thomas Bartoschek (firstname.lastname@example.org, Institute for Geoinformatics Münster)
Open source software is particularly suitable for teaching and organisations like Teaching Open Source (http://teachingopensource.org) present actively advertise this. In this talk we want to present some practical benefits that open source programming and publishing software on an open online platform has for teaching project-oriented software engineering seminars at university level. In these courses students together develop a new system for a specific task in form of a group project. For project groups, we suggest to use an adjusted variant of Scrum for project management (http://en.wikipedia.org/wiki/Scrum_%28software_development%29), git as source code management system (http://git-scm.com/), and GitHub as a collaboration platform (http://github.com/, https://education.github.com/). Thanks to GitHub’s collaboration models such as “fork & pull”, each student’s work, may they be in lines of code or contributions to a discussion, can be tracked. Students fulfil different tasks in a project setting: some develop, some spend their time issuing bugs or improving documentation. But for all of them GitHub allows to quantify contributions and set concrete goals, e.g. two pull requests created, one merged, and five issues written. GitHub also offers graphical overviews of project activities. The goal is of course not to expose the student but to create a transparent environment for evaluation and grading. Teachers can even weigh in on discussions and make suggestions on the same platform as the students.
In our experience, students estimate very well their performance in comparison with their colleagues. However, using Scrum as a development model is challenging for them. We adopted the classic Scrum schedule and defined two week long sprints. Students sometimes quarrel with the role of supervising other students and delegating tasks among their peers. But in the end, the clear schedule and the focus on the iterative and communicative aspects of project management are a key to ensure success. Teachers should be ready to step in a Scrum masters and to support the product owners and must be open to adjust plans and expectations in the same way that the students have to.
We think this approach can considerably increase quality of a course from both a teaching and a learning perspective.