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.

[1]  Rachel Hinman The Mobile Frontier , 2012 .

[2]  José Antonio Pow-Sang,et al.  A systematic review of usability techniques in agile methodologies , 2014, EATIS '14.

[3]  Paul Ralph,et al.  Practice and perception of team code ownership , 2016, EASE.

[4]  Paul Ralph,et al.  The Product Backlog , 2019, 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE).

[5]  M. Lage,et al.  Inverting the Classroom: A Gateway to Creating an Inclusive Learning Environment , 2000 .

[6]  Paul Ralph,et al.  Re-imagining a Course in Software Project Management , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET).

[7]  Tayana Conte,et al.  The Students' Perspectives on Applying Design Thinking for the Design of Mobile Applications , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering Education and Training Track (ICSE-SEET).

[8]  Mike Cohn,et al.  User Stories Applied: For Agile Software Development , 2004 .

[9]  Rex Hartson,et al.  The UX book, process and guidelines for ensuring a quality user experience by Rex Hartson and Pardha S. Pyla , 2012, SOEN.

[10]  Hamid Hadim,et al.  Enhancing the engineering curriculum through project-based learning , 2002, 32nd Annual Frontiers in Education.

[11]  Hakan Erdogmus,et al.  Flipping a Graduate-Level Software Engineering Foundations Course , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering Education and Training Track (ICSE-SEET).

[12]  Davide Fucci,et al.  A First Implementation of a Design Thinking Workshop during a Mobile App Development Course Project , 2018, 2018 IEEE/ACM International Workshop on Software Engineering Education for Millennials (SEEM).

[13]  Ahmed Seffah,et al.  The obstacles and myths of usability and software engineering , 2004, CACM.

[14]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[15]  Jan Gulliksen,et al.  Human-Centered Software Engineering - Integrating Usability in the Software Development Lifecycle , 2011 .

[16]  Paul Ralph,et al.  Software Development Waste , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[17]  Mark J. Sebern,et al.  Revisions to Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering , 2012 .

[18]  Ahmed Seffah,et al.  Persona as a Tool to Involving Human in Agile Methods: Contributions from HCI and Marketing , 2014, HCSE.

[19]  Desirée Sy,et al.  Adapting usability investigations for agile user-centered design , 2007 .

[20]  Bill Buxton,et al.  Sketching User Experiences: Getting the Design Right and the Right Design , 2007 .

[21]  Nigel Cross,et al.  Creativity in the design process: co-evolution of problem–solution , 2001 .

[22]  Alexander Maedche,et al.  Exploring principles of user-centered agile software development: A literature review , 2015, Inf. Softw. Technol..

[23]  Paul A. Cairns,et al.  A systematic literature review for agile development processes and user centred design integration , 2014, EASE '14.

[24]  Paul Ralph,et al.  Sustainable Software Development through Overlapping Pair Rotation , 2016, ESEM.

[25]  Hakan Erdogmus,et al.  Introducing Low-Stakes Just-in-Time Assessments to a Flipped Software Engineering Course , 2019, HICSS.

[26]  Newton M. Campos The Lean Startup: How today's entrepreneurs use continuous innovation to create radically successful businesses , 2014 .

[27]  Alan Cooper,et al.  The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity (2nd Edition) , 1999 .

[28]  Lynn Miller Case study of customer input for a successful product , 2005, Agile Development Conference (ADC'05).

[29]  Ryan T. Wright,et al.  IS 2010: Curriculum Guidelines for Undergraduate Degree Programs in Information Systems , 2010, Commun. Assoc. Inf. Syst..

[30]  William Buxton Sketching and Experience Design , 2005, INTERACT.

[31]  Maria Palacin-Silva,et al.  Infusing Design Thinking into a Software Engineering Capstone Course , 2017, 2017 IEEE 30th Conference on Software Engineering Education and Training (CSEE&T).

[32]  M. Sheelagh T. Carpendale,et al.  The narrative storyboard: telling a story about use and context over time , 2012, INTR.

[33]  Paul Ralph,et al.  Improving Coverage of Design in Information Systems Education , 2012, ICIS.

[34]  Bella Martin,et al.  Universal Methods of Design: 100 Ways to Research Complex Problems, Develop Innovative Ideas, and Design Effective Solutions , 2012 .

[35]  R. Bias,et al.  Interface-Walkthroughs: efficient collaborative testing , 1991, IEEE Software.

[36]  Jakob Nielsen,et al.  Heuristic evaluation of user interfaces , 1990, CHI '90.