Dual-Track Agile in Software Engineering Education
The fields of Software Engineering and Human-Computer Interaction have traditionally evolved in parallel, with little cross-pollination, both in industry and academia. However, effectively delivering software products offering superior user experiences requires a tight collaboration between professionals from both fields. In recent years, some approaches combining the two perspectives have been proposed in industry, including dual-track agile software development. Yet, very few courses cover those integrated approaches in academia, and it appears that no publication so far has reported the existence of a scholarly course covering dual-track agile. This paper introduces a course that addresses the divide between Software Engineering and Human-Computer Interaction through an integrated approach to requirements engineering and interaction design, in the context of dual-track agile. The course design combines traditional and flipped-classroom delivery, together with project-based learning. During the course project, students learn to design and implement software systems that address real problems and satisfy real stakeholders’ needs by being useful, usable, and enjoyable to use. This paper documents the author’s experience designing and teaching the course over the past four years. It aims to convince, inspire, and enable others to teach similar courses, bringing interaction design to the forefront of agile software development.