Developing industry relevant applications and in the same time achieving high code quality in a time-efficient way is a huge challenge for instructors of software engineering capstone courses. Although it helps to reduce prospective errors, teaching students how to achieve code quality and how to conducts code reviews in projects is challenging and often neglected. In this paper we describe the successful implementation of a branch based code review workflow and its introduction in a multi- customer capstone course. Our workflow includes a quality gate to prevent bad code being integrated in the main development branch. Before developers can integrate the implementation of new requirements, other experienced developers review the changes and pro- vide feedback concerning architectural decisions and coding style. Inexperienced developers learn best practices from more experienced ones and increase their knowledge about code quality and code reviews. We describe the integration of this workflow into our project-based organization and different teaching approaches. Within three months 100 students conducted more than 1000 code reviews with more than 1700 comments in 11 projects with customers from industry. After the project course we evaluated our approach in an online questionnaire and in personal interviews. One of the key findings is, that the amount of changes in reviews should small to prevent slowing down the development progress of the team. Our observations show that the students understood the code quality workflow and applied it regularly. They are convinced about its benefits and want to use it in future projects.
Mon 26 OctDisplayed time zone: Eastern Time (US & Canada) change
10:30 - 12:00
|Tackling Real World Complexity in a Software Engineering Student Project - An Experience Report|
|Continuous Testing in Introductory Computer Science Education|
Andrew Richardson University of British Columbia , Mira Leung University of British Columbia, Jordan Elder University of British ColumbiaFile Attached
|Teaching Code Review Management using Branch Based Workflows|